提示词工程进阶:从 Chain-of-Thought 到 Tree-of-Thought

作者:Maurice | 灵阙学院

提示词工程的三个阶段

阶段一:直接提示(2022 前)

直接向模型提问,依赖模型的"直觉":

Q: 小明有 15 个苹果,给了小红 7 个,又买了 3 个,现在有几个?
A: 11 个

问题:对于稍复杂的推理任务,直接提示的准确率显著下降。

阶段二:引导式推理(2022-2024)

通过提示词引导模型逐步推理:

  • Chain-of-Thought(思维链)
  • Few-shot CoT(少样本思维链)
  • Zero-shot CoT("Let's think step by step")

阶段三:结构化搜索(2024-)

将推理过程组织为树/图结构,系统化地探索解空间:

  • Tree-of-Thought(思维树)
  • Graph-of-Thought(思维图)
  • Self-Consistency(自一致性)

Chain-of-Thought(思维链)

核心思想

Google Brain 在 2022 年提出 CoT:让模型在给出最终答案之前,显式输出中间推理步骤。

三种用法

Zero-shot CoT(最简单):

Q: [问题]
A: Let's think step by step.
(或中文:让我们一步一步地思考。)

Few-shot CoT(更可控):

Q: 一家餐厅有 23 个座位,其中 8 个已被占用。接下来又来了 5 个人,还剩几个空位?
A: 起初有 23 个座位。已被占用 8 个,所以空位是 23 - 8 = 15 个。
   又来了 5 个人,所以空位变为 15 - 5 = 10 个。
   答案是 10 个空位。

Q: [新问题]
A: [模型会模仿示例的推理格式]

Self-Ask CoT(分治策略):

Q: 马斯克创办的公司中,哪家公司最先达到 1000 亿美元市值?
Follow up: 马斯克创办了哪些公司?
Intermediate answer: SpaceX、Tesla、Neuralink、xAI 等。
Follow up: 这些公司分别何时达到 1000 亿美元市值?
Intermediate answer: Tesla 于 2020 年 6 月首次达到 1000 亿美元市值。SpaceX 于 2024 年达到...
So the final answer is: Tesla

CoT 的局限

  1. 路径依赖:一旦早期步骤出错,后续推理全部偏移
  2. 单线程:只探索一条推理路径,可能错过更优解
  3. 不可回溯:无法在中间步骤回退重来
  4. 长度爆炸:复杂问题的推理链可能非常长

Tree-of-Thought(思维树)

核心改进

ToT 由 Princeton 和 Google DeepMind 于 2023 年提出,将 CoT 的线性推理升级为树状搜索:

CoT(线性):
State_0 → State_1 → State_2 → State_3 → Answer

ToT(树状):
                    ┌→ State_1a → State_2a → Answer_a (score: 0.8)
State_0 → Branch ──┤
                    ├→ State_1b → State_2b → Answer_b (score: 0.3)
                    │              ↑ 剪枝
                    └→ State_1c → State_2c → Answer_c (score: 0.9) ← 最优

三个关键组件

1. 思维生成器(Thought Generator)

在每个节点生成多个可能的下一步:

当前状态:公司去年收入 1000 万,增长率 20%
生成候选思路:
- 思路A:按复合增长率计算未来 3 年收入
- 思路B:考虑市场饱和的增长率递减模型
- 思路C:对标同行业公司调整增长假设

2. 状态评估器(State Evaluator)

评估每个中间状态的"前景":

# 评估策略:让 LLM 评分
prompt = f"""
评估以下推理步骤的质量(1-10分):
问题:{question}
当前推理:{current_reasoning}
请从以下维度评分:
1. 逻辑正确性
2. 与问题的相关性
3. 是否接近最终答案
总分:
"""

3. 搜索算法(Search Algorithm)

  • BFS(广度优先):逐层展开,适合浅搜索
  • DFS(深度优先):深入一条路径,适合深搜索
  • Beam Search:保留 Top-K 分支,平衡广度和深度

适用场景

ToT 在以下场景显著优于 CoT:

  1. 创意任务:写诗、编剧(需要探索多种表达)
  2. 规划问题:旅行规划、项目排期(需要评估多种方案)
  3. 数学推理:复杂数学题(需要尝试不同解题路径)
  4. 博弈推理:需要考虑对手策略的场景

代价

  • 成本高:每个节点需要多次 LLM 调用(生成 + 评估)
  • 延迟高:搜索过程比单次生成慢 5-20 倍
  • 工程复杂:需要实现搜索逻辑和状态管理

Graph-of-Thought(思维图)

超越树结构

GoT 将推理组织为有向图(DAG),允许:

  • 聚合:多个推理路径合并为一个结论
  • 细化:对某个中间结果做进一步改进
  • 循环:在不满足质量要求时回到之前的节点
        ┌→ Thought_A ──┐
Start ──┤              ├→ Merge → Refine → Answer
        └→ Thought_B ──┘    ↑
               │             │
               └── Loop ─────┘(若质量不够)

与 ToT 的区别

维度 ToT GoT
结构 树(无环) 有向无环图(DAG)
聚合 不支持 支持多路合并
细化 不支持 支持迭代改进
适用 探索型任务 综合型任务

Self-Consistency(自一致性)

核心思想

对同一个问题,多次使用 CoT 生成不同的推理路径,然后投票选出最一致的答案。

Run 1: 15 - 7 + 3 = 11 → 答案: 11
Run 2: 15 - 7 = 8, 8 + 3 = 11 → 答案: 11
Run 3: 15 + 3 = 18, 18 - 7 = 11 → 答案: 11
Run 4: 15 - 7 + 3 = 11 → 答案: 11
Run 5: 15 + 3 - 7 = 11 → 答案: 11

投票结果: 11 (5/5) → 最终答案: 11

参数选择

  • 采样次数(n):通常 5-20 次,更多不一定更好
  • 温度(temperature):0.5-0.8,需要一定随机性来产生不同路径
  • 投票策略:简单多数 or 加权投票(置信度高的路径权重更大)

与 ToT 的互补

  • Self-Consistency 适合有明确答案的问题(数学、事实)
  • ToT 适合开放性问题(规划、创意)
  • 可以组合使用:ToT 生成候选 + Self-Consistency 选最优

推理模型时代的提示词工程

OpenAI o1/o3 和 Claude Extended Thinking

推理模型(Reasoning Models)在模型内部实现了类似 ToT 的搜索:

  • 模型自动进行多步推理
  • 不需要用户在提示词中写"让我们一步一步思考"
  • 思考过程可能被隐藏(o1)或显示(Claude Extended Thinking)

新的提示词最佳实践

对于推理模型,提示词工程的重点从"如何让模型思考"变为"如何让模型理解需求":

  1. 清晰的目标:明确最终输出的格式和内容要求
  2. 完整的约束:列出所有必须满足的条件
  3. 相关上下文:提供解决问题所需的所有背景信息
  4. 少用模板:不要过度约束推理路径,让模型自主探索
旧方式(引导推理):
请一步步分析以下合同的合规风险:
Step 1: 识别合同类型
Step 2: 列出适用法规
Step 3: 逐条检查合规性
Step 4: 输出风险清单

新方式(定义目标):
请分析以下合同的合规风险。要求:
- 覆盖《合同法》《税法》《数据安全法》相关条款
- 风险按严重程度排序(高/中/低)
- 每个风险附带修改建议和法规引用
- 输出格式:JSON,含 risk_id, severity, description, regulation, suggestion

实践决策树

选择哪种提示策略:

任务是否需要推理?
├── 否 → 直接提示
└── 是 → 使用推理模型?
    ├── 是 → 定义清晰目标 + 约束(让模型自主推理)
    └── 否 → 任务复杂度?
        ├── 低(1-3步)→ Zero-shot CoT
        ├── 中(3-8步)→ Few-shot CoT + Self-Consistency
        └── 高(>8步/多路径)→ ToT 或 GoT

Maurice | maurice_wen@proton.me