30분
ReAct 패턴: Thought-Action-Observation
Day 3: ReAct 에이전트
ReAct 패턴: Thought-Action-Observation
AI Agent 기초 > Day 3: ReAct 에이전트
학습 목표
ReAct 논문의 핵심 아이디어를 이해한다 Thought-Action-Observation 사이클을 설명할 수 있다 ReAct가 단순 Tool 호출보다 나은 이유를 안다
ReAct 논문 (2022, Yao et al.)
"Synergizing Reasoning and Acting in Language Models" 추론과 행동을 결합하면 LLM이 더 정확하게 문제를 푼다.
핵심 아이디어: LLM에게 "생각을 말로 하면서" Tool을 사용하게 한다.
3가지 요소
에디터 로딩 중...
| 요소 | 설명 | 예시 |
|---|---|---|
| Thought | LLM이 현재 상황을 분석하고 다음 행동을 결정 | "CNC-003만 경고니까 이것부터 확인하자" |
| Action | Tool을 호출하여 정보를 얻거나 행동을 실행 | get_alarm_history("CNC-003") |
| Observation | Tool 결과를 확인하고 다음 단계를 판단 | "W-1105 알람. 베어링 관련이다." |
왜 Thought가 중요한가?
Thought 없는 Agent (단순 Tool 호출)
에디터 로딩 중...
LLM이 왜 그 Tool을 호출하는지 설명하지 않으니 엉뚱한 방향으로 흘러간다.
Thought 있는 Agent (ReAct)
에디터 로딩 중...
5번의 정확한 호출. 불필요한 호출 0.
ReAct vs 다른 패턴
| 패턴 | 특징 | 장점 | 단점 |
|---|---|---|---|
| 단순 Tool 호출 | LLM이 바로 Tool 선택 | 빠름 | 정확도 낮음, 불필요한 호출 |
| Chain of Thought | 생각만 하고 행동 안 함 | 추론 좋음 | 외부 데이터 접근 불가 |
| ReAct | 생각 + 행동 결합 | 정확도 높음, 효율적 | 약간 느림 (생각 시간) |
| Plan-and-Execute | 먼저 전체 계획 후 실행 | 복잡한 작업에 좋음 | 계획 변경 어려움 |
ReAct 프롬프트 구조
에디터 로딩 중...
핵심: System Prompt에 "생각하라"고 명시해야 한다. 안 그러면 LLM은 바로 Tool을 호출한다.