这两个概念是大语言模型(LLM)推理能力演进中的关键范式,有继承关系但定位不同。
🔗 链式思考(Chain-of-Thought, CoT)
定义
让模型用自然语言显式生成中间推理步骤,再得出最终答案的提示技术。
核心思想:模拟人类“边想边写”的解题过程,将复杂问题拆解为可验证的子步骤。
核心流程
graph LR
A[提出问题] --> B[识别关键信息]
B --> C["检索相关知识/规则"]
C --> D[执行第一步推理]
D --> E[生成中间结果]
E --> F{"是否需要更多步骤?"}
F -- 是 --> G[执行下一步推理]
G --> E
F -- 否 --> H[整合所有中间结果]
H --> I[得出最终答案]
关键变体
| 类型 | 特点 | 示例 |
|---|---|---|
| Zero-Shot CoT | 无需示例,仅加提示词 | 如“请逐步思考并回答” |
| Few-Shot CoT | 提供含推理步骤的示例引导模型 | 更稳定,但需精心设计示例:请按照以下格式回答:【思考过程】1. 首先:... 2. 然后:...4. 最后:...【最终答案】... |
🌰 举个例子
提问:如果一个苹果5元,买3个苹果需要多少钱?
思考过程:
1. 一个苹果5元
2. 买3个苹果
3. 5 × 3 = 15元
→ 这正是 CoT 的典型输出:结构化推理链 + 最终答案。
✅ 价值
- 提升数学/逻辑类任务准确率(Google 2022论文验证)
- 增强结果可解释性(人类可追溯错误步骤)
- 降低幻觉(步骤约束减少胡编)
🤖 ReAct(Reasoning + Acting)
定义
CoT 的增强框架(Yao et al., 2022),在推理中动态调用外部工具(搜索、计算器、API等),形成“思考→行动→观察→再思考”的闭环。
核心流程
flowchart LR
A[用户问题] --> B{"推理<br>(Reason)"}
B -->|需外部信息| C["行动<br>(Act)<br>调用工具"]
C --> D["观察结果<br>(Observe)"]
D --> B
B -->|信息充分| E[生成最终答案]
🌰 对比示例
| 问题 | CoT 回答(仅内部推理) | ReAct 回答(含工具调用) |
|---|---|---|
| “巴黎现在几点?” | ❌ 可能编造(模型无实时知识) | 1. 思考:需查实时时间 2. 行动:调用天气API 3. 观察:API返回"15:30" 4. 思考:结合时区计算 → 输出正确时间 |
✅ 价值
- 突破模型知识边界(接入实时数据/专业工具)
- 减少事实性错误(用工具验证关键信息)
- 支撑复杂任务(如“订机票+查天气+规划行程”)
🌟 总结
| 维度 | Chain-of-Thought (CoT) | ReAct |
|---|---|---|
| 核心能力 | 纯文本推理(内部知识) | 推理 + 工具交互(外部知识) |
| 输出内容 | 思考步骤 + 答案 | 思考 → 行动指令 → 工具结果校对 → 新思考 → 答案 |
| 适用场景 | 数学题、逻辑题(知识封闭) | 需实时数据、API调用、多步骤操作(知识开放) |
| 优势 | 提升数学/逻辑类任务准确率 | 突破模型能力边界 |