INFO · info-20251219-075
ReAct vs CoT:两种核心Prompt Engineering技术对比
[INFO] ReAct vs CoT:两种核心Prompt Engineering技术对比
- 时间: 2024-12-19
- 类型: 技术原理/方法对比
- 来源: Prompt Engineering研究
- 置信度: 10/10
- 标签: #ReAct #CoT #PromptEngineering #Agent #推理 #工具调用
核心区分
CoT(思维链):让模型一步一步地"想",最终得出答案。它是一个纯粹的"思考者"。
ReAct(推理+行动):让模型一边"想"一边"做"(使用工具),通过与环境互动来获取新信息。它是一个"思考者"兼"行动者"。
一、核心对比表
| 维度 | CoT (Chain-of-Thought) | ReAct (Reason + Act) |
|---|---|---|
| 核心思想 | 模拟纯推理过程,分解问题 | 将推理与行动结合 |
| 关键组件 | Thought(思考步骤) | Thought + Act + Observation |
| 工作流程 | 线性、封闭 | 循环、交互 |
| 信息源 | 仅依赖模型内部知识 | 内部知识 + 外部信息 |
二、关键组件详解
2.1 CoT 组件
输入 → 思考1 → 思考2 → ... → 思考N → 最终答案
单一组件:Thought(一系列推理步骤)
2.2 ReAct 组件
循环:思考 → 行动 → 观察 → 思考 → 行动 → 观察 → ... → 最终答案
| 组件 | 作用 |
|---|---|
| Thought(思考) | 决定下一步该做什么 |
| Act(行动) | 执行动作(如 Search, Calculate) |
| Observation(观察) | 环境对动作的反馈结果 |
三、优劣势对比
3.1 CoT 的优势
| 优势 | 说明 |
|---|---|
| 提升多步推理性能 | 数学题、逻辑推理效果显著 |
| 可解释性强 | 思路清晰,便于人类理解 |
| 实现简单 | 无需外部工具接口 |
3.2 CoT 的局限
| 局限 | 说明 |
|---|---|
| 知识截止日期 | 无法获取新信息 |
| 幻觉风险 | 可能基于过时/错误知识推理 |
| 无法验证 | 无法事实核查 |
3.3 ReAct 的优势
| 优势 | 说明 |
|---|---|
| 克服知识局限 | 获取事实性新知识 |
| 减少幻觉 | 通过外部验证减少错误 |
| 精确计算 | 调用计算器等工具 |
| 更接近人类 | 思考、查资料、再思考 |
3.4 ReAct 的成本
| 成本 | 说明 |
|---|---|
| 复杂度高 | 需要设计工具接口 |
| 延迟增加 | 外部调用增加响应时间 |
| 依赖外部 | 工具可用性影响结果 |
四、实例对比
问题:"现任英国首相是谁?他的妻子是谁?"(假设模型知识截止2023年初)
4.1 CoT 回答
思考1:我的知识截止日期是2023年初,那时英国首相是里希·苏纳克
思考2:里希·苏纳克的妻子是阿克沙塔·穆尔蒂
答案:英国首相是里希·苏纳克,妻子是阿克沙塔·穆尔蒂
问题:可能是过时的错误答案。
4.2 ReAct 回答
思考1:需要确认当前首相,我的知识可能不是最新的
行动1:Search("current UK Prime Minister")
观察1:[搜索结果:基尔·斯塔默,2024年7月当选]
思考2:现任首相是基尔·斯塔默,需要查找他的妻子
行动2:Search("Keir Starmer wife")
观察2:[搜索结果:维多利亚·斯塔默,NHS律师]
思考3:信息完整,可以回答
答案:现任首相是基尔·斯塔默,妻子是维多利亚·斯塔默
优势:通过行动获取最新信息,给出正确答案。
五、应用场景适配
5.1 适合 CoT 的场景
| 场景 | 原因 |
|---|---|
| 数学应用题 | 纯逻辑推理,无需外部信息 |
| 逻辑谜题 | 封闭域问题 |
| 常识问答 | 答案在模型知识库内 |
| 代码逻辑推理 | 分析已给定的代码 |
5.2 适合 ReAct 的场景
| 场景 | 原因 |
|---|---|
| 开放域问答 | 尤其涉及最新事件 |
| 工具使用任务 | 需要调用API(天气、计算等) |
| 事实核查 | 需要验证信息真实性 |
| 交互式决策 | 需要实时反馈 |
六、关系总结
6.1 层次关系
ReAct = CoT + Act + Observation
↓
ReAct是CoT的扩展和增强
6.2 互补而非替代
| 情况 | 选择 |
|---|---|
| 答案在内部知识库 + 主要依赖逻辑 | CoT(更简单高效) |
| 需要外部事实信息 | ReAct(必不可少) |
6.3 与AI Agent的关系
ReAct 是构建AI代理(Agent)的核心范式。
AI Agent = 自主执行"思考→行动→观察"循环的系统
七、核心公式
思维模式对比
CoT: Answer = f(Reasoning(Input))
ReAct: Answer = f(Reasoning(Input) + Actions(Tools) + Observations(World))
能力边界
CoT能力边界 = 模型内部知识 × 推理能力
ReAct能力边界 = (模型内部知识 + 外部工具能力) × 推理能力
与知识库的关联
与INFO-061的直接关联
INFO-061 讨论的 Claude Code Agentic Loop 正是 ReAct 的工程实现:
| ReAct概念 | Claude Code实现 |
|---|---|
| Thought | LLM推理环节 |
| Act | 工具调用(Read, Write, Bash等) |
| Observation | 工具返回结果 |
| 循环 | while(true) 直到任务完成 |
与INFO-054的呼应
INFO-054 的 PPLA循环(Perceive-Plan-Learn-Act)是 ReAct 在更高抽象层面的表达:
| ReAct | PPLA |
|---|---|
| Observation | Perceive(感知) |
| Thought | Plan(规划) |
| Act | Act(行动) |
| 多轮积累 | Learn(学习) |
与INFO-060的技术链
INFO-060 讨论的 Prompt Engineering 正是 CoT 和 ReAct 所属的技术领域:
Prompt Engineering
├── CoT(推理增强)
├── ReAct(推理+行动)
├── Few-shot(示例学习)
└── 结构化Prompt(格式规范)
与INFO-066的战略呼应
INFO-066 提出的 "AI驾驶舱" 概念:
- CoT = 自动驾驶的路径规划
- ReAct = 自动驾驶 + 实时感知 + 动态调整
- 人类 = 驾驶舱中的决策者,设定目标和边界
核心金句
CoT让模型学会了"思考",而ReAct让模型在思考的基础上学会了"动手"和"查资料"。
关联
- 相关: INFO-20251219-061(Claude Code / Agentic Loop)
- 相关: INFO-20251219-054(Option-Based Agent / PPLA循环)
- 相关: INFO-20251219-060(Prompt & Context Engineering)
- 相关: INFO-20251219-066(AI驾驶舱)
- 相关: INFO-20251219-073(Transformer数学框架/推理基础)
- 触发规则: -
- 待验证: 不同场景下CoT与ReAct的效率对比