ReAct
모델이 매 단계마다 "왜 이 행동을 하는가"를 말로 적어두는 추론(Thought)과, 툴 호출이나 검색처럼 환경에 영향을 주는 행동(Action)을 번갈아 내보내게 하는 프롬프팅 패턴입니다. 기준 시점: 2026-10
왜 필요한가
추론만 하는 방식(Chain-of-Thought)은 모델이 문제를 단계별로 풀어내지만, 그 추론은 모델이 이미 가진 지식 안에서만 이뤄집니다. 중간에 사실이 틀렸거나 최신 정보가 필요해도 외부와 상호작용할 방법이 없어 추론이 틀린 방향으로 굳어지기 쉽습니다.
행동만 하는 방식(Act-only)은 반대로 툴을 호출하고 결과를 받지만, 왜 그 행동을 선택했는지, 다음에 뭘 해야 할지에 대한 명시적인 판단 과정이 없어 계획을 세우거나 실패를 복구하기 어렵습니다.
에이전트 루프가 관찰-추론-행동을 반복하는 구조 자체를 가리킨다면, ReAct는 그 "추론" 단계를 모델이 텍스트로 드러내게 강제해서, 행동 하나하나가 어떤 판단에서 나왔는지 보이게 만드는 구체적인 패턴입니다.
동작 과정
Thought: 이 질문에 답하려면 먼저 X를 검색해야 한다
Action: search("X")
Observation: (검색 결과가 모델에 되먹여짐)
Thought: 검색 결과에 Y가 빠져 있으니 Y도 찾아야 한다
Action: search("Y")
Observation: (검색 결과)
Thought: 이제 X와 Y로 답을 구성할 수 있다
Action: finish("답변")
Thought는 다음 행동의 근거와 계획을 세우고, Action은 그 계획을 실제로 실행하며, Observation은 행동의 결과를 다시 다음 Thought의 입력으로 되돌린다. 이 세 가지를 번갈아 내보내는 것이 ReAct의 전부입니다.
트레이드오프
- Thought를 매 단계 생성하므로 Act-only 방식보다 토큰을 더 쓰고 지연이 늘어난다
- 대신 각 행동의 근거가 텍스트로 남아 왜 실패했는지 추적하기 쉽고, 사람이 중간 추론을 읽고 개입할 지점을 찾기 쉽다
- Yao et al.(2022)은 질의응답·사실 검증 과제(HotpotQA, FEVER)와 상호작용형 의사결정 과제(ALFWorld, WebShop)에서 ReAct가 CoT 단독 방식보다 사실에 기반한 추론을 하고, Act 단독 방식보다 계획을 잘 세운다고 보고했다
주의사항
- Thought 생성 자체가 목적이 아니라 다음 Action을 더 잘 고르기 위한 수단이라는 점을 잊으면, 모델이 Thought만 길게 쓰고 실제 행동은 바뀌지 않는 경우가 생긴다
- Observation이 너무 길면(예: 검색 결과 전문) 다음 Thought 전에 컨텍스트를 압박하므로, 요약해서 되먹이는 처리가 필요할 때가 많다
핵심 정리
- ReAct는 Thought(추론)와 Action(행동)을 번갈아 내보내게 하는 프롬프팅 패턴
- CoT 단독의 "외부와 상호작용 없음", Act 단독의 "명시적 판단 과정 없음"을 각각 보완한다
- 대가는 토큰·지연 증가, 보상은 추적 가능한 추론 흔적과 더 정확한 계획