시리즈의 글 (25개)
- Agentic AI 논문 읽기: CoALA — 언어 에이전트를 위한 인지 아키텍처
- Agentic AI 논문 읽기: ReAct — 생각과 행동을 엮은 최초의 패턴
- Agentic AI 논문 읽기: CoT — 생각의 사슬이 추론을 깨운 순간
- Agentic AI 논문 읽기: Toolformer — 언어 모델이 스스로 도구를 잡은 순간
- Agentic AI 논문 읽기: AutoGen — 대화로 엮는 다중 에이전트 시스템
- Agentic AI 논문 읽기: MetaGPT — SOP로 설계한 다중 에이전트 조직
- Agentic AI 논문 읽기: Multi-Agent Survey — 집단 지능의 지도를 펼치다
- Agentic AI 논문 읽기: Reflexion — 실패를 언어로 되감는 에이전트
- Agentic AI 논문 읽기: LATS — 트리 탐색으로 추론과 행동을 통합하다
- Agentic AI 논문 읽기: ETO — 실패 궤적으로 에이전트를 훈련하다
- Agentic AI 논문 읽기: AI Agents That Matter — 벤치마크의 함정을 파헤치다
- Agentic AI 논문 읽기: Paradigms — 도구 사용·계획·피드백의 삼각 구도
- Agentic AI 논문 읽기: Halo — DAG로 에이전트 워크플로우를 최적화하다
- Agentic AI 논문 읽기: Tool Use Evolution — 단일 도구에서 다중 오케스트레이션까지
- Agentic AI 논문 읽기: BloombergGPT — 금융 특화 대규모 언어 모델의 탄생
- Agentic AI 논문 읽기: FinGPT — 오픈소스 금융 LLM 프레임워크
- Agentic AI 논문 읽기: ₩on — 한국어 금융 NLP의 첫 번째 벤치마크
- Agentic AI 논문 읽기: DocLLM — 레이아웃 인식 문서 이해 모델
- Agentic AI 논문 읽기: FINCH — 스프레드시트 중심 재무 벤치마크
- Agentic AI 논문 읽기: InvestorBench — 금융 의사결정 에이전트 벤치마크
- Agentic AI 논문 읽기: Constitutional AI — 원칙 기반 자기 개선
- Agentic AI 논문 읽기: RLHF의 한계 — 인간 피드백 강화학습의 미해결 과제
- Agentic AI 논문 읽기: Autonomous Agents Survey — 자율 에이전트 구축의 해부도
- Agentic AI 논문 읽기: Rise and Potential — 뇌·지각·행동으로 본 에이전트 전망
- Agentic AI 논문 읽기: A-MEM — 제텔카스텐에서 영감받은 에이전트 기억 시스템
논문 정보
- 제목: ReAct: Synergizing Reasoning and Acting in Language Models
- 저자: Shunyu Yao, Jeffrey Zhao, Dian Yu, Nan Du, Izhak Shafran, Karthik Narasimhan, Yuan Cao (Princeton University, Google Research Brain team)
- 출판: ICLR 2023
- arXiv: 2210.03629
지난 글에서 다룬 CoALA는 에이전트를 분류하는 좌표계였다. 기억, 행동, 판단이라는 세 축. 그 좌표계 위에서 CoALA가 "가장 단순하지만 추론과 행동의 시너지를 처음 입증한 사례"로 꼽은 에이전트가 ReAct다.
ReAct 논문이 나온 시점은 2022년 10월이다. GPT-3.5가 아직 등장하기 전, PaLM-540B가 대규모 언어 모델의 전선이던 때다. 지금으로부터 약 3년 6개월 전의 일이다. 그사이 모델의 규모와 능력은 비약적으로 변했지만, 이 논문이 제안한 하나의 패턴 — "생각한 다음 행동하고, 결과를 보고 다시 생각한다" — 은 오늘날 거의 모든 AI 에이전트의 기본 호흡법이 되었다.
이 글에서는 그 패턴이 어떤 문제의식에서 출발했고, 어떻게 작동하며, 3년이 지난 지금 무엇이 달라졌는지를 살펴본다.
혼자 생각하는 LLM, 혼자 행동하는 LLM
ReAct 이전에, LLM 연구에는 두 갈래의 흐름이 있었다. 하나는 추론, 다른 하나는 행동이다. 문제는, 이 두 갈래가 서로 만나지 않고 있었다는 점이다.
첫 번째 흐름은 사고의 연쇄(Chain-of-Thought, CoT) 프롬프팅이다. 원리는 단순하다. 질문과 답만 보여주는 대신, 풀이 과정을 함께 보여주는 예시 몇 개를 프롬프트에 넣는다. 그러면 LLM이 그 형식을 따라, 자기도 중간 단계를 펼쳐 보이며 답에 도달한다. Wei 등이 2022년 초에 발표한 이 기법은, "LLM도 추론할 수 있다"는 가능성을 처음으로 대규모로 입증했다. 산술 문제, 상식 추론, 기호 조작에서 효과가 극적이었고, 이후 수많은 후속 연구를 낳았다. 하지만 치명적인 약점이 있었다. LLM이 자기 머릿속에만 갇혀서 추론한다는 것이다. 외부 세계를 확인하지 않고, 내부 지식만으로 사고를 전개한다. 그 지식이 맞으면 다행이지만, 틀리면 거짓된 전제 위에 그럴듯한 논리를 쌓아 올린다. 이것이 환각(hallucination)이다. 논문의 분석에 따르면, CoT의 실패 사례 중 56%가 이 환각에서 비롯됐다. 안락의자에 앉아 세상을 추론하는 철학자와 비슷하다 — 논리는 정교하지만, 사실과 부딪혀보지 않는다.
두 번째 흐름은 행동 생성이다. LLM을 대화형 환경에 배치하고, API를 호출하거나 게임에서 동작을 수행하게 하는 연구다. WebGPT처럼 검색을 수행하거나, 텍스트 게임에서 방을 이동하고 물건을 집는 식이다. 하지만 이 방식에도 문제가 있었다. 모델이 행동만 하고, 왜 그 행동을 하는지 추론하지 않았다. 고수준 목표를 하위 과제로 분해하지 못하고, 지금까지 무엇을 했는지 추적하지 못했다. 레시피를 따라 요리하지만, 지금 무엇을 만들고 있는지는 모르는 요리사와 같았다.
논문은 인간의 요리 과정을 비유로 든다. 우리는 야채를 썰다가 혼잣말을 한다 — "재료가 다 준비됐으니 이제 물을 끓이자." 소금이 없으면 "간장으로 대체하자"라고 생각을 바꾼다. 반죽 만드는 법이 기억나지 않으면 인터넷을 검색한다. 생각과 행동이 자연스럽게 교차한다. 이 교차가 없으면, 머릿속으로만 요리 계획을 세우다 재료가 없는 걸 모르거나(CoT), 레시피를 보지도 않고 무작정 냄비부터 올리게 된다(Act).
행동 공간을 확장하라 — ReAct의 핵심 아이디어
ReAct의 아이디어는 놀랍도록 단순하다.
에이전트의 행동 공간(Action Space)을 확장한다. 원래 에이전트가 할 수 있는 행동의 집합을 A라 하면, ReAct는 여기에 언어 공간 L을 합친다.
 = A ∪ LA에 속하는 행동은 환경에 영향을 미친다 — 검색을 실행하고, 물건을 집고, 답을 제출한다. L에 속하는 행동은 환경에 아무 영향도 주지 않는다. 대신 에이전트의 컨텍스트를 갱신한다. 이것을 사고(Thought) 또는 추론 트레이스(Reasoning Trace)라 부른다. 환경은 사고에 반응하지 않지만, 에이전트 자신은 사고를 통해 다음에 무엇을 할지 더 나은 판단을 내릴 수 있다.
이로써 사고-행동-관찰(Thought-Action-Observation)의 반복 사이클이 만들어진다. 위키피디아 기반 질의응답(HotpotQA)에서 이 사이클이 어떻게 작동하는지 보자.
질문이 이렇다고 하자: "Milhouse라는 이름은 어떤 미국 대통령에서 따왔는가?"
Thought 1: Milhouse의 이름이 미국 대통령에서 유래했다고 하니, 먼저 Milhouse Van Houten을 검색해서 이름의 유래를 확인해야겠다.
Action 1: search[Milhouse Van Houten]
Observation 1: Milhouse Mussolini Van Houten은 심슨 가족의 등장인물로... 그의 이름은 Richard Nixon 대통령에서 따왔다.
Thought 2: Milhouse의 이름이 Richard Nixon에서 유래했다는 정보를 얻었다. Nixon의 중간 이름이 Milhous인지 확인해야 한다.
Action 2: search[Richard Nixon]
Observation 2: Richard Milhous Nixon은 미국의 제37대 대통령으로...
Thought 3: Richard Nixon의 중간 이름이 Milhous이다. 질문의 답이 확인됐다.
Action 3: finish[Richard Nixon]
핵심은 사고가 수행하는 역할의 다양성이다. 논문은 다섯 가지를 식별했다:
- 목표 분해: 큰 질문을 하위 단계로 나눈다 (Thought 1)
- 정보 추출: 관찰에서 필요한 부분만 골라낸다 (Thought 2)
- 진행 추적: 지금까지 무엇을 알아냈는지 정리한다
- 예외 처리: 검색 결과가 기대와 다르면 계획을 수정한다
- 상식 주입: "이 물건은 보통 서랍에 있다" 같은 배경 지식을 끌어온다
CoT가 처음부터 끝까지 하나의 독백을 펼치는 것이라면, ReAct는 환경과의 대화 속에서 생각을 조각조각 끼워넣는 것이다. 독백과 대화의 차이 — 이것이 ReAct와 CoT의 본질적 차이다.
네 개의 시험대 — 지식 추론과 의사결정
논문은 네 개의 벤치마크에서 ReAct를 검증했다. 두 개는 지식 추론, 두 개는 의사결정 과제다. 기반 모델은 PaLM-540B이며, 모든 실험은 퓨샷(few-shot) 프롬프팅으로 이루어졌다.
지식 추론 과제: HotpotQA와 FEVER
두 과제 모두 위키피디아 API 세 가지를 행동 공간으로 사용했다: search[entity](검색), lookup[string](페이지 내 탐색), finish[answer](답 제출).
| 방법 | HotpotQA (EM) | FEVER (정확도) |
|---|---|---|
| Standard (프롬프트만) | 28.7 | 57.1 |
| CoT (추론만) | 29.4 | 56.3 |
| Act (행동만) | 25.7 | 58.9 |
| ReAct | 27.4 | 60.9 |
| CoT-SC → ReAct | 34.2 | 64.6 |
| ReAct → CoT-SC | 35.1 | 62.0 |
단독 성능만 보면 ReAct가 CoT를 압도하지는 않는다. HotpotQA에서는 오히려 CoT보다 낮다. 하지만 수치 이면의 이야기가 중요하다.
논문이 성공과 실패 사례를 분석한 결과, CoT의 성공 사례 중 14%가 환각된 사실에 기반한 허위 양성이었다. 맞는 답을 냈지만, 근거가 거짓이었다. ReAct는 이 비율이 6%에 불과했다. 더 놀라운 것은 실패 분석이다. CoT가 실패한 사례의 56%가 환각에서 비롯된 반면, ReAct의 환각 비율은 0%였다. 외부 검색으로 사실을 확인하는 구조가 환각을 근본적으로 차단한 것이다. ReAct의 실패는 검색이 유용한 결과를 가져오지 못한 경우(23%)와 추론 자체의 오류(47%)에서 왔다.
여기서 결과 표의 CoT-SC를 잠시 설명해야 한다. CoT-SC(Self-Consistency)는 CoT의 확장판이다. 같은 질문에 대해 CoT 추론을 여러 번 독립적으로 샘플링한 뒤, 다수결로 최종 답을 고른다. 올바른 추론은 경로가 달라도 같은 답에 수렴하고, 잘못된 추론은 제각각 다른 답에 흩어진다는 직관에 기반한다. 한 번의 추론이 실수할 수 있어도, 여러 번 독립적으로 시도하면 정답이 다수를 차지할 가능성이 높다. 단독 CoT보다 일관되게 높은 성능을 보여, 당시 추론 과제의 강력한 기준선이었다.
하지만 CoT-SC에도 한계가 있다. 환각이 체계적일 때 — 즉 모델이 같은 거짓 사실을 반복적으로 생성할 때 — 다수결도 틀린 답에 수렴한다. 여러 경로로 추론해도 출발점이 같은 거짓 위에 있으면 도착지도 같다.
이 분석에서 논문의 가장 실용적인 통찰이 나온다 — 두 방법의 전환 전략이다. ReAct는 외부 검색으로 사실을 확인하니 환각에 강하지만, 검색이 실패하면 답을 내지 못한다. CoT-SC는 내부 지식만으로도 답을 내지만, 그 지식이 틀리면 다수결조차 무력하다. 둘의 약점이 정확히 상보적이다. 그래서 논문은 ReAct가 정해진 단계 안에 답을 내지 못하면 CoT-SC로 전환하고, 반대로 CoT-SC의 다수결 확신도가 낮으면 ReAct로 전환하는 전략을 제안했다. 이 결합이 HotpotQA에서 35.1, FEVER에서 64.6으로 각각 단독 최고 성능을 달성했다.
의사결정 과제: ALFWorld와 WebShop
ALFWorld는 텍스트 기반 가정 환경 시뮬레이터다. "책상 위 스탠드를 켜라" 같은 목표를 받고, 방을 이동하고 물건을 조작하며 50단계 이상에 걸쳐 과제를 완수해야 한다.
| 방법 | ALFWorld 성공률 |
|---|---|
| BUTLER (모방학습) | 37% |
| Act (행동만) | 45% |
| ReAct | 71% |
결과가 극적이다. ReAct의 최악의 시도(48%)조차 Act의 최고 시도(45%)를 넘었다. 정성적 분석에서 원인이 드러난다. Act는 목표를 하위 과제로 분해하지 못하고, 지금까지의 진행 상황을 추적하지 못한다. 서랍을 열었는데 원하는 물건이 없으면, 다시 같은 서랍을 열거나 목적 없이 돌아다닌다. ReAct는 사고를 통해 "스탠드는 보통 책상 위에 있다. 아직 열어보지 않은 서랍을 확인하자"라고 계획을 조정한다.
WebShop은 118만 개의 실제 상품이 있는 온라인 쇼핑 환경이다. 여기서도 ReAct(40.0%)가 Act(30.1%)와 모방학습+강화학습(28.7%)을 모두 넘었다. 수많은 상품 정보 속에서, 사고를 통해 "이 상품은 가격은 맞지만 색상이 다르다"처럼 관찰을 정제하는 능력이 결정적이었다.
생각 두 줄을 고치면 실패가 성공이 된다
논문의 부록에 주목할 만한 실험이 있다. Human-in-the-Loop — 인간이 에이전트의 추론에 개입하는 실험이다.
ALFWorld에서 ReAct가 실패한 과제들을 분석하니, 대부분 에이전트의 사고가 환각하는 지점에서 문제가 시작됐다. 예를 들어, 싱크대 앞에 있으면서 "냉장고를 확인해야겠다"고 잘못 생각하는 식이다. 연구자들이 이 환각된 사고 두 줄만 올바른 내용으로 고쳤더니, 실패하던 과제가 성공으로 전환됐다.
이 발견의 의미는 크다. 만약 사고 없이 행동만 하는 에이전트였다면, 잘못된 행동의 원인을 파악하기 어렵고, 수십 개의 행동을 처음부터 다시 입력해야 했을 것이다. 추론 트레이스가 있으니 문제의 지점이 눈에 보이고, 고칠 곳도 명확하다. 행동 수십 줄 대신 생각 두 줄을 고치는 것 — 이 효율 차이가 ReAct의 실용적 가치를 압축적으로 보여준다.
추론 트레이스는 모델을 위한 장치인 동시에, 인간을 위한 인터페이스이기도 하다. 에이전트가 왜 그런 행동을 했는지 읽을 수 있고, 어디서 잘못됐는지 진단할 수 있고, 최소한의 개입으로 궤적을 바로잡을 수 있다. 논문은 이것을 "인간 정렬(human alignment)"이라 불렀다.
3년 뒤의 풍경 — ReAct가 남긴 것과 달라진 것
2022년 10월에 프롬프팅 기법 하나로 출발한 아이디어가, 3년 6개월이 지난 지금 어떤 위치에 있는지 돌아보자.
실현된 것: 사고-행동-관찰 사이클의 보편화
ReAct가 제안한 Thought-Action-Observation 사이클은 오늘날 사실상 모든 에이전트 프레임워크의 기본 구조가 되었다.
LangChain의 AgentExecutor는 이 사이클을 프레임워크 수준에서 구현했고, 이름 자체가 ReAct 패턴에서 유래했다. AutoGPT는 "생각 → 행동 → 관찰 → 반성"의 루프를 반복한다. Claude의 도구 사용(tool use)도 내부적으로 같은 흐름을 따른다 — 추론으로 어떤 도구를 호출할지 판단하고, 호출 결과를 관찰한 뒤 다시 추론한다. OpenAI의 Assistants API, Cursor의 코딩 에이전트, Devin — 표면적 형태는 다르지만, 근저에 흐르는 패턴은 동일하다.
논문이 "추론과 행동의 교차가 더 그라운딩되고 신뢰할 수 있는 에이전트를 만든다"고 주장한 것은, 3년간의 실전에서 압도적으로 확인됐다.
진화한 것: 기법에서 아키텍처로
달라진 것도 많다.
ReAct는 퓨샷 프롬프팅에 의존했다. 사람이 몇 개의 예시 궤적을 손으로 작성하고, 이를 프롬프트에 넣어 모델이 패턴을 따르게 했다. 오늘날의 에이전트는 명시적 예시 없이도 도구를 사용한다. 명령어 튜닝(instruction tuning)과 네이티브 함수 호출(function calling) 기능이 모델에 내장되었기 때문이다. ReAct의 패턴은 프롬프트가 아니라 모델의 훈련 과정 자체에 흡수됐다.
행동 공간도 비교가 안 된다. 논문이 쓰인 시점에 ReAct가 쓴 행동은 위키피디아 API 세 가지뿐이었다. 오늘날 에이전트는 파일 시스템, 브라우저, 코드 실행 샌드박스, 수십 개의 외부 API를 넘나든다. MCP(Model Context Protocol) 같은 표준이 등장하면서, 도구의 연결 방식 자체가 규격화되고 있다.
단일 루프의 한계도 넘어섰다. ReAct는 하나의 에이전트가 하나의 사고-행동 루프를 실행했다. 지금은 여러 에이전트가 병렬로, 또는 계층적으로 각자의 루프를 돌린다. 하나가 계획을 세우면 다른 하나가 실행하고, 또 다른 하나가 검증한다. ReAct의 단일 루프는 멀티 에이전트 시스템의 기본 단위가 되었다.
여전히 열린 것: ReAct가 남긴 숙제들
논문이 보고한 실패 패턴 중 하나 — 에이전트가 같은 생각과 행동을 반복하며 루프에 빠지는 현상 — 는 2026년에도 여전히 실전에서 관찰된다. 에이전트가 막다른 길에서 벗어나지 못하고 같은 도구를 반복 호출하는 것은, 현재 에이전트 시스템에서 가장 흔한 장애 유형 중 하나다.
추론의 깊이와 행동의 속도 사이의 균형도 열린 문제다. 언제 더 깊이 생각해야 하고, 언제 바로 행동해야 하는가? ReAct는 이 판단을 모델에 맡겼고, 그 한계는 여전히 넘어서지 못했다.
환각된 도구 호출이라는 새로운 변종도 등장했다. ReAct가 위키피디아 검색에서 환각을 0%로 줄인 것은 사실이지만, 오늘날처럼 수십 개의 도구가 열려 있는 환경에서는 존재하지 않는 도구를 호출하거나, 잘못된 파라미터를 넣는 형태의 환각이 새로운 문제가 됐다.
CoALA의 좌표계 위에 놓은 ReAct
지난 글에서 "빈칸이 보이면, 그것이 곧 개선의 방향이 된다"고 했다. CoALA의 세 축 위에 ReAct를 놓으면, 빈칸이 선명하게 드러난다.
| 축 | ReAct의 상태 |
|---|---|
| 기억 | 장기 기억 없음. 작업 기억(프롬프트 컨텍스트)만 사용 |
| 바깥 행동 | 디지털 환경 (위키피디아 API 3개) |
| 안 행동 | 추론만. 검색도, 학습도 없음 |
| 의사결정 | 제안만. 평가도, 선택도 없음 |
장기 기억이 없다. 경험에서 배우지 못한다. 도구가 세 개뿐이다. 후보를 비교하지 않고 떠오르는 첫 번째 행동을 바로 실행한다. CoALA의 기준으로 보면, ReAct는 빈 서랍장으로 싸운 에이전트다.
그런데도 이겼다. 모방학습과 강화학습으로 훈련된 에이전트를 퓨샷 프롬프팅만으로 넘어섰다. 이것이 시사하는 바는 명확하다 — 추론과 행동을 엮는 패턴 자체에 강력한 힘이 있다는 것이다. 인프라가 아닌 구조의 승리다.
그리고 그 빈칸들은 후속 연구가 채워나갔다. Voyager는 절차 기억을 추가했고, Generative Agents는 일화 기억과 의미 기억을 추가했고, Tree of Thoughts는 평가와 선택을 추가했다. ReAct가 그린 최소한의 골격 위에, 에이전트 연구의 3년이 살을 붙여온 셈이다.
마무리 — 단순한 아이디어의 무게
ReAct의 전부를 한 문장으로 줄이면 이렇다: "행동 사이에 생각할 시간을 줘라."
복잡한 아키텍처도, 대규모 학습 데이터도, 강화학습 보상 함수도 없다. 에이전트가 할 수 있는 행동에 "자연어로 생각하기"를 하나 추가한 것이 전부다. 그 하나가 환각을 차단하고, 목표를 분해하고, 인간이 개입할 수 있는 창구를 열었다.
논문이 쓰인 2022년에 GPT-3가 최전선이었다. 지금은 모델의 규모와 능력이 당시와는 차원이 다르다. 하지만 패턴은 살아남았다. 기법은 대체되지만, 좋은 구조는 내재화되기 때문이다. ReAct는 프롬프팅 기법에서 시작해, 에이전트의 호흡법이 되었다.
이 글은 "Agentic AI 논문 읽기" 시리즈의 두 번째 글입니다.