[[ReAct (Reasoning + Acting)|ReAct (Reasoning + Acting)]]

📌 Brief Summary

ReAct는 LLM이 추론(Reasoning)과 행동(Acting)을 교차 반복하며 문제를 해결하는 프레임워크다. 순수 추론(Chain-of-Thought)이나 순수 행동(도구 호출)만으로는 해결하기 어려운 복잡한 과제에서, 생각하고→도구 쓰고→관찰하고→다시 생각하는 루프로 정보를 실시간 보완하며 정확한 답에 도달한다.

---

📖 Core Content

## 1. ReAct의 핵심 루프

```
[ReAct 사이클: Thought → Action → Observation]

Thought 1: "2026년 대한민국 최저임금을 알아야 한다."

Action 1: Search["2026년 대한민국 최저임금"]
Observation 1: "2026년 최저임금은 시간당 10,030원 (고용노동부, 2025.07 고시)"

Thought 2: "월 기준으로 환산하면 주 40시간 기준 209시간 적용해야 한다."

Action 2: Calculate[10030 × 209]
Observation 2: "2,096,270원"

Thought 3: "답을 출력할 준비가 됐다."

Final Answer: "2026년 대한민국 최저임금은 시간당 10,030원, 
월급으로 환산하면 약 2,096,270원입니다."
```

---

## 2. 순수 CoT vs ReAct 비교

| 구분 | 순수 Chain-of-Thought | ReAct |
|------|---------------------|-------|
| **정보 소스** | 모델 내재 지식만 | 외부 도구(검색·DB·계산기 등) 활용 |
| **실시간 정보** | ❌ (학습 시점 이후 모름) | ✅ (실시간 검색 가능) |
| **수치 계산** | 오류 가능 (환각) | ✅ 계산기 호출 |
| **정확도 한계** | 지식 컷오프 | 도구 품질에 의존 |
| **환각 위험** | 높음 (모르면 지어냄) | 낮음 (모르면 검색으로 확인) |

---

## 3. ReAct의 활용 도구 유형

| 도구 유형 | 예시 | 역할 |
|---------|------|------|
| **웹 검색** | Google Search, Bing | 최신 정보 조회 |
| **계산기** | Python 코드 실행 | 정확한 수치 계산 |
| **코드 실행** | Code Interpreter | 데이터 분석·시각화 |
| **지식 그래프 조회** | SPARQL, Cypher | 사실 검증·다중 홉 검색 |
| **API 호출** | 날씨·주가·스케줄 API | 실시간 데이터 |
| **데이터베이스** | SQL 쿼리 | 구조화 데이터 검색 |

---

## 4. GraphRAG + ReAct 통합 패턴

```
[질의] "AI 연구소 X의 최근 논문과 연구 방향은?"

Thought: "X 연구소 최신 논문을 검색하고 KG에서 연구 방향을 찾자"

Action 1: Search["AI 연구소 X 2025 논문"]
Observation 1: [최신 논문 목록 반환]

Action 2: GraphRAG_Query["X 연구소의 연구 분야 및 핵심 인물"]
Observation 2: [지식 그래프에서 연구 주제·연구자 네트워크 반환]

Thought: "두 정보를 결합하면 종합적인 분석이 가능하다."

Final Answer: [최신 논문 + KG 구조적 정보 통합 응답]
```

---

## 5. 성능 수치

| 벤치마크 | CoT | ReAct | 향상 |
|---------|-----|-------|------|
| **HotpotQA** (다중 홉 QA) | 29.4% | **35.1%** | +5.7%p |
| **FEVER** (사실 검증) | 67.2% | **80.0%** | +12.8%p |
| **ALFWorld** (텍스트 게임) | 0% (실패) | **71%** | — |

---

🔗 Knowledge Connections

- **Related Topics:** [[Chain-of-Thought (CoT, 사고 사슬)|Chain-of-Thought (CoT, 사고 사슬)]], [[GraphRAG (그래프 기반 검색 증강 생성)|GraphRAG (그래프 기반 검색 증강 생성)]], [[RAG (검색 증강 생성)|RAG (검색 증강 생성)]], [[Multi-Hop Reasoning (다중 홉 추론)|Multi-Hop Reasoning (다중 홉 추론)]], [[SPARQL (RDF 그래프 질의 언어)|SPARQL (RDF 그래프 질의 언어)]], [[LLM Hallucination (언어 모델 환각)|LLM Hallucination (언어 모델 환각)]], [[AI 에이전트 (AI Agent)|AI 에이전트 (AI Agent)]]
- **Projects/Contexts:** AI 추론 시스템
- **Contradictions/Notes:**
  - ReAct는 도구 호출 오류 시 루프에서 벗어나지 못할 위험 → 최대 반복 횟수(Max Steps) 제한 필요.
  - 도구 결과를 모델이 오해하거나 잘못 해석할 경우 오답 더 강화 위험 → 도구 결과 검증 레이어 병행 권장.
  - **신규 키워드**: `AI 에이전트 (AI Agent)`, `Tool Use (도구 사용)`, `함수 호출 (Function Calling)` → 탐색 큐 추가.
