에이전트와 도구 사용
추론과 행동을 번갈아 수행하는 ReAct, 도구 사용을 학습하는 Toolformer, Anthropic이 정리한 구현 방식을 통해 에이전트의 구조를 살펴본다.
개정 2판 · 최근 고침: 독자에게 보이는 문장과 용어를 다듬고 기존 근거 연결을 유지했다. · 고침 기록 보기
에이전트라는 용어의 정의는 하나로 굳지 않았다. 이 글은 각 출처가 말하는 범위를 구분해 소개한다.
도구를 쓰는 언어모델
언어모델은 계산을 틀리거나 최신 사실을 모를 수 있고 외부 시스템에 직접 접근하지 못한다. 도구 사용은 이런 한계를 보완하는 방법이다. 모델이 필요할 때 검색이나 계산기, 코드 실행 같은 외부 기능을 호출하도록 한다. 실행 결과를 모델에 다시 전달하면 이를 참고해 다음 단계를 정한다. 이때 모델의 출력은 최종 답이 아니라 다음 행동의 계획이 되기도 한다.
도구를 붙이는 방식은 크게 두 갈래다. 하나는 프롬프트와 실행 절차를 정하는 방식으로, 모델 자체는 그대로 두고 호출 규칙을 바깥에서 정해준다. 다른 하나는 도구 호출 자체를 학습시키는 방식으로, 언제 무엇을 호출할지를 모델이 익히게 한다. ReAct가 전자라면 Toolformer는 후자에 가깝다. 두 방식은 필요에 따라 함께 사용할 수 있다.
추론과 행동을 번갈아 수행하는 ReAct
ReAct는 추론 과정과 행동을 번갈아 생성하는 프롬프트 방식이다. 모델은 먼저 상황에 대한 추론을 적고 그에 맞는 행동을 수행한다. 이어서 실행 결과를 읽고 다음 단계를 추론한다. 추론 과정은 계획을 세우고 진행 상황을 확인하며 예외를 처리하는 데 쓰인다. 행동은 지식 베이스나 실행 환경에서 정보를 가져오는 역할을 한다. 논문은 질의응답과 사실 검증 과제에서 단순 Wikipedia API를 결합하는 것만으로 chain-of-thought의 환각과 오류 전파 문제를 완화했다고 보고했다.
대화형 의사결정 과제에서도 성능 개선을 보고했다. ALFWorld와 WebShop이라는 두 벤치마크에서 모방학습과 강화학습 방식을 절대 성공률 기준으로 앞섰는데, ALFWorld에서는 34%p의 차이가 보고되었다. 또한 추론이나 행동이 빠진 방식보다 사람이 해석하기 쉬운 풀이 과정을 만든다고 주장한다. 모델이 작성한 추론 과정을 읽으면서 오류가 생긴 단계를 확인하기 쉽다는 뜻이다. 다만 이 수치들은 해당 실험 설정 안에서의 보고이며, 모든 환경에서의 우위를 뜻하지 않는다.
스스로 배우는 도구 사용: Toolformer
Toolformer는 도구 호출을 학습으로 다룬다. 호출 규칙을 사람이 짜주는 대신, 모델이 API 호출을 스스로 익히게 한다. 학습은 자기감독 방식으로 이루어지며 API마다 소수의 시연 예시만으로 시작한다고 보고되었다. 계산기와 Q&A 시스템, 두 종류의 검색 엔진, 번역 시스템, 달력이 실험에 쓰인 도구다. 어떤 API를 언제 어떤 인자로 호출하고 결과를 다음 토큰 예측에 어떻게 반영할지를 모델이 결정하게 학습시킨 것이다.
Toolformer 논문은 다양한 응용 과제에서 풀이 예시를 주지 않고 평가하는 zero-shot 성능이 크게 향상됐다고 보고했다. 종종 훨씬 큰 모델과 경쟁할 수 있었고 기본적인 언어모델 능력도 유지됐다는 설명이다. 모델이 스스로 학습한다는 표현이 사람이 전혀 관여하지 않는다는 뜻은 아니다. 호출 후보를 생성한 뒤 유용한 것만 남기는 파이프라인은 사람이 설계한다.
워크플로와 에이전트의 구분
Anthropic의 2024년 12월 엔지니어링 글은 실무에서 쓰는 에이전트의 개념을 정리한다. 수십 개 팀과 협업한 경험에서 단순하고 조합 가능한 패턴을 쓴 구현이 가장 성공적이었다고 설명한다. 미리 정해진 코드 경로를 따라 LLM을 실행하는 워크플로와, LLM이 스스로 작업 순서와 도구 사용을 결정하는 에이전트를 구분한다.
글에서 소개한 패턴은 프롬프트를 순서대로 이어 실행하는 prompt chaining, 입력에 맞는 처리 경로를 고르는 routing, 작업을 병렬로 실행하는 parallelization, 조정자가 작업을 나눠 다른 작업자에게 맡기는 orchestrator-workers, 평가 결과를 받아 출력을 반복 수정하는 evaluator-optimizer다. 이를 실무에 적용하려면 모델이 스스로 판단할 범위부터 정해야 한다. 사람이 정한 절차를 따르게 할지, 작업 순서와 도구 선택까지 맡길지를 구분하면 설계 방향이 명확해진다. 이는 Anthropic의 구분에 대한 이 글의 해석이다. 같은 글에 2024년 12월 이후 사용할 수 있는 도구가 달라졌다는 추신이 붙어 있다는 점도 함께 밝혀둔다.
기억을 활용하는 에이전트
에이전트가 오래 일하려면 기억이 필요하다. Generative Agents 연구는 경험을 자연어로 기록하고, 기록에서 얻은 통찰을 성찰로 정리하며, 필요할 때 관련 기억을 불러오는 구조를 제안했다. 이를 적용한 25개 에이전트의 마을에서는 발렌타인데이 파티 초대가 전달되고 약속을 잡는 행동이 나타났다고 보고했다. 기억을 불러오는 일을 일종의 도구 호출로 볼 수도 있지만, 이는 원 논문의 직접 주장이 아닌 이 글의 해석이다.
행동이 자연스러웠다는 평가는 저자들이 설계한 환경과 기준 안의 결과다. 실제 인간 사회를 재현했다고 해석하기는 어렵다. 이 글에서는 기억·계획·회상을 결합한 아키텍처를 시연한 사례로 다룬다.
남은 과제
도구를 사용하는 에이전트를 설계할 때는 다음 문제도 검토해야 한다. 잘못된 도구를 골랐을 때 누가 책임지고 어떻게 복구할 것인가. 도구 호출의 연쇄가 길어질수록 누적되는 오류에 어떻게 대응할 것인가. 자율성을 어디까지 허용할 것인가. 그리고 에이전트 전체를 어떻게 공정하게 평가할 것인가. 마지막 질문은 AI 평가 글에서 함께 다룬다. 개별 부품의 점수가 좋아도 전체 작업의 성공을 보장하지 않기 때문이다. 이 글은 각 출처의 주장과 그 조건을 분명히 하는 데 그치고, 특정 프레임워크의 우열은 판단하지 않는다.
읽는 순서의 제안
이 주제를 처음 만난다면 ReAct의 기록부터 읽기를 권한다. 추론과 행동을 반복하는 기본 구조를 이해할 수 있기 때문이다. 이어서 Toolformer로 도구 사용 학습을, Generative Agents로 기억 활용을 살펴보고 Anthropic 글에서 실무 구현 방식을 읽으면 된다. 각 연구 소개 아래의 관련 글 링크로 이 글에 돌아올 수 있다.
근거 출처 4건
- [1] 추론과 행동을 번갈아 수행하는 방식과 HotpotQA·Fever·ALFWorld·WebShop 보고
ReAct: Synergizing Reasoning and Acting in Language Models (외부)
arXiv:2210.03629 · 2022-10-06 - [2] 자기감독 도구 사용 학습과 사용 도구 목록
Toolformer: Language Models Can Teach Themselves to Use Tools (외부)
arXiv:2302.04761 · 2023-02-09 - [3] 워크플로/에이전트 구분과 단순 패턴 관찰
Building Effective Agents (외부)
Anthropic Engineering Blog · 2024-12-19 - [4] 기억·성찰·회상 구조와 25개 에이전트 실험
Generative Agents: Interactive Simulacra of Human Behavior (외부)
arXiv:2304.03442 · 2023-04-07
함께 읽기
- 에이전트 연구의 발전: ReAct에서 실무 적용까지 (발전 과정 · 관련 연구의 발전 과정)
- Anthropic의 Building Effective Agents (2024) (사건 기록 · 실무 글 소개: Anthropic의 에이전트 구현 지침)
- Generative Agents 논문 공개 (2023) (사건 기록 · 연구 소개: Generative Agents)
- ReAct 논문 공개 (2022) (사건 기록 · 연구 소개: ReAct)
- Toolformer 논문 공개 (2023) (사건 기록 · 연구 소개: Toolformer)
- Hindsight: 에이전트 기억을 저장하고 찾고 활용하기 (개념 뼈대 · 함께 읽기: Hindsight 에이전트 기억)
- 언어모델의 추론 (개념 뼈대 · 함께 읽기: 언어모델의 추론)
- 에이전트 연구의 발전: ReAct에서 실무 적용까지 (발전 과정 · 이 글을 가리킴)
- ChatGPT dots 활용 사례: 조사·초안·주간 보고를 맡기는 방법 (개념 뼈대 · 이 글을 가리킴)
- ChatGPT dots: 목표와 권한을 정해 지속 업무 맡기기 (개념 뼈대 · 이 글을 가리킴)
- Hindsight: 에이전트 기억을 저장하고 찾고 활용하기 (개념 뼈대 · 이 글을 가리킴)
- 검토 게이트와 병합: 기록에서 머지 큐까지 (개념 뼈대 · 이 글을 가리킴)
- 언어모델의 추론 (개념 뼈대 · 이 글을 가리킴)
- 역할별 혼합 모델: 에이전트 팀의 비용과 품질 설계 (개념 뼈대 · 이 글을 가리킴)
- 예약 실행 코딩 에이전트: 스모크 테스트와 머지 큐를 통한 병합 (개념 뼈대 · 이 글을 가리킴)
- Anthropic OSS Scanner: 무료 AI 보안 보고서를 받는 유지관리자의 실무 안내 (사건 기록 · 이 글을 가리킴)
- Anthropic의 Building Effective Agents (2024) (사건 기록 · 이 글을 가리킴)
- Claude로 Google Docs·Sheets·Slides 작업하기: 회의록부터 보고 자료까지 (사건 기록 · 이 글을 가리킴)
- Eleven v4 출시: 한국어 음성 AI 도입 전에 확인할 것들 (사건 기록 · 이 글을 가리킴)
- ElevenAgents Architect로 고객 응대 AI를 점검하고 개선하는 방법 (사건 기록 · 이 글을 가리킴)
- Generative Agents 논문 공개 (2023) (사건 기록 · 이 글을 가리킴)
- Google Gemini agent로 반복 업무 맡기기: 주간보고·미팅 준비와 승인 경계 (사건 기록 · 이 글을 가리킴)
- Rasp 영업 자동화 사례 읽기: 리드 분류부터 CRM 기록과 실패 복구까지 (사건 기록 · 이 글을 가리킴)
- ReAct 논문 공개 (2022) (사건 기록 · 이 글을 가리킴)
- Toolformer 논문 공개 (2023) (사건 기록 · 이 글을 가리킴)