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의 전부입니다.

트레이드오프

주의사항

핵심 정리

참고

CSLOG에서 보기