검색
← 모듈 로드맵

ReAct: 추론과 행동을 함께

논문 · 준전문가 · Shunyu Yao 외 6명 · 2022 · arXiv

원제 · ReAct: Synergizing Reasoning and Acting in Language Models

생각·행동·관찰을 번갈아 쓰게 해 추론과 도구 사용을 결합한 LLM 에이전트 프롬프트

먼저 알아야 할 것

생각의 사슬(CoT)퓨샷 프롬프팅자기 일관성정책 · 관찰 · 행동 개념

다루는 내용

ReAct는 LLM의 행동 공간에 환경을 바꾸지 않는 '생각'을 추가해, 생각으로 다음 행동을 정하고 행동(위키백과 search · lookup, 게임 조작, 쇼핑 클릭)으로 얻은 관찰로 다시 생각하게 하는 퓨샷 프롬프팅입니다. HotpotQA · Fever에서 CoT의 환각을 줄였고 CoT-SC와 섞을 때 가장 좋았으며, ALFWorld와 WebShop에서는 예시 한두 개로 모방 · 강화학습 방법을 성공률 34%p · 10%p 앞섰습니다. 반복 고리와 검색 실패가 주된 약점이며, 정답 궤적 3,000개로 미세조정하면 작은 모델도 큰 모델 프롬프팅을 넘었습니다.

초록

저자가 쓴 초록을 옮긴 것입니다.

대형 언어 모델(LLM)은 언어 이해와 상호작용형 의사결정 과제 전반에서 인상적인 능력을 보였지만, 추론 능력(예: 생각의 사슬 프롬프팅)과 행동 능력(예: 행동 계획 생성)은 주로 따로따로 연구됐습니다. 이 논문에서는 LLM이 추론 흔적과 과제별 행동을 번갈아 생성하도록 해 둘 사이의 시너지를 키우는 방법을 탐구합니다. 추론 흔적은 모델이 행동 계획을 세우고, 추적하고, 갱신하며 예외를 처리하도록 돕고, 행동은 지식 베이스나 환경 같은 외부 원천과 상호작용해 추가 정보를 모으게 합니다. ReAct라고 이름 붙인 이 방법을 다양한 언어 · 의사결정 과제에 적용해, 최신 기준 모델보다 효과적이면서, 추론이나 행동 요소가 없는 방법보다 사람이 해석하고 신뢰하기 쉬움을 보였습니다. 구체적으로 질의응답(HotpotQA)과 사실 검증(Fever)에서 ReAct는 간단한 위키백과 API와 상호작용함으로써 생각의 사슬 추론에 흔한 환각과 오류 전파 문제를 극복하고, 추론 흔적이 없는 기준 모델보다 해석하기 쉬운, 사람과 비슷한 과제 해결 궤적을 생성합니다. 두 상호작용형 의사결정 벤치마크(ALFWorld와 WebShop)에서는 문맥 내 예시를 한두 개만 주고도 모방 학습과 강화학습 방법을 절대 성공률로 각각 34%와 10% 앞섰습니다.

해설

ReAct: 추론과 행동을 함께

언어 모델이 생각(Thought) → 행동(Action) → 관찰(Observation) 을 번갈아 쓰게 해, 추론으로 다음 행동을 정하고 행동(위키백과 검색, 게임 조작, 쇼핑 사이트 클릭)으로 얻은 정보로 다시 추론하게 만든 프롬프트 방식입니다. 생각의 사슬의 환각을 줄였고, 예시 한두 개만으로 텍스트 게임 · 웹 쇼핑에서 모방 · 강화학습 방법을 크게 앞섰습니다. 오늘날 'LLM 에이전트'의 기본 틀입니다.

항목내용
원제ReAct: Synergizing Reasoning and Acting in Language Models
저자Shunyu Yao 외 6명 (프린스턴대 · Google Research Brain 팀)
발표2022 · ICLR 2023 · arXiv 2210.03629
트랙 · 수준LLM 활용·에이전트 · 중급
먼저 알면 좋은 것생각의 사슬(CoT) 프롬프팅, 퓨샷 프롬프팅, 자기 일관성(CoT-SC), 강화학습의 정책 · 관찰 · 행동 개념

들어가기 전에

이 해설은 아래 내용을 안다고 보고 씁니다. 처음이라면 먼저 읽고 오면 수식과 손계산을 훨씬 쉽게 따라올 수 있습니다.

한눈에 보기

  • '추론만 하는' 생각의 사슬과 '행동만 하는' 에이전트가 각각 어디서 실패하는지 알게 됩니다.
  • 행동 공간에 '생각'이라는 언어 행동을 추가 하는 ReAct의 정식화를 이해합니다.
  • 위키백과 API(search · lookup · finish)로 다단계 질문을 푸는 흐름을 손으로 따라가 봅니다.
  • 내부 지식(CoT)과 외부 지식(ReAct)을 상황에 따라 바꿔 쓰는 결합 전략과, ReAct의 대표적인 실패 유형을 압니다.

초록 (번역)

대형 언어 모델(LLM)은 언어 이해와 상호작용형 의사결정 과제 전반에서 인상적인 능력을 보였지만, 추론 능력(예: 생각의 사슬 프롬프팅)과 행동 능력(예: 행동 계획 생성)은 주로 따로따로 연구됐습니다. 이 논문에서는 LLM이 추론 흔적과 과제별 행동을 번갈아 생성하도록 해 둘 사이의 시너지를 키우는 방법을 탐구합니다. 추론 흔적은 모델이 행동 계획을 세우고, 추적하고, 갱신하며 예외를 처리하도록 돕고, 행동은 지식 베이스나 환경 같은 외부 원천과 상호작용해 추가 정보를 모으게 합니다. ReAct라고 이름 붙인 이 방법을 다양한 언어 · 의사결정 과제에 적용해, 최신 기준 모델보다 효과적이면서, 추론이나 행동 요소가 없는 방법보다 사람이 해석하고 신뢰하기 쉬움을 보였습니다. 구체적으로 질의응답(HotpotQA)과 사실 검증(Fever)에서 ReAct는 간단한 위키백과 API와 상호작용함으로써 생각의 사슬 추론에 흔한 환각과 오류 전파 문제를 극복하고, 추론 흔적이 없는 기준 모델보다 해석하기 쉬운, 사람과 비슷한 과제 해결 궤적을 생성합니다. 두 상호작용형 의사결정 벤치마크(ALFWorld와 WebShop)에서는 문맥 내 예시를 한두 개만 주고도 모방 학습과 강화학습 방법을 절대 성공률로 각각 34%와 10% 앞섰습니다.

무엇을 풀었나

LLM의 두 능력은 따로 연구되고 있었습니다.

  • 추론만(CoT): 생각의 사슬은 모델 내부 지식만으로 생각을 이어 갑니다. 논문은 이것을 '정적인 블랙박스'라고 부릅니다. 바깥 세상과 연결되지 않아 사실을 지어내거나(환각), 한 번 틀린 생각이 뒤로 계속 퍼집니다(오류 전파).
  • 행동만(Act): LLM으로 행동 계획을 만들어 환경에서 실행하는 연구도 있었지만, 높은 수준의 목표를 추상적으로 추론하거나 '작업 기억'을 유지하지 못했습니다. 예를 들어 텍스트 게임에서 "싱크대에 후추통이 없다"는 관찰을 이해하지 못하고 같은 엉뚱한 행동을 반복했습니다.

ReAct의 질문은 이것입니다. 추론과 행동을 번갈아 하게 하면, 추론이 행동을 이끌고(reason to act) 행동이 추론에 정보를 주는(act to reason) 시너지가 날까?

핵심 아이디어

mermaid
flowchart LR
  Q[질문 · 과제] --> T[Thought: 무엇을 해야 하나 추론]
  T --> A["Action: search[x] · lookup[y] · 게임 · 클릭"]
  A --> ENV[(환경: 위키백과 API · ALFWorld · WebShop)]
  ENV --> O[Observation: 결과 문장]
  O --> T
  T -->|충분하면| F["Action: finish[답]"]

1. 행동 공간에 '생각'을 추가한다

직관. 숙련된 사람은 일하면서 속으로 중얼거립니다. "먼저 A를 찾아봐야겠다 → (찾아봄) → A에는 B 얘기가 없네, 그럼 C를 찾아보자." 이 혼잣말이 행동의 방향을 잡아 주고, 행동 결과가 다시 혼잣말을 고칩니다.

단계별 설명.

  1. 일반적인 에이전트는 시점 tt에 관찰 oto_t를 받고, 지금까지의 맥락 ctc_t를 보고 행동 ata_t를 고릅니다.
  2. ReAct는 행동의 종류에 언어로 된 생각 을 추가합니다. 생각은 환경을 바꾸지 않고 관찰도 돌려받지 않습니다.
  3. 대신 생각은 맥락에 덧붙어 다음 추론 · 행동에 쓰입니다.
  4. 생각의 쓰임은 다양합니다: 목표 쪼개기 · 계획 세우기, 상식 주입, 관찰에서 핵심 뽑기, 진행 상황 추적, 예외 처리와 계획 수정.

수식.

π(at∣ct),ct=(o1,a1,…,ot−1,at−1,ot),A^=A∪L\pi(a_t \mid c_t), \quad c_t = (o_1, a_1, \dots, o_{t-1}, a_{t-1}, o_t), \qquad \hat{\mathcal{A}} = \mathcal{A} \cup \mathcal{L}
a^t∈L  ⇒  ct+1=(ct,a^t)(관찰 없음)\hat{a}_t \in \mathcal{L} \;\Rightarrow\; c_{t+1} = (c_t, \hat{a}_t) \quad (\text{관찰 없음})
기호뜻
oto_t, ata_t시점 tt의 관찰, 행동
ctc_t지금까지의 관찰 · 행동 기록(맥락)
π\pi정책. 맥락을 보고 행동을 고르는 규칙(여기서는 프롬프트된 LLM)
A\mathcal{A}원래 행동들(검색, 이동, 클릭 등)
L\mathcal{L}언어(생각) 공간. 무한히 넓음
a^t\hat{a}_t생각. 맥락에만 추가됨

왜 이렇게 했나. 맥락에서 바로 정답 행동으로 가는 대응이 복잡할 때, 정책을 '학습'하기는 어렵습니다. 언어 공간은 무한해서 학습으로 다루기도 어렵지만, 이미 강한 언어 능력을 가진 LLM 이라면 예시 몇 개만으로 쓸모 있는 생각을 만들어 낼 수 있습니다. 논문은 고정된 PaLM-540B에 퓨샷 예시를 주는 방식을 주로 씁니다.

생각의 밀도. 추론이 중요한 과제(QA · 사실 검증)는 생각 → 행동 → 관찰을 매번 번갈아 하고(조밀한 생각), 행동이 많은 의사결정 과제(게임 · 쇼핑)는 필요한 곳에만 가끔 생각하도록(드문 생각) 모델에게 맡깁니다.

2. 지식 과제: 위키백과 API로 다단계 질문 풀기

직관. 사람이 위키백과를 쓰는 방식 그대로입니다. 문서를 찾고, Ctrl+F로 원하는 단어를 찾고, 답을 적습니다.

행동 세 가지.

  • search[개체]: 해당 위키 문서의 첫 5문장을 돌려줌. 없으면 비슷한 개체 5개를 제안
  • lookup[문자열]: 문서에서 그 문자열이 든 다음 문장을 돌려줌(Ctrl+F 흉내)
  • finish[답]: 답을 내고 끝냄

논문은 이 API가 최신 검색기보다 훨씬 약하다 는 점을 일부러 밝힙니다. 목적은 성능이 아니라, 모델이 언어로 추론하며 '무엇을 찾을지' 정하게 만드는 데 있습니다.

숫자로 해 보기 (논문 그림 1을 따라 정리). 질문: "Apple Remote 말고, Apple Remote가 원래 조작하도록 설계된 프로그램을 조작할 수 있는 다른 기기는?"

  1. Thought: Apple Remote를 검색해 원래 어떤 프로그램용인지 찾아야겠다.
  2. Action: search[Apple Remote] → Obs: "… 원래 Front Row 미디어 센터 프로그램을 조작하도록 설계 …"
  3. Thought: Front Row를 검색해 다른 어떤 기기가 조작하는지 찾자.
  4. Action: search[Front Row] → Obs: 찾을 수 없음, 비슷한 항목 제안
  5. Thought: Front Row (software)로 다시 찾아보자.
  6. Action: search[Front Row (software)] → Obs: "… 단종된 미디어 센터 소프트웨어 …"
  7. 이어서 키보드 기능키로도 조작할 수 있다는 정보를 얻고 → Action: finish[keyboard function keys]

같은 질문에서 CoT(추론만)는 "iPhone, iPad, iPod Touch"라는 지어낸 답을, Act(행동만)는 검색은 했지만 결론을 종합하지 못한 답을 냈습니다.

프롬프트 구성. HotpotQA는 학습 세트에서 무작위로 6개, Fever는 3개를 골라 사람이 ReAct 형식 궤적을 직접 써서 예시로 썼습니다.

3. 내부 지식과 외부 지식 섞기: ReAct ↔ CoT-SC

직관. 아는 문제는 머릿속으로 빨리 풀고, 자신 없으면 자료를 찾아보는 것과 같습니다.

두 가지 전환 규칙.

  • ReAct → CoT-SC: ReAct가 정해진 단계(HotpotQA 7단계, Fever 5단계) 안에 답을 못 내면 CoT-SC로 넘어갑니다.
  • CoT-SC → ReAct: CoT를 nn번 뽑아 다수결했을 때 최다 답이 n/2n/2번 미만이면(내부 지식이 자신 없음) ReAct로 넘어갑니다.

숫자로 해 보기 (설명용). CoT를 n=21n = 21번 뽑았는데 최다 답이 9번 나왔다면 9<10.59 < 10.5이므로 자신이 없다고 보고 ReAct로 검색합니다. 최다 답이 15번이면 그대로 그 답을 씁니다.

CoT-SC는 온도 0.7로 21개 궤적을 뽑아 다수결하는 자기 일관성 기준선입니다.

4. 의사결정 과제: ALFWorld와 WebShop

  • ALFWorld: 텍스트로 집 안을 돌아다니며 "책상 램프 아래 종이 살펴보기" 같은 목표를 이루는 게임. 6가지 과제 유형, 위치가 50개 넘고 전문가도 50단계 넘게 걸리는 경우가 있습니다. "램프는 보통 책상 · 선반 · 서랍장에 있다" 같은 상식이 중요해 LLM에 잘 맞습니다. 유형마다 3개 궤적을 예시로 썼고, 생각은 목표 쪼개기 · 하위 목표 완료 추적 · 다음 하위 목표 정하기 · 상식 추론에 씁니다.
  • WebShop: 실제 상품 118만 개와 사람이 쓴 지시 1만 2천 개로 만든 쇼핑 사이트 환경. "니켈 마감, 서랍 있는 협탁, 140달러 미만" 같은 지시를 받아 검색 · 상품 선택 · 옵션 선택 · 구매를 합니다. 500개 시험 지시로 평균 점수와 성공률을 잽니다.

결과

지식 과제 (PaLM-540B 프롬프팅)

방법HotpotQA (EM)Fever (정확도)
Standard28.757.1
CoT29.456.3
CoT-SC33.460.4
Act25.758.9
ReAct27.460.9
CoT-SC → ReAct34.264.6
ReAct → CoT-SC35.162.0
(참고) 지도 학습 최고67.589.5
  • ReAct는 두 과제 모두 Act보다 좋아, '추론이 행동을 이끄는' 가치를 보였습니다.
  • Fever에서는 ReAct가 CoT보다 나았고(60.9 대 56.3), HotpotQA에서는 조금 낮았습니다(27.4 대 29.4).
  • 두 방법을 섞은 쪽이 가장 좋았고, CoT-SC 샘플 3~5개만으로 21개를 쓴 CoT-SC 성능에 도달했습니다.

실패 · 성공 유형 분석 (HotpotQA, 무작위 200개)

유형ReActCoT
성공 중 진짜 성공(올바른 추론 · 사실)94%86%
성공 중 가짜 성공(환각 섞임)6%14%
실패 중 추론 오류(같은 단계 반복 포함)47%16%
실패 중 검색 결과 오류23%—
실패 중 환각0%56%
실패 중 라벨 모호29%28%
  • CoT의 주된 실패는 환각(56%), ReAct의 주된 실패는 추론 오류(47%)와 쓸모없는 검색(23%)이었습니다. ReAct는 앞의 생각 · 행동을 그대로 되풀이하며 고리에 빠지는 패턴이 잦았습니다.

의사결정 과제

  • ALFWorld (성공률 %): ReAct 최고 시행 71, 평균 57 / Act 최고 45 / BUTLER(모방 학습) 37. 가장 나쁜 ReAct 시행(48)도 Act · BUTLER의 최고 시행보다 높았습니다. 관찰을 되새기기만 하는 '내적 독백' 방식(ReAct-IM)은 53으로, 목표 분해 같은 생각이 중요함을 보였습니다.
  • WebShop: ReAct 점수 66.6 · 성공률 40.0, Act 62.3 · 30.1, 모방 학습 59.9 · 29.1, 모방 + 강화학습 62.4 · 28.7, 사람 전문가 82.1 · 59.6.

미세조정: ReAct가 낸 정답 궤적 3,000개로 작은 모델(PaLM-8B · 62B)을 미세조정하자, 프롬프팅에서는 가장 나빴던 ReAct가 네 방법 중 가장 좋아졌습니다. 미세조정한 8B ReAct가 모든 62B 프롬프팅을, 미세조정한 62B ReAct가 모든 540B 프롬프팅을 넘었습니다.

왜 중요한가 · 이후 영향

  • LLM 에이전트의 표준 루프 가 됐습니다. "생각 → 도구 호출 → 결과 관찰 → 다시 생각"은 오늘날 도구를 쓰는 AI 비서 · 코딩 에이전트의 기본 구조입니다.
  • 해석 가능성과 통제: 생각이 글로 남아 사람이 궤적을 읽고, 잘못된 생각을 고쳐 넣어 행동을 바로잡을 수 있습니다. 논문도 사람이 생각을 편집해 행동을 수정하는 예를 보입니다.
  • 후속 연구의 바탕: Reflexion은 ReAct 궤적의 실패를 말로 반성해 다음 시도에 쓰고, 생각의 나무(같은 1저자)는 생각을 나무처럼 탐색합니다. SWE-bench 같은 에이전트 벤치마크에서도 이런 루프가 쓰입니다.

한계 · 주의할 점

  • 고리에 빠지기: 같은 생각 · 행동을 반복하는 실패가 잦았습니다. 논문은 탐욕적 디코딩 탓일 수 있다고 추정합니다. 실무에서는 단계 수 제한과 반복 감지가 필요합니다.
  • 검색 품질에 민감합니다. 쓸모없는 검색 결과가 나오면 추론이 엇나가 회복이 어려웠습니다(실패의 23%).
  • 유연성 감소: 생각-행동-관찰 형식이 추론의 자유도를 줄여, 추론 오류는 CoT보다 많았습니다.
  • 프롬프팅만으로는 한계 가 있습니다. 지식 과제에서 지도 학습 최고 모델과의 격차가 컸고, 작은 모델은 예시만으로 ReAct를 잘 배우지 못했습니다. 논문은 사람이 쓴 데이터로 더 많이 미세조정하는 방향을 제안합니다.
  • 실제 환경에서 행동(구매, 파일 수정 등)을 하게 할 때는 되돌릴 수 없는 행동에 대한 안전장치가 별도로 필요합니다.

스스로 점검

  1. ReAct에서 '생각'은 다른 행동과 무엇이 다른가요?

    환경을 바꾸지 않고 관찰도 돌려받지 않습니다. 맥락에만 덧붙어 이후 추론과 행동에 쓰입니다.

  2. CoT를 10번 뽑아 최다 답이 4번 나왔다면 CoT-SC → ReAct 규칙에서 어떻게 하나요?

    4<10/2=54 < 10/2 = 5이므로 내부 지식이 자신 없다고 보고 ReAct로 넘어가 검색합니다.

  3. HotpotQA에서 CoT와 ReAct의 주된 실패 원인은 각각 무엇이었나요?

    CoT는 환각(실패의 56%), ReAct는 추론 오류(47%, 반복 고리 포함)와 쓸모없는 검색 결과(23%)였습니다.

용어 정리

용어쉬운 뜻
추론 흔적(reasoning trace)모델이 글로 적은 생각의 흐름
행동(action)환경에 영향을 주는 조작(검색, 이동, 클릭, 답 제출)
관찰(observation)행동 뒤 환경이 돌려준 결과
궤적(trajectory)생각 · 행동 · 관찰이 이어진 전체 기록
정책(policy)상황(맥락)을 보고 다음 행동을 고르는 규칙
환각(hallucination)근거 없는 사실을 지어내는 것
오류 전파(error propagation)앞 단계의 실수가 뒤 단계로 계속 퍼지는 현상
CoT-SC생각의 사슬을 여러 번 뽑아 다수결하는 자기 일관성 방법
모방 학습(IL) · 강화학습(RL)시범을 따라 배우기 · 보상을 최대화하며 배우기
성공률(SR)과제를 완전히 해낸 비율

이어서 읽을 것

다음에 볼 것

이 글을 이해했다면 이어서 보면 좋은 항목입니다.

출처

AI 원리부터 이해하기 · LLM 활용·에이전트 모듈

LLM 활용·에이전트 모듈 학습

이 글은 LLM 활용·에이전트 모듈의 학습 자료입니다. 전체 19개 자료 중 11번째입니다.

AI 기초 과정은 현재 진도 저장을 지원하지 않습니다.

출처·원문

원문 보기

요약만

arXiv (논문별 상이)

arXiv 2210.03629