ReAct
ReAct(Reasoning and Acting, 추론 및 행동)는 거대 언어 모델(LLM)이 복잡한 작업을 수행할 때 ‘논리적 추론(Reasoning)‘과 외부 환경과의 ‘상호작용적 행동(Acting)‘을 교차로 수행하도록 유도하는 프롬프팅 기법이자 AI 에이전트 설계 패턴이다. 프린스턴 대학교와 구글 리서치 연구진에 의해 처음 제안되었다.
이 패턴은 모델이 단순히 학습된 가중치 내부의 지식에만 의존하지 않도록 만든다. 모델은 스스로 현재 상황을 분석하여 계획을 세우고(Thought), 필요한 정보를 구하기 위해 외부 도구(웹 검색, 데이터베이스 쿼리, API 호출 등)를 실행하며(Action), 그 결과를 바탕으로 새로운 정보를 인지하는(Observation) 순환(Loop) 과정을 정답을 도출할 때까지 반복한다.
LLM의 성능을 향상시키기 위해 발전해 온 대표적인 프롬프팅 및 실행 패턴들의 특징과 한계를 비교하면 다음과 같다.
| 적용 패턴 | 핵심 메커니즘 | 외부 도구 연동 여부 | 주요 특징 및 한계점 |
|---|---|---|---|
| 표준 프롬프팅 (Standard Prompting) | 주어진 지시에 따라 즉각적으로 최종 답변을 생성함 | 불가능 (내부 지식만 활용) | 처리 속도가 빠르고 비용이 적으나, 논리적 연산이 필요한 복잡한 문제나 최신 정보가 요구되는 작업에서 할루시네이션(환각)을 쉽게 유발함 |
| CoT (Chain-of-Thought) | “단계별로 생각해보자”라는 지시를 통해 최종 답변 전 중간 추론 과정을 텍스트로 생성함 | 불가능 (내부 지식만 활용) | 모델의 수학적, 논리적 문제 해결 능력은 크게 향상되나, 여전히 외부 세계의 사실을 열람할 수 없어 잘못된 전제에서 추론을 시작하면 오답에 도달함 |
| ReAct (Reasoning + Acting) | Thought(생각) → Action(도구 실행) → Observation(결과 관찰)의 루프를 반복하여 답변을 도출함 | 가능 (검색 엔진, API, 코드 실행기 등) | 외부 데이터를 적극 수용하여 정보의 신뢰도와 정확성을 극대화하지만, 여러 번의 모델 호출이 발생하므로 지연 시간(Latency)과 토큰 사용 비용이 대폭 증가함 |
출처 (Sources):
- Yao, S., et al. (2022), “ReAct: Synergizing Reasoning and Acting in Language Models”. Published in ICLR 2023. Available at: https://arxiv.org/abs/2210.03629
- Prompt Engineering Guide, “ReAct Prompting”. Available at: https://www.promptingguide.ai/techniques/react
- LangChain Documentation, “ReAct agent”. Available at: https://python.langchain.com/docs/modules/agents/agent_types/react/