AI에게 질문을 던지고 한 번에 완벽한 답을 기대하는 시대는 지나갔습니다. 이제는 AI가 마치 인간처럼 단계별로 생각하고, 필요한 정보를 찾아보고, 그 결과를 바탕으로 다음 단계를 계획하며 최종 답변에 도달하는 더 정교한 접근법이 주목받고 있습니다.
바로 ReAct(Reasoning + Acting) 프롬프팅입니다. 이 혁신적인 기법은 단순히 추론만 하거나 행동만 하는 것이 아니라, 두 가지를 유기적으로 결합하여 AI의 신뢰성과 정확성을 크게 향상시킵니다.
출처: Prompt Engineering Guide
ReAct가 등장한 이유
기존의 AI 프롬프팅 방식에는 분명한 한계가 있었습니다.
Chain of Thought(CoT) 프롬프팅은 단계별 추론에는 뛰어나지만, AI가 이미 학습한 지식에만 의존하기 때문에 최신 정보나 정확한 사실 확인이 어려웠습니다. 결과적으로 그럴듯하지만 잘못된 정보를 생성하는 ‘환각(hallucination)’ 문제가 발생했죠.
반면 Action-only 프롬프팅은 외부 도구나 데이터베이스에 접근할 수 있지만, 논리적 사고 과정 없이 무작정 행동하다 보니 비효율적이고 엉뚱한 결과를 가져오는 경우가 많았습니다.
ReAct는 이 두 방식의 장점을 결합하여 탄생했습니다. 2022년 Yao 등이 발표한 연구에서 소개된 이 프레임워크는 AI가 생각하고 행동하는 과정을 번갈아가며 수행하도록 설계되었습니다.
ReAct의 작동 원리: 생각→행동→관찰→반복
ReAct의 핵심은 다음과 같은 순환 구조에 있습니다:
- Thought(생각): AI가 현재 상황을 분석하고 다음에 무엇을 해야 할지 계획합니다.
- Action(행동): 계획에 따라 구체적인 행동을 취합니다(검색, 계산, 도구 사용 등).
- Observation(관찰): 행동의 결과를 관찰하고 새로운 정보를 획득합니다.
- Repeat(반복): 새로운 정보를 바탕으로 다시 생각하고 다음 단계를 계획합니다.
실제 예시: 지역 정보 질문
“High Plains의 고도 범위는 어떻게 될까요?”라는 질문에 대해 ReAct 방식으로 답변하는 과정을 보겠습니다.
Thought 1: “High Plains의 고도 범위를 알아보기 위해 검색해야겠다.”
Action 1: Search[High Plains elevation range]
Observation 1: “High Plains의 고도는 1,800피트에서 7,000피트 사이입니다.”
Thought 2: “이 정보로 질문에 답할 수 있겠다.”
Action 2: Finish[1,800피트에서 7,000피트]
이처럼 각 단계가 투명하게 드러나기 때문에 AI의 사고 과정을 추적할 수 있고, 어디서 오류가 발생했는지도 쉽게 파악할 수 있습니다.
기존 방법들과 무엇이 다른가?

세 가지 접근법을 동일한 질문으로 비교해보겠습니다. “2024년 한국의 AI 스타트업 투자 규모는 얼마인가?”라는 질문에 대해:
Chain of Thought(CoT) 방식:
질문: 2024년 한국의 AI 스타트업 투자 규모는 얼마인가?
단계별 사고:
1. 한국의 AI 산업은 최근 몇 년간 빠르게 성장하고 있다
2. 2023년 기준으로 AI 투자가 증가 추세였다
3. 전 세계적으로 AI 투자가 활발하므로 한국도 비슷할 것이다
4. 대략 수조원 규모일 것으로 추정된다
답변: 약 3-5조원 정도로 추정됩니다.
문제점: 추론 과정은 논리적이지만 실제 2024년 데이터가 없어 추측에 의존
Action-only 프롬프팅 방식:
질문: 2024년 한국의 AI 스타트업 투자 규모는 얼마인가?
Action 1: Search[한국 AI 투자 2024]
Action 2: Search[스타트업 투자 통계]
Action 3: Search[벤처투자 현황]
Action 4: Calculate[투자 합계]
답변: 검색된 데이터를 바탕으로 답변
문제점: 체계적 계획 없이 무작정 검색하여 관련 없는 정보를 수집할 가능성
ReAct 방식:
질문: 2024년 한국의 AI 스타트업 투자 규모는 얼마인가?
Thought 1: 정확한 2024년 데이터가 필요하므로 최신 투자 보고서나 통계를 찾아야겠다.
Action 1: Search[2024년 한국 AI 스타트업 투자 규모 통계]
Observation 1: "한국벤처투자협회에 따르면 2024년 상반기 AI 분야 투자는 1.2조원..."
Thought 2: 상반기 데이터만 있으니 연간 전체 데이터나 하반기 추가 정보를 찾아보자.
Action 2: Search[2024년 하반기 AI 투자 한국벤처투자협회]
Observation 2: "2024년 하반기 추가 투자 8,000억원 기록..."
Thought 3: 이제 상반기와 하반기 데이터를 합산할 수 있겠다.
Action 3: Calculate[1.2조 + 0.8조]
Observation 3: 2조원
답변: 2024년 한국의 AI 스타트업 투자 규모는 약 2조원입니다.
ReAct의 장점: 논리적 사고와 외부 정보 활용을 결합하여 더 균형잡히고 사실에 기반한 답변을 제공합니다. 각 단계의 투명성으로 인해 오류 발견과 수정도 용이하죠.
어떤 분야에서 ReAct가 빛을 발하는가?
ReAct는 특히 다음과 같은 업무에서 뛰어난 성과를 보입니다:
지식 기반 업무
- 질문 답변: 여러 소스의 정보를 종합하여 답변하는 업무
- 사실 검증: 특정 주장이나 정보의 정확성을 외부 자료로 확인하는 업무
- 연구 지원: 최신 데이터나 통계가 필요한 보고서 작성
HotpotQA나 Fever 같은 벤치마크 테스트에서 ReAct는 순수한 CoT나 Action-only 방식보다 더 높은 정확도를 기록했습니다. 이는 생각과 행동을 결합한 접근법이 실제로 더 나은 결과를 가져온다는 것을 입증합니다.
동적 환경에서의 의사결정
ALFWorld(텍스트 기반 게임)이나 WebShop(온라인 쇼핑 시뮬레이션) 같은 복잡한 환경에서 ReAct는 다단계 목표를 계획하고, 새로운 정보에 따라 조정하며, 탐색과 의사결정을 효과적으로 수행했습니다.
효과적인 ReAct 프롬프트 작성법
ReAct의 잠재력을 최대한 활용하려면 다음 가이드라인을 따르세요:
1. 명확한 목표 설정
프롬프트 시작 시 AI가 무엇을 해결해야 하는지 구체적으로 명시하세요.
2. 현실적인 ‘사고’ 단계 포함
AI가 단순히 반응하는 것이 아니라 미리 계획할 수 있도록 도와주세요.
3. 적절한 행동 매칭
작업 유형에 맞는 행동을 선택하세요(검색, 계산, 조회 등).
4. 관찰 결과를 다음 단계 가이드로 활용
각 관찰 결과가 다음 단계를 결정하는 데 활용되도록 하세요.
5. 실제 컨텍스트 사용
HotpotQA나 WebShop 같은 실제 데이터셋의 질문을 참고하여 현실적인 시뮬레이션을 만드세요.
핵심 플로우: Thought → Action → Observation → Repeat → Answer
실제 채팅창에서 사용하는 ReAct 프롬프트 예시
많은 분들이 ReAct를 이론적으로는 이해하지만 실제로 어떻게 프롬프트를 작성해야 하는지 궁금해하십니다. 다음은 실제 채팅창에 입력할 수 있는 구체적인 예시들입니다:
초보자를 위한 간단한 정보 검색:
질문: "애플의 2024년 3분기 매출은 얼마인가요?"
다음 형식으로 단계별로 답변해주세요:
1. 먼저 무엇을 해야 할지 생각(Thought)을 말해주세요
2. 그 다음 구체적인 행동(Action)을 설명해주세요
3. 결과를 관찰(Observation)하고 설명해주세요
4. 필요하면 1-3을 반복하세요
5. 최종 답변을 제공해주세요
복잡한 분석 작업을 위한 고급 프롬프트:
다음 문제를 ReAct 방식으로 해결해주세요:
"한국의 전기차 충전소 개수가 노르웨이보다 적은지 많은지 비교분석하고,
인구 대비 충전소 밀도까지 계산해주세요"
각 단계마다:
- Thought: 현재 상황 분석과 다음 행동 계획
- Action: 구체적으로 무엇을 조사하거나 계산할지
- Observation: 찾은 정보나 계산 결과
- 필요시 반복 후 최종 결론
비즈니스 의사결정 지원:
저는 AI 스타트업 창업을 고려 중입니다. 다음을 ReAct 프레임워크로 분석해주세요:
"2025년 한국에서 AI 헬스케어 스타트업을 창업한다면 성공 가능성은?"
단계별로:
1. Thought: 분석해야 할 요소들 파악
2. Action: 시장 조사, 경쟁사 분석, 규제 환경 조사 등
3. Observation: 각 조사 결과 정리
4. 반복하여 종합 분석 후 최종 의견
구체적인 데이터와 논리적 근거를 바탕으로 답변해주세요.
성공적인 ReAct 프롬프트의 핵심 요소
- 명확한 지시어: “ReAct 방식으로”, “단계별로” 같은 구체적 지시
- 구조 제시: Thought → Action → Observation 구조를 명확히 설명
- 구체적 요구사항: “데이터 기반으로”, “근거와 함께” 같은 품질 요구
- 반복 허용: “필요시 반복” 표현으로 여러 사이클 허용
이렇게 프롬프트를 구성하면 AI가 ReAct 패턴을 따라 체계적으로 사고하고 행동하며 신뢰할 수 있는 답변을 제공할 것입니다.
언제 ReAct를 사용하고 언제 피해야 할까?
ReAct를 사용해야 하는 경우:
- 다단계 작업이 필요한 경우
- 외부 정보가 중요한 경우
- 추론 과정의 투명성이 필요한 경우
- 복잡한 환경에서 에이전트나 도구를 시뮬레이션하는 경우
ReAct를 피해야 하는 경우:
- 간단하고 직접적인 작업인 경우 (원샷 답변이 더 효과적)
- 지연 시간이나 비용이 중요한 고려사항인 경우
- 모델이나 플랫폼이 도구 기반 행동을 지원하지 않는 경우
단순한 출력이 필요하거나 복잡도가 낮은 작업의 경우 ReAct는 과도할 수 있습니다.
실무에서의 활용 팁
LangChain과 함께 사용하기
ReAct는 LangChain 같은 프레임워크와 함께 사용할 때 더욱 강력해집니다. 실제 구현 예시를 보면:
from langchain.agents import initialize_agent, Tool
from langchain.agents import AgentType
from langchain.llms import OpenAI
# 검색 도구와 수학 도구를 설정
tools = [
Tool(name="Search", func=search_func, description="외부 정보 검색"),
Tool(name="Calculator", func=calculator_func, description="수학 계산")
]
# ReAct 에이전트 초기화
agent = initialize_agent(
tools,
OpenAI(temperature=0),
agent=AgentType.REACT_DOCSTORE,
verbose=True
)
# 질문 실행
result = agent.run("2024년 올림픽 금메달 수를 계산해주세요")
하이브리드 접근법
2025년 현재 가장 효과적인 방법은 ReAct + CoT + 자기 일치성 검증을 결합한 하이브리드 접근법입니다:
- 중요한 의사결정이나 도구 기반 작업에는 ReAct 사용
- 내부 논리만으로 충분한 경우에는 CoT 사용
- 정확성 향상을 위해 자기 검증 추가
이런 혼합 접근법은 사고의 유연성, 신뢰할 수 있는 데이터, 그리고 환각 현상 감소라는 모든 장점을 제공합니다.
주의사항과 한계
ReAct도 완벽하지는 않습니다:
- 검색 결과가 부정확하면 전체 추론 과정이 잘못될 수 있습니다
- 너무 많은 단계로 인해 응답이 길어지고 느려질 수 있습니다
- 구조화된 프롬프트 때문에 개방형 작업에서는 유연성이 떨어질 수 있습니다
또한 모든 모델이 도구 사용을 지원하는 것은 아닙니다. 도구 없이는 ReAct의 절반 정도 효과만 얻을 수 있죠.
그럼에도 불구하고 적절히 설정되면 이런 단점들을 상쇄할 만큼 큰 이점을 제공합니다.
미래 전망: AI 에이전트의 새로운 표준
ReAct는 단순한 프롬프팅 기법을 넘어 AI가 수동적 응답에서 능동적 추론으로 나아가는 방향을 제시합니다. AI가 질문하고, 행동하고, 조정하며, 목적을 가지고 답변하는 모습을 보여주죠.
앞으로 더 많은 오픈소스 에이전트와 맞춤형 워크플로우가 ReAct를 기반 계층으로 채택할 것으로 예상됩니다. 이는 AI의 미래가 단순히 더 똑똑한 답변이 아니라, 더 똑똑한 사고로 향하고 있음을 의미합니다.
ReAct 프롬프팅을 마스터하면 AI를 단순한 도구가 아닌 진정한 사고하는 파트너로 활용할 수 있게 될 것입니다. 복잡한 업무나 의사결정 과정에서 AI의 도움을 받고 싶다면, ReAct를 배워보는 것이 좋은 출발점이 될 것입니다.
참고자료:
Comments