
ReAct 논문 해부: AI가 '생각하면서 행동하기'를 배운 순간
Chain-of-Thought는 생각만 했고, WebGPT는 행동만 했다. 2022년, 프린스턴과 Google의 연구자들이 '생각하면서 행동하기'를 결합했을 때 — 환각률이 56%에서 0%로 떨어졌다. 모든 AI 에이전트의 원형이 된 ReAct 논문을 해부한다.

Chain-of-Thought는 생각만 했고, WebGPT는 행동만 했다. 2022년, 프린스턴과 Google의 연구자들이 '생각하면서 행동하기'를 결합했을 때 — 환각률이 56%에서 0%로 떨어졌다. 모든 AI 에이전트의 원형이 된 ReAct 논문을 해부한다.

AI에게 복잡한 질문을 한다고 상상해보자: "Apple Remote가 원래 상호작용하도록 설계된 프로그램을 제어할 수 있는 다른 장치는 무엇인가?"
방식 A — 혼자 생각하기 (Chain-of-Thought): AI가 내부 지식만으로 추론한다. "Apple Remote는 Apple TV와 상호작용하도록 설계되었으니... Apple TV를 제어할 수 있는 장치는 iPhone, iPad, iPod Touch겠지." 자신감 있지만 틀렸다. Apple Remote는 Apple TV가 아니라 Front Row 소프트웨어용이었다.
방식 B — 생각하면서 검색하기 (ReAct): AI가 먼저 생각한다: "Apple Remote가 원래 어떤 프로그램과 상호작용하도록 설계됐는지 검색해야겠다." → Wikipedia 검색 → "Front Row 미디어 센터 프로그램을 제어하도록 설계" 발견 → "이제 Front Row를 제어할 수 있는 다른 장치를 찾아야겠다" → 다시 검색 → "키보드 기능 키" 발견 → 정답.

방식 A의 환각률: 56%. 방식 B의 환각률: 0%.
이것이 ReAct 논문의 핵심이다. 그리고 이 "생각하면서 행동하기" 루프가 2026년 현재 모든 AI 에이전트의 작동 원리가 되었다 — Claude Code, Cursor, Devin, ChatGPT 에이전트 모두.
2022년 1월, Jason Wei 등 Google Brain 연구자들이 Chain-of-Thought(CoT) 프롬프팅을 발표했다. 프롬프트에 추론 단계를 보여주면 LLM이 복잡한 추론을 수행할 수 있다는 발견이었다. GPT-3 글에서 다뤘듯, PaLM-540B에 CoT 예시 8개만 넣으면 GSM8K 수학 벤치마크에서 SOTA 달성.
하지만 치명적 한계가 있었다. ReAct 논문의 표현:
"CoT 추론은 정적 블랙박스다. 모델이 자체 내부 표현을 사용하여 사고를 생성하며 외부 세계에 근거하지 않아, 반응적으로 추론하거나 지식을 업데이트하는 능력이 제한된다."
쉽게 말해: 머릿속으로만 생각하면서 도서관에 가서 확인하지 않는 학생과 같다. 자기 기억이 맞다고 확신하지만, 기억이 틀릴 수 있다.
반대편에는 행동만 하는 접근법들이 있었다:
| 모델 | 무엇을 했나 | 무엇이 부족했나 |
|---|---|---|
| WebGPT (OpenAI, 2021) | 웹 검색 + 인간 피드백 | 명시적 추론 과정 없음 |
| SayCan (Google, 2022) | 로봇 행동 + 물리적 제약 | 추상적 목표 추론 없음 |
| MRKL (AI21, 2022) | 모듈형 도구 호출 | 고수준 계획 없음 |
이들은 도구를 사용했지만, 왜 그 도구를 사용하는지, 결과를 어떻게 해석하는지 추론하지 않았다. 작업 기억(working memory)도 없었고, 고수준 목표를 유지하지도 못했다.
Shunyu Yao는 이후 Tree of Thoughts(NeurIPS 2023, Game of 24에서 GPT-4 CoT 4% → 74% 달성)와 Reflexion의 공저자가 되었고, 이후 OpenAI에 합류했다.
ReAct의 핵심 아이디어: 에이전트의 행동 공간에 "사고(Thought)"를 추가한다. 사고는 환경에 영향을 주지 않고, 관찰 피드백도 생성하지 않는다. 대신 현재 맥락에서 유용한 정보를 추론하여 미래의 추론이나 행동을 지원한다.
핵심 시너지: 추론이 행동을 돕고, 행동이 추론을 돕는다.
놀라운 점: ReAct는 모델의 가중치를 전혀 바꾸지 않는다. 동결된 PaLM-540B에 Few-Shot 예시만 프롬프트에 넣어준다. HotPotQA에 6개, FEVER에 3개, ALFWorld에 과제 유형당 3개의 인간 작성 궤적이 전부다.
논문이 식별한 유용한 사고의 유형:
ReAct 단독은 CoT보다 약간 낮지만(27.4 vs 29.4), 둘을 결합하면 최고 성능(35.1)을 달성한다.
그러나 진짜 혁명적 결과는 환각률이다:
200개 HotPotQA 궤적의 인간 분석에서, CoT의 주요 실패 원인이 **환각(56%)**인 반면, ReAct의 환각은 0%. ReAct의 주요 실패 원인은 "추론 오류(47%)" — 이전 생각과 행동을 반복하며 다음 적절한 행동을 추론하지 못하는 것과, "검색 결과 오류(23%)"였다.
언제 뭘 쓰는가:
ReAct의 Thought-Action-Observation 루프는 사실상 모든 현대 AI 에이전트의 작동 원리가 되었다:
LangChain: 최초의 ReAct 에이전트 구현. zero-shot-react-description이 플래그십 에이전트 타입. 시스템 프롬프트: "You run in a loop of Thought, Action, PAUSE, Observation."
Claude Code: Anthropic의 가이드: "LLM이 자신의 프로세스와 도구 사용을 동적으로 지시." 실행 흐름: 입력 → 어떤 도구를 사용할지 추론 → 실행 → 결과 관찰 → 계속.
OpenAI Function Calling (2023.6): ReAct의 Action 단계를 API 제품으로 만든 것. 자유형 텍스트 대신 구조화된 JSON으로 함수와 파라미터를 출력.
MCP (2024.11): Anthropic이 발표한 에이전트-도구 연결 오픈 표준. ReAct의 Action 단계를 표준화한 것 — 각 에이전트가 커스텀 도구 통합 대신 범용 프로토콜 사용.
기본 RAG(Retrieval-Augmented Generation)는 사실 단일 사이클 ReAct다:
Agentic RAG는 이것을 다중 사이클 ReAct로 확장한 것: 에이전트가 무엇이 부족한지 추론하고, 검색 쿼리를 수립하고, 검색하고, 결과를 관찰하고, 정보가 충분한지 추론하고, 필요하면 다시 검색.
논문의 HotPotQA 예시가 이것을 직접 보여준다: "Front Row" 검색 실패 → "Front Row (software)"로 재검색. 이 적응적 검색 전략은 정적 RAG에서는 불가능하다.
ReAct 에이전트의 가장 큰 보안 위험: Observation 단계가 외부의 신뢰할 수 없는 데이터를 모델 컨텍스트에 주입한다.
Greshake et al. (2023.2)이 시연한 것:
HITL 글에서 다뤘듯, ReAct 루프의 각 단계에는 오류 확률이 있고, 다단계 에이전트에서 이 확률은 곱해진다.
완화 전략: 위험한 행동에 사용자 확인 요구, 최소 권한 원칙 적용, 모든 LLM 응답을 비신뢰 데이터로 취급, 도구 설계에 오류 방지(poka-yoke) 원칙 적용.
에이전트 AI 특집에서 다뤘듯, ReAct의 "추론 → 행동 → 관찰" 루프는 1971년 STRIPS의 "전제 조건 확인 → 행동 → 상태 갱신"과 구조적으로 동일하다. 51년의 시간차를 두고, 에이전트의 핵심 작동 원리는 변하지 않았다.
변한 것은 기반 기술이다. STRIPS는 형식 논리로, ReAct는 LLM으로 추론한다. STRIPS는 로봇 팔의 제한된 세계에서, ReAct는 Wikipedia와 웹 전체에서 행동한다.
ReAct 논문이 증명한 것:
그리고 이 세 가지 교훈이 2026년 현재 모든 AI 에이전트 시스템에 내장되어 있다. Claude Code가 파일을 읽고 코드를 수정할 때, Cursor가 테스트를 실행하고 오류를 분석할 때, ChatGPT가 웹을 검색하고 결과를 종합할 때 — 그 안에서 작동하는 것은 2022년 프린스턴과 Google의 연구자 7명이 만든 Thought-Action-Observation 루프다.
코어닷투데이의 AI 제품에서도 이 원리는 작동하고 있다. AI 아르스 키오스크가 사용자 의도를 추론하고 적절한 콘텐츠를 선택할 때, 의정지원 AI가 정책 문서를 검색하고 맥락을 분석할 때 — 그것이 ReAct다. 생각하고, 행동하고, 관찰하고, 다시 생각한다.