What is a ReAct-style agent?

개요

ReAct-style agent는 LLM이 추론(Reasoning)과 행동(Acting)을 반복적으로 수행하는 루프를 통해 정보를 처리하고 최종 답변을 도출하는 방식입니다.

주요 내용

  • ReAct는 2022년 Google Research에서 발표한 논문 "ReAct: Synergizing Reasoning and Acting in Language Models"에서 제안되었으며, 도구 사용 에이전트 구축의 핵심 패턴으로 자리 잡았습니다.
  • 핵심 아이디어는 단순히 생각하거나 도구를 맹목적으로 호출하는 대신, 생각(Thought) → 행동(Action) → 관찰(Observation)의 구조화된 사이클을 반복하는 것입니다.
  • 생각 단계에서는 현재 상태를 기반으로 다음 단계를 추론하고, 행동 단계에서는 검색, API 호출 등 도구를 실행하며, 관찰 단계에서는 실행 결과를 피드백받습니다.
  • 이 반복적인 과정은 모델을 외부 세계에 기반하도록(grounded) 하고, 실제 데이터를 활용하게 하여 환각(hallucination)을 줄이고 예측 불가능한 상황에 대응할 수 있도록 합니다.
  • 현재는 "Thought/Action/Observation" 텍스트 형식이 네이티브 함수 호출(function calling) API에 통합되는 추세이지만, ReAct의 기본 루프는 LangChain, LlamaIndex 등 다양한 에이전트 프레임워크의 기반이 되고 있습니다.
  • ReAct의 단점으로는 많은 토큰을 소모하거나 반복적인 행동에 갇힐 수 있다는 점이 있으며, 이를 보완하기 위해 단계 제한, 반추(reflection) 등의 기법이 추가될 수 있습니다.
  • 순수 Chain-of-Thought(CoT)의 환각 및 오류 전파 문제에 대한 해결책으로, ReAct는 외부 세계와의 상호작용을 통해 추론 과정을 중단시키고 실시간으로 정보를 갱신하여 정확성을 높입니다.
  • ReAct는 대화형 작업에서 뛰어난 성능을 보였으며, 특히 few-shot 학습 환경에서 추가 학습 없이도 높은 성공률을 달성했습니다.
  • QA 작업에서는 ReAct와 CoT를 결합한 하이브리드 방식이 가장 좋은 성능을 보였으며, 이는 모델의 내부 지식과 외부 정보를 모두 활용하는 것이 효과적임을 시사합니다.
  • 명시적인 생각, 행동, 관찰 단계 덕분에 ReAct 기반 시스템은 해석 가능성이 높아 문제 진단 및 제어가 용이합니다.

시사점

ReAct는 LLM이 외부 세계와 상호작용하며 정확하고 신뢰할 수 있는 결과를 생성하는 데 중요한 역할을 하며, 향후 에이전트 설계 및 RAG(Retrieval-Augmented Generation) 시스템 구축에 있어 핵심적인 고려 사항입니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions