理解 链式思考(Chain of Thought)和 ReAct (Reasoning + Acting)

2 阅读2分钟

这两个概念是大语言模型(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调用、多步骤操作(知识开放)
优势提升数学/逻辑类任务准确率突破模型能力边界