coredot.today
ReAct 논문 해부: AI가 '생각하면서 행동하기'를 배운 순간
블로그로 돌아가기
ReActAI 에이전트도구 사용RAG환각 방지비고츠키내적 언어

ReAct 논문 해부: AI가 '생각하면서 행동하기'를 배운 순간

Chain-of-Thought는 생각만 했고, WebGPT는 행동만 했다. 2022년, 프린스턴과 Google의 연구자들이 '생각하면서 행동하기'를 결합했을 때 — 환각률이 56%에서 0%로 떨어졌다. 인지과학의 '내적 언어' 이론부터 2026년 모든 AI 에이전트의 작동 원리가 된 ReAct까지, 논문의 모든 핵심을 풀어본다.

코어닷투데이2025-12-1454

들어가며: 탐정 로봇의 두 가지 방식

ReAct: 생각하고 검색하고 관찰하는 AI 탐정

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를 제어할 수 있는 다른 장치를 찾아야겠다" → 다시 검색 → "키보드 기능 키" 발견 → 정답.

환각 vs 근거 있는 추론

방식 A의 환각률: 56%. 방식 B의 환각률: 0%.

이것이 ReAct 논문의 핵심이다. 그리고 이 "생각하면서 행동하기" 루프가 2026년 현재 모든 AI 에이전트의 작동 원리가 되었다 — Claude Code, Cursor, Devin, ChatGPT 에이전트 모두.


제1장: 인간은 원래 "생각하면서 행동하는" 존재다 — 인지과학의 뿌리

비고츠키의 내적 언어: 행동과 사고의 원초적 결합

ReAct 논문은 AI 논문치고는 드물게 인지과학에서 출발한다. 서론의 첫 문장이 이렇다:

"인간 지능의 고유한 특징은 과제 지향적 행동과 언어적 추론(또는 내적 언어)을 매끄럽게 결합하는 능력이다."

여기서 내적 언어(inner speech)란 소련의 심리학자 레프 비고츠키(Lev Vygotsky)가 1934년 Thinking and Speech에서 제안한 개념이다. 어린이가 블록을 쌓으면서 "이건 여기에 놓고... 아, 이건 안 맞네... 이걸 먼저 해야겠다"라고 소리 내어 말하는 것을 관찰한 그는, 이런 자기 지시적 언어(egocentric speech)가 성장하면서 내면화되어 내적 언어가 된다고 주장했다.

비고츠키의 후계자 알렉산드르 루리아(Luria, 1965)는 이 내적 언어가 자기 조절(self-regulation)의 핵심 도구라고 발전시켰다. 우리가 복잡한 문제를 풀 때 머릿속으로 "지금 여기까지 했고, 다음에는 이걸 해야 하고, 이 부분이 좀 이상한데..."라고 독백하는 것 — 이것이 바로 내적 언어이며, 인간이 행동 사이사이에 사고를 삽입하는 메커니즘이다.

또한 앨런 배들리(Baddeley, 1992)작업 기억(working memory) 이론도 중요하다. 인간의 작업 기억은 용량이 제한되어 있지만, 언어적 리허설(내적 언어로 정보를 반복)을 통해 이를 유지하고 조작한다. ReAct에서 "Thought" 단계가 정확히 이 역할을 한다 — 현재까지의 맥락을 언어로 정리하여 작업 기억을 유지하는 것이다.

요리사의 사고법: 논문이 제시한 비유

논문은 이 인지과학적 통찰을 직관적인 비유로 풀어낸다:

"주방에서 요리를 하는 경우를 생각해보자. 구체적인 행동 사이사이에 우리는 언어로 추론한다 — 진행 추적('재료를 다 썰었으니 물을 끓여야겠다'), 예외 처리('소금이 없으니 간장과 후추를 대신 쓰자'), 외부 정보 필요성 인식('반죽은 어떻게 만들지? 인터넷에서 찾아보자'). 또한 행동을 통해 추론을 지원하기도 한다 — 요리책을 펼쳐보거나 냉장고를 열어 재료를 확인하여 '지금 뭘 만들 수 있지?'라는 질문에 답한다."

이 비유가 중요한 이유는, 행동과 사고가 일방향이 아니라 양방향이라는 것을 보여주기 때문이다:

추론 → 행동
행동 → 추론
"소금이 없으니 간장을 쓰자"
(추론이 다음 행동을 결정)
"냉장고에 뭐가 있지?"
(행동이 추론에 정보를 제공)

2022년까지 AI는 이 양방향 시너지를 구현하지 못했다. 생각만 하거나(CoT), 행동만 하거나(WebGPT).


제2장: 2022년의 간극 — 생각과 행동의 분리

Chain-of-Thought: 생각만 하고 현실을 무시

2022년 1월, Jason Wei 등 Google Brain 연구자들이 Chain-of-Thought(CoT) 프롬프팅을 발표했다. 프롬프트에 추론 단계를 보여주면 LLM이 복잡한 추론을 수행할 수 있다는 발견이었다. GPT-3 글에서 다뤘듯, PaLM-540B에 CoT 예시 8개만 넣으면 GSM8K 수학 벤치마크에서 SOTA 달성.

하지만 치명적 한계가 있었다. ReAct 논문의 표현:

"CoT 추론은 정적 블랙박스다. 모델이 자체 내부 표현을 사용하여 사고를 생성하며 외부 세계에 근거하지 않아, 반응적으로 추론하거나 지식을 업데이트하는 능력이 제한된다."

쉽게 말해: 머릿속으로만 생각하면서 도서관에 가서 확인하지 않는 학생과 같다. 자기 기억이 맞다고 확신하지만, 기억이 틀릴 수 있다.

행동만 하고 생각하지 않는 AI

반대편에는 행동만 하는 접근법들이 있었다:

모델무엇을 했나무엇이 부족했나
WebGPT (OpenAI, 2021)웹 검색 + 인간 피드백명시적 추론 과정 없음
SayCan (Google, 2022)로봇 행동 + 물리적 제약추상적 목표 추론 없음
MRKL (AI21, 2022)모듈형 도구 호출고수준 계획 없음

이들은 도구를 사용했지만, 왜 그 도구를 사용하는지, 결과를 어떻게 해석하는지 추론하지 않았다. 작업 기억(working memory)도 없었고, 고수준 목표를 유지하지도 못했다.

💡
2022년의 간극: AI는 생각하거나(CoT) 행동하거나(WebGPT, SayCan) 둘 중 하나만 할 수 있었다. 생각과 행동을 교차로 수행하는 — 인간이 자연스럽게 하는 것 — 시스템은 없었다.

제3장: ReAct 논문 — "생각하면서 행동하기"

논문 기본 정보

  • 제목: ReAct: Synergizing Reasoning and Acting in Language Models
  • 저자: Shunyu Yao (Princeton), Jeffrey Zhao, Dian Yu, Nan Du, Izhak Shafran (Google Brain), Karthik Narasimhan (Princeton), Yuan Cao (Google Brain)
  • 발표: ICLR 2023 (arXiv 2022년 10월 6일)
  • 모델: PaLM-540B (주 실험), GPT-3 (부록)
  • 인용: 3,000회+ (2026년 기준)

Shunyu Yao는 이후 Tree of Thoughts(NeurIPS 2023, Game of 24에서 GPT-4 CoT 4% → 74% 달성)와 Reflexion의 공저자가 되었고, 이후 OpenAI에 합류했다.

핵심 아이디어: 행동 공간에 "사고"를 추가하다

ReAct의 수학적 정의는 놀랍도록 단순하다. 에이전트가 환경과 상호작용할 때, 원래 행동 공간 AA(검색, 클릭, 답변 등)에 **언어 공간 LL**을 합친다:

A^=AL\hat{A} = A \cup L

언어 공간 LL에 속하는 행동 — 논문은 이를 사고(thought) 또는 추론 흔적(reasoning trace)이라 부른다 — 은 환경에 영향을 주지 않는다. 관찰 피드백도 생성하지 않는다. 대신 현재 맥락에서 유용한 정보를 추론하여 미래의 추론이나 행동을 지원한다.

이것이 핵심이다. 기존 에이전트의 행동 공간은 AA뿐이었다. 검색, 클릭, 답변. 생각이 행동의 선택지에 포함되지 않았다. ReAct는 "생각한다"를 정식 행동으로 격상시킨 것이다.

Thought-Action-Observation 루프

ReAct: Thought → Action → Observation 루프 ⟳ LOOP
Thought 1Apple Remote가 원래 어떤 프로그램과 상호작용하도록 설계됐는지 검색해야 한다
Action 1Search[Apple Remote]
Observation 1Apple Remote는 2005년 도입된 리모컨... Front Row 미디어 센터 프로그램을 제어하도록 설계...
Thought 2Apple Remote는 Front Row를 제어하도록 설계됐다. Front Row를 제어할 수 있는 다른 장치를 찾아야 한다
Action 2Search[Front Row]
Observation 2[Front Row]를 찾을 수 없음. 유사: ["Front Row (software)"...]
Thought 3Front Row를 찾지 못했다. Front Row (software)로 검색해야 한다
Action 3Search[Front Row (software)]
Observation 3Front Row는 단종된 미디어 센터 소프트웨어... Apple Remote 또는 키보드 기능 키로 제어...
Thought 4Front Row는 Apple Remote 또는 키보드 기능 키로 제어된다. 답은 키보드 기능 키!
Action 4Finish[keyboard function keys] ✓ 정답!

핵심 시너지: 추론이 행동을 돕고, 행동이 추론을 돕는다.

  • 추론 → 행동: 목표 분해, 진행 추적, 예외 처리, 다음에 무엇을 검색할지 결정
  • 행동 → 추론: 실제 정보로 추론을 근거(grounding), 환각 방지, 새 데이터 제공

프롬프트 기반 — 학습 불필요

놀라운 점: ReAct는 모델의 가중치를 전혀 바꾸지 않는다. 동결된 PaLM-540B에 Few-Shot 예시만 프롬프트에 넣어준다. HotPotQA에 6개, FEVER에 3개, ALFWorld에 과제 유형당 3개의 인간 작성 궤적이 전부다.

논문이 식별한 유용한 사고의 유형:

  • 과제 목표 분해 및 행동 계획 수립 — "Colorado orogeny의 동쪽 섹터가 확장되는 지역의 해발고도 범위를 찾아야 한다"
  • 과제 해결에 관련된 상식 지식 주입 — "x는 y가 아니니 z가 정답일 것이다"
  • 관찰에서 중요한 부분 추출 — "이 문단에는 x에 대한 정보가 없다"
  • 진행 상황 추적 및 행동 계획 전환 — "x를 찾았으니 이제 y를 찾아야 한다"
  • 예외 처리 및 행동 계획 조정 — "검색이 안 되니 다른 검색어를 시도하자"
  • 산술 추론 수행 — "1844 < 1989이므로..."

밀도 조절: "언제" 생각하느냐도 중요하다

흥미로운 설계 선택이 있다. 논문은 과제 유형에 따라 사고의 밀도를 다르게 설정한다:

  • 지식 추론 과제(HotpotQA, FEVER): 밀집 사고(dense thought) — 매 단계마다 Thought → Action → Observation을 교차. 정확한 추론이 중요하므로 매번 생각한다.
  • 의사결정 과제(ALFWorld, WebShop): 희소 사고(sparse thought) — 50단계 이상의 행동 중 필요한 곳에서만 사고를 삽입. 모델이 스스로 언제 생각할지 결정한다.

비유하면, 수학 풀이에서는 매 줄마다 검산하지만, 요리를 하면서 양파를 자를 때까지 매 초마다 "나는 지금 양파를 자르고 있다"라고 생각하지는 않는 것이다. 하위 목표가 전환되는 시점에서만 — "양파 다 잘랐으니 이제 팬을 달구자" — 생각이 삽입된다.

액션 디자인: 고의적으로 "약한" 도구

논문이 설계한 Wikipedia API 도구도 주목할 만하다:

액션설명해당되는 인간 행동
search[entity]엔티티의 위키 페이지 첫 5문장 반환 (없으면 유사 항목 5개 제안)Wikipedia에서 검색
lookup[string]현재 페이지에서 문자열이 포함된 다음 문장 반환Ctrl+F로 페이지 내 검색
finish[answer]답변을 제출하고 종료최종 답변 작성

논문은 이 도구가 최신 검색 기술보다 훨씬 약하다고 명시한다. 의도적이다. 목적은 "인간이 Wikipedia와 상호작용하는 방식을 시뮬레이션하고, 모델이 언어적 추론을 통해 명시적으로 검색하도록 강제하는 것"이다. 강력한 도구로 성능을 올리는 것이 아니라, 추론과 행동의 시너지를 순수하게 측정하려는 설계 의도다.


제4장: 실험 결과 — 환각 56% vs 0%

지식 집약적 추론: HotPotQA & FEVER

HotPotQA 정확도 (EM) — PaLM-540B
Standard
28.7
CoT
29.4
Act only
25.7
ReAct
27.4
ReAct→CoT-SC
35.1 🏆

ReAct 단독은 CoT보다 약간 낮지만(27.4 vs 29.4), 둘을 결합하면 최고 성능(35.1)을 달성한다.

그러나 진짜 혁명적 결과는 환각률이다:

56% CoT 환각 실패율 오류의 과반수가 사실 날조
0% ReAct 환각 실패율 환각 오류 완전 제거
14% CoT 거짓 양성 정답이지만 환각된 추론
6% ReAct 거짓 양성 환각 없이도 낮은 거짓 양성

200개 HotPotQA 궤적의 인간 분석에서, CoT의 주요 실패 원인이 환각(56%)인 반면, ReAct의 환각은 0%. ReAct의 주요 실패 원인은 "추론 오류(47%)" — 이전 생각과 행동을 반복하며 다음 적절한 행동을 추론하지 못하는 것과, "검색 결과 오류(23%)"였다.

사실성 vs 유연성: ReAct와 CoT의 근본적 트레이드오프

이 결과에서 핵심적인 통찰이 나온다. ReAct는 사실적이지만 덜 유연하고, CoT는 유연하지만 환각한다.

논문의 분석:

"추론, 행동, 관찰 단계를 교차하는 구조적 제약이 ReAct의 근거성과 신뢰성을 높이지만, 동시에 추론 단계를 자유롭게 구성하는 유연성을 줄여 CoT보다 추론 오류율이 높아진다."

ReAct에서 특히 빈번한 오류 패턴은 반복 루프다 — 모델이 이전 생각과 행동을 그대로 반복하며 빠져나오지 못하는 것. 논문은 이것이 탐욕적 디코딩(greedy decoding)의 한계일 수 있으며, 빔 서치 같은 더 나은 디코딩이 도움될 수 있다고 추측한다.

FEVER에서의 결정적 차이: "사소한 차이"를 포착하다

FEVER(사실 검증) 과제에서 ReAct가 CoT를 더 확실히 이긴 이유(60.9 vs 56.3)를 논문은 이렇게 설명한다:

"FEVER 주장에서 SUPPORTS와 REFUTES는 아주 미세한 차이로 갈릴 수 있어, 행동을 통해 정확하고 최신의 지식을 검색하는 것이 결정적이다."

구체적 예를 보자:

FEVER 예시: "Reign Over Me는 2010년에 만든 미국 영화다"
CoT "Reign Over Me는 미국 영화이고... 2010년에 만들어졌다" → SUPPORTS (환각! 실제는 2007년)
ReAct Search[Reign Over Me] → "2007년 미국 영화" 발견 → "2010년이 아니라 2007년이다" → REFUTES (정답!)

연도, 수치, 고유명사 — 이런 "사소하지만 결정적인" 사실에서 CoT는 자기 기억에 의존해 틀리고, ReAct는 검색으로 확인해서 맞힌다.

내부 지식과 외부 지식의 결합: 최강 조합 전략

논문은 ReAct와 CoT를 상호 보완적으로 결합하는 두 가지 전략을 제안한다:

전략 A — ReAct → CoT-SC: ReAct가 제한 단계(HotpotQA 7단계, FEVER 5단계) 내에 답을 못 내면, CoT-SC(Self-Consistency, 21개 샘플 다수결)로 전환한다. "검색이 안 통하면 내부 지식에 의존하자."

전략 B — CoT-SC → ReAct: CoT-SC 21개 샘플에서 다수결 답이 절반도 안 되면(즉, 내부 지식이 불확실하면), ReAct로 전환한다. "내부 지식으로 확신이 안 서면 검색해보자."

FEVER 정확도 — 결합 전략 비교
CoT-SC (21)
60.4
ReAct 단독
60.9
ReAct→CoT-SC
62.0
CoT-SC→ReAct
64.6 최고

주목할 점: 두 결합 전략 모두 CoT-SC 21개 샘플의 성능을 단 3~5개 샘플로 달성한다. 연산 효율에서도 압도적이다.

FEVER에서는 "내부 지식이 불확실할 때 검색"(전략 B)이, HotpotQA에서는 "검색이 실패할 때 내부 지식"(전략 A)이 최고. 이것이 두 지식 소스를 적재적소에 활용하는 것의 가치를 증명한다.

보너스 발견: ReAct가 "오래된 정답"을 업데이트하다

흥미로운 부수 발견이 있다. HotpotQA의 일부 문제에서 데이터셋 레이블 자체가 오래되어 틀린 경우가 있었다. 예를 들어 호텔의 규모를 묻는 질문에서, 데이터셋 구축 이후 호텔이 확장되었을 때:

  • Standard/CoT: 환각된 옛 정보로 오답
  • Act (검색만): 검색은 했지만 추론 부재로 정보를 활용 못함
  • ReAct: Wikipedia에서 최신 정보를 검색하고 추론하여 데이터셋보다 더 정확한 답을 제시

논문은 이를 근거로, 인터넷 기반 언어 모델(WebGPT 등)에 추론 능력을 통합하면 최신 정보 활용이 크게 개선될 것이라고 제안한다.


인터랙티브 의사결정: ALFWorld & WebShop

🏠 ALFWorld (가상 가정 환경)
ReAct 최고: 71% (vs Act 45%, BUTLER 37%)
ReAct 최저(48%)도 Act 최고(45%)를 이김
BUTLER는 10만 전문가 궤적으로 학습!
ReAct는 2-shot 프롬프팅만 사용
🛒 WebShop (온라인 쇼핑)
ReAct 성공률: 40% (vs Act 30.1%)
모방학습+RL(10,587건): 28.7%
1-shot 프롬프팅이 만 건 학습을 이김!
인간 전문가: 59.6% (여전히 간극)

ALFWorld 실전 사례: "깨끗한 칼을 조리대에 놓아라"

ALFWorld의 에이전트 궤적(trajectory) 비교를 통해, 사고의 유무가 어떤 차이를 만드는지 구체적으로 보자.

과제: "깨끗한 칼을 조리대에 놓아라" (칼을 찾고, 세척하고, 조리대에 배치)

ReAct — 성공 (희소 사고로 전체 과제 관리)
Think칼을 찾아서, 세척한 뒤, 조리대에 놓아야 한다. 먼저 칼을 찾자. 서랍이나 조리대에 있을 것이다.
Actgo to drawer 1 → open drawer 1 → 칼 발견! → take knife 1
Think칼을 찾았다. 이제 세척해야 한다. 싱크대로 가자.
Actgo to sinkbasin 1 → clean knife 1 with sinkbasin 1
Think칼을 세척했다. 이제 조리대에 놓자.
Actgo to countertop 1 → put knife 1 in/on countertop 1 → 완료!
Act only — 실패 (사고 없이 행동만)
Actgo to drawer 1 → open drawer 1 → take knife 1
Actclean knife 1 with sinkbasin 1 → "Nothing happens" (싱크대로 안 갔음!)
Actclean knife 1 with sinkbasin 1 → "Nothing happens" (반복)
Actclean knife 1 with sinkbasin 1 → "Nothing happens" (무한 반복...)

Act only 에이전트는 "먼저 싱크대로 이동해야 한다"는 상식적 추론을 하지 못해 같은 실패를 무한 반복한다. ReAct는 "싱크대로 가자"라는 사고 하나로 이 함정을 피한다.

Inner Monologue는 진짜 "내면의 사고"인가?

논문은 ReAct 이전에 가장 유사했던 접근법인 Inner Monologue(IM, Huang et al., 2022)와의 차이를 엄밀히 분석한다. IM은 로봇 에이전트에 "내면의 독백"을 추가했지만, 그 독백은 사실 (1) 현재 하위 목표가 무엇인지(2) 환경 상태의 재확인만으로 제한되었다.

논문의 날카로운 비판:

"Inner Monologue는 진정한 내면의 사고를 포함하지 않는다"

ReAct-IM(IM 스타일로 제한된 사고)과 ReAct를 비교한 실험 결과:

71% ReAct 성공률 자유로운 사고 (상식 추론 포함)
53% ReAct-IM 성공률 환경 피드백만 반복하는 사고

18%p 차이. 핵심 차이는 무엇인가?

ReAct-IM이 못하는 것들:

  1. 하위 목표 완료 판단 — "이 단계가 끝났는가?"를 스스로 평가하지 못함
  2. 다음 하위 목표 결정 — 목표 분해 없이 현재 상태만 반복
  3. 상식 지식 활용 — "스탠드등은 보통 책상이나 선반에 있다"는 추론 불가

이것은 중요한 시사점이다. 외부 환경의 피드백을 반복하는 것(IM)과 내부적으로 추론하는 것(ReAct)은 근본적으로 다르다. 전자는 반응적(reactive)이고, 후자는 전략적(deliberative)이다.

WebShop: 실제 쇼핑 환경에서의 추론

WebShop은 118만 개의 실제 Amazon 상품과 1.2만 건의 구매 지시로 구성된 벤치마크다. ReAct가 "노이즈가 많은 현실 환경"에서도 작동하는지를 검증한다.

예시 과제: "16팩 사과 시나몬 맛 동결건조 바나나칩, $50 미만"

Act only — 점수: 0.125

검색: "apple cinnamon banana chips"
첫 번째 결과(딸기 바나나, $85) 그냥 클릭
조건 불일치 확인 없이 구매
사과 시나몬 X, 16팩 X, $50 미만 X

ReAct — 점수: 1.0 (만점)

검색 후 "첫 결과들은 조건에 안 맞는다" 추론
"apple cinnamon" 맛 옵션이 있는 상품 발견
"pack of 16" 사이즈 옵션 선택 → 가격 확인
모든 조건 충족 확인 후 구매

Act only가 0.125점(8개 조건 중 1개만 충족)을 받는 반면, ReAct는 만점. 핵심은 "이 상품이 조건에 맞는가?"라는 추론 단계 — 관찰(상품 정보)과 지시(구매 조건)를 비교하는 사고가 있느냐 없느냐의 차이다.


제5장: 파인튜닝 — 작은 모델도 "생각하면서 행동"할 수 있는가?

프롬프팅의 한계와 파인튜닝의 가능성

프롬프팅만으로는 한계가 있다. PaLM-540B처럼 거대한 모델이어야 몇 개의 예시만으로 ReAct 패턴을 따를 수 있다. 논문은 이를 넘어서기 위해 파인튜닝 실험을 수행한다.

방법: ReAct 프롬프팅으로 PaLM-540B가 생성한 궤적 중 정답을 맞힌 3,000개를 수집하여, 더 작은 모델(PaLM-8B, PaLM-62B)을 파인튜닝한다. 일종의 부트스트래핑(bootstrapping) — 큰 모델의 성공적 행동을 작은 모델이 배운다.

결과는 놀라웠다:

HotpotQA 정확도 — 프롬프팅 vs 파인튜닝
PaLM-540B ReAct (프롬프팅)
27.4
PaLM-62B 모든 방법 (프롬프팅)
~25
PaLM-8B ReAct (파인튜닝)
~29 62B 프롬프팅 전부 초과
PaLM-62B ReAct (파인튜닝)
~35 540B 프롬프팅 전부 초과

핵심 발견:

  1. 8B 파인튜닝 ReAct > 62B 프롬프팅 모든 방법. 67배 작은 모델이 파인튜닝으로 역전.
  2. 62B 파인튜닝 ReAct > 540B 프롬프팅 모든 방법. 9배 작은 모델로도 가능.
  3. Standard/CoT 파인튜닝은 효과가 제한적. 이 방법들은 사실상 모델에게 (잠재적으로 환각된) 지식 사실을 암기시키는 것이라, 과적합 이후 빠르게 성능이 하락. 반면 ReAct/Act 파인튜닝은 "정보를 찾아서 활용하는 기술"을 가르치는 것이라 일반화가 좋다.

이 결과는 2026년의 관점에서 예언적이다. 2024-25년의 "작은 추론 모델" 트렌드 — DeepSeek-R1 증류, Qwen-2.5 시리즈, Phi 시리즈 — 가 정확히 이 방향이다.


제6장: 사람이 개입할 수 있는 AI — Human-in-the-Loop

사고를 편집하여 행동을 교정하다

논문의 부록에 매우 흥미로운 실험이 있다. ALFWorld에서 ReAct가 실패할 때, 인간이 사고(Thought)만 편집하여 성공으로 이끄는 것이다.

실패한 ReAct 궤적에서 딱 2개의 사고만 수정하자 — 환각된 문장을 삭제하고 힌트를 추가 — 에이전트가 완전히 다른 행동 패턴을 보이며 과제를 성공했다.

핵심
사고 편집의 혁신성: 기존 RL 에이전트나 Act-only 에이전트는 인간이 개입하려면 행동 자체를 수십 개 타이핑해야 한다. ReAct에서는 사고 몇 줄만 편집하면 나머지 행동이 자동으로 바뀐다. 인간의 개입 비용이 극적으로 줄어든다.

논문은 이를 "모델의 내부 신념, 추론 스타일, 또는 유연한 사고 공간이 지원하는 무엇이든 수정할 수 있다"고 표현하며, 인간-AI 정렬(alignment)의 새로운 패러다임이 될 수 있다고 전망한다. 사고가 투명하게 드러나므로 인간이 AI의 판단 근거를 검사(inspect)하고, 잘못된 부분만 정밀하게 교정할 수 있다.


제7장: ReAct vs 다른 에이전트 프레임워크

유사 개념 비교

에이전트 프레임워크 비교
CoT 생각만 환각 위험. 내부 지식 충분할 때 적합
ReAct 생각 + 행동 환각 0%. 범용 에이전트의 기본 루프
Reflexion ReAct + 반성 시행착오 학습. HumanEval 91%
Plan-and-Execute 계획 먼저 → 실행 잘 정의된 워크플로우에 적합
LATS 트리 탐색 + ReAct HumanEval 92.7%. 비용 높음
Tree of Thoughts 다중 경로 추론 Game of 24: 74% (CoT 4%)

언제 뭘 쓰는가:

  • ReAct: 도구 사용이 필요한 범용 에이전트 과제
  • CoT: 내부 지식으로 충분한 과제 (수학, 논리)
  • Reflexion: 시행착오 학습이 가능한 과제 (코드 생성)
  • Plan-and-Execute: 예측 가능한 정형 워크플로우
  • LATS: 광범위한 행동 공간 탐색이 필요한 과제

제8장: ReAct의 유산 — 모든 에이전트의 원형

2023~2026: ReAct가 만들어낸 세계

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과의 관계: 검색도 "행동"이다

기본 RAG(Retrieval-Augmented Generation)는 사실 단일 사이클 ReAct다:

Thought (암묵적)"관련 문서를 찾아야 한다"
Action벡터 스토어에서 검색
Observation검색된 문서 청크
Generation검색 결과 기반 응답 생성

Agentic RAG는 이것을 다중 사이클 ReAct로 확장한 것: 에이전트가 무엇이 부족한지 추론하고, 검색 쿼리를 수립하고, 검색하고, 결과를 관찰하고, 정보가 충분한지 추론하고, 필요하면 다시 검색.

논문의 HotPotQA 예시가 이것을 직접 보여준다: "Front Row" 검색 실패 → "Front Row (software)"로 재검색. 이 적응적 검색 전략은 정적 RAG에서는 불가능하다.


제9장: 보안 — ReAct 에이전트의 위험

간접 프롬프트 인젝션: Observation이 공격 벡터

ReAct 에이전트의 가장 큰 보안 위험: Observation 단계가 외부의 신뢰할 수 없는 데이터를 모델 컨텍스트에 주입한다.

Greshake et al. (2023.2)이 시연한 것:

  • 공격자가 웹페이지에 악의적 지시를 숨김 (0크기 폰트)
  • Bing Chat이 그 페이지를 검색(Action)하고 내용을 관찰(Observation)
  • 숨겨진 지시가 에이전트를 "데이터 해적"으로 전환 → 개인정보 유출 시도
⚠️
혼동된 대리인(Confused Deputy) 문제: 에이전트가 사용자의 권한으로 행동하지만, 공격자의 지시를 따르는 상황. 예: 이메일 보조 에이전트가 이메일을 읽고(Action), 악의적 지시가 숨겨진 이메일 내용을 관찰(Observation)하고, 민감한 메일을 공격자에게 전달. 에이전트는 사용자의 이메일 권한을 가지지만 공격자를 위해 행동한다.

복합 신뢰도 문제

HITL 글에서 다뤘듯, ReAct 루프의 각 단계에는 오류 확률이 있고, 다단계 에이전트에서 이 확률은 곱해진다.

완화 전략: 위험한 행동에 사용자 확인 요구, 최소 권한 원칙 적용, 모든 LLM 응답을 비신뢰 데이터로 취급, 도구 설계에 오류 방지(poka-yoke) 원칙 적용.


맺으며: 비고츠키에서 ReAct까지 — "생각하면서 행동하기"의 계보

이 논문의 여정을 돌아보면 놀라운 연결고리가 보인다.

1934년, 비고츠키는 아이들이 블록을 쌓으면서 독백하는 것을 관찰하고, 언어가 행동을 안내하는 인지 도구라고 주장했다. 1971년, STRIPS는 로봇이 "전제 조건 확인 → 행동 → 상태 갱신"의 루프로 세계와 상호작용하게 만들었다. 2022년, ReAct는 이 두 전통을 LLM 안에서 통합했다. A^=AL\hat{A} = A \cup L — 행동 공간에 언어를 추가하는 한 줄의 수식이, 반세기에 걸친 인지과학과 AI 연구를 하나로 엮은 것이다.

ReAct 논문이 증명한 것:

  1. 생각과 행동의 결합이 환각을 제거한다 (56% → 0%)
  2. 프롬프트 예시 몇 개가 10만 건 학습 데이터를 이긴다 (ALFWorld: 71% vs 37%)
  3. 추론이 행동을 돕고, 행동이 추론을 돕는다 — 이 시너지가 핵심
  4. 외부 피드백 반복(IM)과 내부 추론(ReAct)은 근본적으로 다르다 (71% vs 53%)
  5. 사고의 투명성이 인간의 개입 비용을 극적으로 줄인다 (사고 2줄 편집으로 전체 행동 교정)
  6. 파인튜닝 시 ReAct가 가장 잘 스케일링한다 (8B 파인튜닝 > 62B 프롬프팅)

2026년 현재, 이 교훈들은 모든 AI 에이전트 시스템에 내장되어 있다. Claude Code가 파일을 읽고 코드를 수정할 때, Cursor가 테스트를 실행하고 오류를 분석할 때, ChatGPT가 웹을 검색하고 결과를 종합할 때 — 그 안에서 작동하는 것은 2022년 프린스턴과 Google의 연구자 7명이 만든 Thought-Action-Observation 루프다.

그리고 그 루프의 뿌리에는, 90년 전 아이들의 독백을 관찰하던 심리학자의 통찰이 있다. 인간은 원래 생각하면서 행동하는 존재이고, AI도 그렇게 해야 비로소 제대로 작동한다.


참고 논문: Shunyu Yao, Jeffrey Zhao, Dian Yu, Nan Du, Izhak Shafran, Karthik Narasimhan, Yuan Cao. "ReAct: Synergizing Reasoning and Acting in Language Models." ICLR 2023. arXiv:2210.03629

프로젝트 페이지 및 코드: react-lm.github.io