초기 생성형 AI는 **수동적(passive)**이었습니다. 사용자가 프롬프트를 보내면 모델이 텍스트를 반환하고, 이후의 행동은 사람이 결정합니다. 이는 초안 작성에는 유용하지만, 자체적으로 비즈니스 워크플로우를 실행할 수는 없습니다. 다음 단계가 바로 **자율 에이전트(autonomous agent)**입니다. 자율 에이전트는 인간의 개입을 최소화하면서 계획하고, 자신의 진행 상황을 확인하며, 다단계 목표를 수행할 수 있는 시스템입니다.
쉽게 설명하자면: 챗봇은 질문에 답한 후 기다리는 동료와 같습니다. 반면, 에이전트는 임무를 부여받고 완료되거나 막힐 때까지 돌아오는 동료입니다.
다이어그램: 수동적 LLM은 하나의 텍스트 답변을 반환하고 인간이 다음 단계를 결정합니다. 자율 에이전트는 목표를 받아 계획하고, 행동하며, 결과를 확인한 후 인간의 개입 없이 반복합니다. 이 덕분에 워크플로우에 유용하지만, 위험성도 높아 가드레일(guardrails)이 중요합니다. 애니메이션 버전 보기.
1. 핵심 에이전트 루프 (The core agentic loop)
에이전트는 고전적인 제어 시스템에서 차용한 반복 사이클을 실행합니다.
- 지각(Perceive): 목표, 현재 상태 및 모든 컨텍스트를 받아들입니다.
- 계획(Plan): “이번 분기 서버 오류 로그를 감사하고 실패하는 광학 장비를 플래그 지정하라”와 같은 추상적인 목표를 순서가 있는 구체적인 작업 목록으로 나눕니다.
- 행동(Act): 특정 기능을 선택하여 사용합니다. API 호출, 데이터베이스 쿼리 실행, 파일 읽기 등이 될 수 있습니다.
- 반성(Reflect): 결과를 목표와 비교합니다. 무언가 잘못되었다면, 조정하고 다시 시도합니다.
다이어그램: 에이전트는 네 단계의 루프를 거칩니다: 목표 및 컨텍스트 지각 → 작업 계획 → 도구 호출을 통한 행동 → 결과 반성. 이 과정은 목표가 달성되거나 단계 예산과 같은 한계에 도달할 때까지 반복됩니다. 애니메이션 버전 보기.
반성은 에이전트를 단순한 스크립트 이상의 존재로 만듭니다. 쿼리가 행을 반환하지 못하면, 에이전트는 그 이유를 파악하고 접근 방식을 수정하여 다시 실행할 수 있습니다. 실제 환경에서는 무한 루프에 빠질 수 있는 에이전트의 경우 단계 수와 비용을 항상 제한합니다.
⚠️ [IMG:N] 형식 토큰은 이미지 placeholder 입니다. 번역하지 말고 원래 위치에 그대로 유지하세요.
다이어그램: 에이전트는 행동을 수행한 후 그 결과를 관찰합니다. 쿼리가 행(row)을 반환하지 못하면, 이를 반영하고 잘못된 열 이름(column name)을 알아차린 뒤 쿼리를 수정하여 다시 시도합니다. 이 예시는 설명용이며, 단계 제한(step limit)이 무한 반복을 방지합니다. 애니메이션 버전 보기.
2. 메모리: 단기 및 장기
- **작업 기억(Working memory)**은 컨텍스트 창(context window)입니다. 현재 계획, 중간 값, 최근 도구 출력 등이 여기에 포함됩니다. 빠르지만 제한적이며, 실행이 끝나면 사라집니다.
- **일화 기억(Episodic memory)**은 벡터 데이터베이스(vector database)에 저장된 과거 실행 기록입니다. 에이전트는 유사한 문제에 직면했을 때 이전에 관련 문제를 어떻게 해결했는지 검색할 수 있습니다.
다이어그램: 작업 기억은 현재 계획, 상태 및 최근 도구 출력을 담고 있는 컨텍스트 창입니다. 일화 기억은 과거 실행 기록을 벡터 데이터베이스에 저장하여 에이전트가 유사한 문제의 이전 해결 방법을 회상할 수 있도록 합니다. 애니메이션 버전 보기.
다음은 몇 줄의 Python 코드로 구현된 루프입니다. llm과 tools 부분은 모델 호출 및 실제 함수를 위한 플레이스홀더이므로, 이를 완성된 에이전트가 아닌 에이전트의 형태(shape)로 간주해 주세요.
MAX_STEPS = 8 # 루프가 영원히 실행되는 것을 막는 하드 스톱 제한
def run_agent(goal: str) -> str:
...
언어 모델을 에이전트로 전환하는 것은 AI를 단순한 비서 역할에서 목표를 주도적으로 실행하는 존재로 변화시킵니다. 바로 이 힘 때문에 다음 강의들은 도구, 에이전트 팀 구성, 테스트 및 안전에 관한 내용으로 다루어집니다.
다음에 알아볼 주제 (Coming Up Next)
Day 23: 도구 사용 및 함수 호출(Tool use and function calling): LLM을 API, 데이터베이스 및 셸에 연결하는 방법.
#AIAgents #AutonomousAI #EnterpriseAutomation #AgenticWorkflows #SoftwareEngineering
원문은 https://sureshpallapothu.in/blog/day-22-autonomous-agents에 게시되었으며, 이 포스트에는 애니메이션 다이어그램이 포함되어 있습니다.