为什么需要 Tree of Thoughts
Chain of Thought(CoT)让模型"说出推理过程",本质是单向线性推理:一步接一步往下走。但现实中的难题往往是这样的:
- 24 点游戏:选错第一个运算符,后面全盘皆输
- 创意写作:开头定了基调,结局就被锁死
- 战略决策:每一步都有多个分支,需要权衡而非顺推
Tree of Thoughts(Yao et al., 2023)把推理从"一条线"升级为"一棵树":模型可以同时探索多条思路、自我评估、回溯重来,更接近人类专家解决复杂问题的方式。
CoT vs ToT 对比
| 维度 | Chain of Thought | Tree of Thoughts |
|---|---|---|
| 推理结构 | 单链 | 树形 |
| 路径数量 | 1 条 | 多条并行 |
| 自我评估 | 无 | 有(每步打分) |
| 回溯能力 | 无 | 有(走入死胡同可回退) |
| 适用任务 | 数学计算、逻辑推导 | 创意发散、博弈决策、组合优化 |
| Token 消耗 | 低 | 高(3-5 倍) |
四步核心流程
1. 思维拆解(Decomposition)
把问题拆成可独立推进的子决策
2. 思维生成(Generation)
每个节点产出 k 条候选思路(k 通常取 3-5)
3. 评估打分(Evaluation)
模型自评或他评,给出数值分数或排序
4. 搜索决策(Search)
用 BFS / DFS 遍历思维树,必要时回溯剪枝
实战模板:用 ToT 解决"产品命名"问题
假设要给一款面向中老年用户的智能药盒起名,普通 CoT 可能直接给 5 个名字就结束。用 ToT 模板则可以这样推进:
决策点 1:定位主张
思路 A:强调"安全"(按时服药不出错)
思路 B:强调"陪伴"(家人般提醒)
思路 C:强调"智能"(AI 识药)
→ 评分:A=8 / B=9 / C=6,选 B
决策点 2:情感调性
思路 A:温馨(家、暖、伴)
思路 B:科技(智、芯、云)
思路 C:传统(康、寿、安)
→ 评分:A=9 / B=5 / C=7,选 A
决策点 3:命名候选
沿 B+A 路径生成:药伴、暖药盒、家用药盒·伴、伴药时光...
可以看到,ToT 的好处不是"想得更深",而是显式记录思考路径,方便后续调试和迭代。
三类典型适用场景
- 组合优化类:行程规划、菜单设计、资源分配
- 创意发散类:命名、Slogan、剧本走向
- 博弈决策类:谈判策略、产品设计取舍、技术方案选型
常见误区
- 误区 1:所有问题都套 ToT。简单计算或事实问答用 CoT 即可,ToT 会浪费 3-5 倍 Token。
- 误区 2:分支数 k 越大越好。k 超过 5 会让模型自我评分失焦,建议 k=3 起步。
- 误区 3:评估维度太泛。评估必须与最终目标对齐(如"创意任务"别用"可行性"打头)。
- 误区 4:不写回溯逻辑。没有回溯的 ToT 退化为"多次 CoT",丧失核心价值。
进阶技巧
- 多模型分工:用一个模型生成思路、另一个模型评分,避免"自吹自擂"
- 结合 Self-Consistency:对最终答案再用 SC 采样 5 次取多数
- 限定搜索深度:复杂问题设定最大深度(如 4 层),防止无限发散
小结
Tree of Thoughts 不是 CoT 的替代品,而是复杂任务的加强版。当你发现模型在多步骤决策中"前一步选错、后一步全错"时,就是把 ToT 请出场的时候。把上面的 Prompt 模板直接复制到 Claude 或 GPT-4 中,把 {在此填入你的问题} 替换为你的实际问题,即可体验从"线性推理"到"搜索式推理"的跃迁。