Agent LAB

논문리뷰:ReAct: Synergizing Reasoning and Acting in Language Models

주녕콩 2025. 6. 7. 03:36

https://arxiv.org/abs/2210.03629

 

생각하고 행동하는 AI? 🧠🚀 ReAct 프레임워크 완전 정복!

최근 대규모 언어 모델(LLM)이 글쓰기, 코딩, 번역 등 다양한 분야에서 놀라운 능력을 보여주고 있죠! 하지만 LLM이 단순히 정보를 생성하는 것을 넘어, 마치 사람처럼 스스로 생각하고(Reasoning) 그 생각을 바탕으로 행동(Acting)까지 할 수 있다면 어떨까요? 오늘 소개해 드릴 ReAct 프레임워크가 바로 이 질문에 대한 흥미로운 해답을 제시합니다! 🤩

ReAct는 LLM의 '추론 능력'과 '행동 능력'을 마치 우리 뇌처럼 시너지 효과를 내도록 결합하는 혁신적인 접근 방식이에요. 기존에는 이 두 가지 능력이 따로 다뤄졌다면, ReAct는 이들을 자연스럽게 엮어 LLM이 외부 정보(예: 위키피디아, 웹)와 상호작용하며 더 똑똑하고 신뢰할 수 있는 문제 해결을 하도록 돕습니다.

🤔 ReAct란 무엇인가? 생각과 행동의 아름다운 조화!

ReAct의 가장 핵심적인 아이디어는 인간의 인지 과정처럼 "생각(Thought)"과 "행동(Action)"을 자연스럽게 결합하는 것입니다.

  • 생각이 행동으로 (Reason to Act) 💡➡️🏃‍♂️: 추론 과정은 AI 모델이 행동 계획을 세우고, 진행 상황을 추적하며, 계획을 수정하고, 예상치 못한 상황에 대처하는 데 도움을 줍니다.
  • 행동이 생각으로 (Act to Reason) 🏃‍♂️➡️💡: 실제 행동은 AI 모델이 외부 환경(지식 베이스, 웹사이트 등)과 상호작용하여 새로운 정보를 수집하고, 이 정보를 다시 추론 과정에 통합하여 더 나은 결정을 내리도록 합니다.

⚙️ ReAct는 어떻게 작동할까요? "생각-행동-관찰"의 마법!

ReAct는 LLM이 마치 탐정처럼 단서를 찾아 문제를 해결하는 과정을 밟도록 유도합니다. 바로 **"생각(Thought) - 행동(Action) - 관찰(Observation)"**이라는 순차적인 시퀀스를 통해서죠!

  1. 생각 (Thought) 💭:
  • "이 질문에 답하려면 어떤 정보가 필요할까?", "다음 단계는 무엇일까?" 와 같이 모델의 내부적인 추론, 계획, 정보 통합 과정을 언어로 표현합니다.
  • 이 단계는 외부 환경에 직접적인 영향을 미치지 않아요. 머릿속으로 계획을 짜는 것과 비슷하죠.
  1. 행동 (Action) 🎬:
  • 생각 단계에서 세운 계획에 따라, 특정 작업을 수행하기 위해 외부 환경(예: 위키피디아 API 검색, 웹사이트 클릭)과 상호작용합니다.
  • 예: "위키피디아에서 '리액트 프레임워크' 검색해줘."
  1. 관찰 (Observation) 👀:
  • 행동의 결과로 외부 환경으로부터 받는 피드백입니다.
  • 예: 위키피디아 검색 결과로 얻은 '리액트 프레임워크'에 대한 설명.

이 "생각-행동-관찰" 사이클을 반복하면서, ReAct는 문제를 해결해 나갑니다. 또한, ReAct는 모델의 행동 공간을 단순히 작업별 행동(A)뿐만 아니라, 언어 공간(L)으로 확장해요. 이 언어 공간에서의 행동(ât ∈ L)이 바로 "생각"에 해당하며, 직접 환경을 바꾸진 않지만 현재 상황에 대한 추론을 통해 다음 행동이나 생각을 지원합니다.

💪 ReAct가 기존 방식을 뛰어넘는 이유!

ReAct는 기존 접근 방식들의 한계를 멋지게 극복합니다.

  • 체인오브생각 (Chain-of-Thought, CoT)의 한계 극복:
  • CoT는 LLM이 내부적으로 추론 과정을 길게 풀어 설명하도록 하는 방식이지만, 외부 정보 없이 오직 내부 지식에만 의존하기 때문에 사실 오류(hallucination)나 오류가 다음 단계로 전파되는 문제가 생길 수 있어요.
  • 하지만 ReAct는 외부 환경(예: HotpotQA, Fever 벤치마크에서 Wikipedia API 사용)과의 상호작용을 통해 정확한 정보를 가져와 이러한 문제를 크게 개선합니다! 팩트체크가 가능해지는 거죠!
  • 행동 중심 접근 방식의 한계 개선:
  • 단순히 행동만 생성하는 기존 방식들은 추상적인 목표를 이해하거나, 작업 내용을 기억하거나, 유연하게 추론하는 데 어려움이 있었습니다. ReAct는 명시적인 추론 단계를 통해 이러한 단점을 보완하여 더 똑똑한 행동을 가능하게 합니다.

🏆 ReAct의 놀라운 성과! 벤치마크 정복기

ReAct는 말로만 그럴싸한 게 아니에요! 다양한 언어 및 의사 결정 작업 벤치마크에서 그 효과를 확실히 입증했습니다.

  • 질의응답(HotpotQA), 사실 확인(Fever): Wikipedia API와 연동하여 CoT의 고질적인 문제였던 환각 및 오류 전파를 극복하며 뛰어난 성능을 달성했습니다.
  • 상호작용형 의사결정 벤치마크 (ALFWorld, WebShop):
"ReAct는 모방 학습 또는 강화 학습 방법보다 각각 34%, 10% 더 높은 절대 성공률을 달성했으며, 이는 단 한두 개의 인컨텍스트 예제만으로도 가능했습니다." 😮
즉, 아주 적은 예시만 보고도 복잡한 게임이나 웹 탐색 작업을 훨씬 더 잘 해낸다는 거죠!
  • CoT와의 환상적인 궁합: ReAct는 CoT-SC(Self-Consistency, 여러 추론 경로 중 가장 일관된 답 선택)와 결합될 때 최고의 성능을 보여줍니다. LLM이 내부 지식과 외부 정보를 모두 효과적으로 활용하게 되는 거죠.
  • 투명성과 신뢰성 향상 ✨: ReAct는 추론 과정이 "생각" 단계에 명시적으로 드러나기 때문에, 사람이 모델의 결정 과정을 더 쉽게 이해하고 문제점을 진단할 수 있습니다. 내부 지식과 외부 정보를 구분해서 볼 수 있다는 것도 큰 장점!
  • 다른 방식들보다 우수!: ALFWorld 벤치마크에서, 행동만 하는(Act-only) 방식은 올바른 행동을 못 하거나 같은 행동을 반복하는 경향을 보였습니다. 또한, 유사한 "내부 독백" 개념을 가진 Inner Monologue (IM) 방식과 비교했을 때, ReAct는 목표를 더 잘게 나누고, 하위 목표를 추적하며, 상식적인 추론을 하는 등 더 유연하고 다양한 추론 능력을 활용하여 훨씬 뛰어난 성능을 보였습니다.
"ReAct는 IM 스타일 프롬프팅(ReAct-IM)보다 훨씬 뛰어난 성능을 보였으며(전체 성공률 71% vs. 53%), 6개 작업 중 5개에서 일관된 우위를 나타냈습니다."

 

🚧 아직 남은 과제와 빛나는 미래

ReAct도 아직 완벽하진 않아요. 몇 가지 한계점과 앞으로 더 발전할 수 있는 방향은 다음과 같습니다.

  • 프롬프팅 설정의 한계: 현재 ReAct는 주로 프롬프팅(LLM에게 명령을 내리는 방식) 기반으로 구현되어 있어, 추론 및 행동 패턴 지원에 제한이 있을 수 있습니다.
  • 확장성과 훈련 데이터: 더 많은 종류의 작업에 ReAct를 적용하고, 추가적인 훈련 데이터를 활용하면 성능이 더욱 향상될 수 있을 거예요.
  • 강화 학습과의 결합: 강화 학습(보상을 통해 학습하는 방식)과 같은 다른 학습 패러다임과 ReAct를 결합하면 LLM의 잠재력을 더욱 끌어올릴 수 있을 것으로 기대됩니다.

✨ 결론: LLM 에이전트의 새로운 지평을 열다!

ReAct는 LLM의 추론 능력과 행동 능력을 효과적으로 결합하여 다양한 언어 및 의사 결정 작업에서 뛰어난 성능을 보이는, 매우 유망한 패러다임입니다. 특히 외부 환경과의 상호 작용을 통해 기존 Chain-of-Thought 방식의 한계를 극복하고, 모델의 결정 과정을 더 투명하게 만들어 신뢰성을 높인다는 점에서 큰 의미가 있습니다.

ReAct는 마치 인간이 생각하고 행동하며 문제를 해결하는 방식을 모방하여, 더 복잡하고 역동적인 문제 해결 능력을 갖춘 LLM 기반 에이전트를 구축하는 데 중요한 발판을 마련했습니다. 앞으로 ReAct와 같은 기술이 발전하면서 우리 일상에 더욱 똑똑하고 유용한 AI 비서들이 등장할 날이 머지않은 것 같네요! 😊  from - 맴버와 리더님의 정리 

 

 

저의 정리 

 

논문 “ReAct: Synergizing Reasoning and Acting in Language Models” (Yao et al., 2022)은 LLM(Large Language Model)이 **추론(reasoning)**과 **행동(acting)**을 결합하여 복잡한 문제를 더 효과적으로 해결하도록 하는 방법을 제안

 

기존 LLM 기반 에이전트들은 크게 두 가지 방식 중 하나를 사용했습니다:

접근 방식설명한계

 

Act-only LLM이 외부 툴(예: 계산기, 검색엔진 등)을 호출하고, 그 결과를 바탕으로 다음 행동을 선택 체계적인 사고(Chain-of-Thought)가 부족함
Reason-only 내부적으로 추론(CoT)을 통해 문제를 해결하지만, 외부 정보를 활용하지 않음 외부 지식/계산을 활용하지 못해 정확도 떨어짐

ReAct는 둘을 결합하여 추론과 행동을 “교대로” 수행하도록 힌다.

 

ReAct란 무엇인가?

ReActReason + Act의 합성어로, **언어 모델이 자연어로 된 추론(Thought)**과 **외부 환경에서의 행동(Action)**을 순차적으로 수행하도록 유도한다.

즉, LLM이 다음과 같은 패턴으로 동작다:

Thought: 무엇을 해야 할지 고민
Action: 외부 툴 호출 (예: 검색, 계산, API 호출 등)
Observation: 툴로부터 얻은 결과
Thought: 결과에 대한 해석
Action: 다음 행동 결정 …
...
Final Answer: 정답 출력

 

이 과정을 거치면 모델은 다음과 같은 이점을 가진다:

  • 복잡한 사고 체계(COT) 유도
  • 도구 사용 능력
  • 환경 변화에 대한 반응 (Observation → Thought 피드백 루프)

예제: 위키 검색 기반 질문 응답

 

Q: “In what year did Tesla release their first electric car?”

 

ReAct 방식:

Thought: 테슬라의 첫 전기차 출시 연도를 알아야 해
Action: Search[Tesla first electric car release year]
Observation: Tesla released its first electric car, the Roadster, in 2008.
Thought: 답이 2008년이라는 것을 알았음
Final Answer: 2008

 

기존 방식과 달리, ReAct는 검색 → 추론 → 답안을 반복하면서 함.

 

4. 실험 및 성능
논문에서는 다양한 환경에서 ReAct의 성능을 평가함.

평가된 환경
HotpotQA: 다중 문서 추론

WebShop: 제품 검색 및 추천

ALFWorld: 텍스트 기반 강화학습 환경

성능 결과
모델 WebShop 정확도 ALFWorld 성공률
CoT (Reason-only) 낮음 낮음
Act-only 중간 중간
ReAct 높음 높음

ReAct는 추론과 행동의 상호작용을 통해 성능을 지속적으로 개선함

 

실행 가능한 툴 인터페이스

  • 계산기, 검색엔진, 환경 API 등과 연결
  • Observation을 자연어로 받아 모델에게 다시 입력

6. 관련 기술 및 후속 연구

기법설명
Toolformer 외부 도구 사용을 사전 학습 단계에 통합
AutoGPT / BabyAGI ReAct를 실질적으로 구현한 프레임워크
CoT (Chain-of-Thought) Reason-only 방식의 대표적 기법
AgentBench (2023) ReAct 기반 에이전트들을 평가하는 벤치마크

ReAct.pdf
0.23MB

나머지 수식 등 해석이 필요하다면 참고.