📖 定义
Tree-of-Thought (ToT)是Chain-of-Thought的泛化形式。不同于CoT沿单一路径线性推理,ToT同时探索多个推理分支,评估每个分支的价值,然后选择最有希望的方向继续深入。
来源:Yao et al., "Tree of Thoughts: Deliberate Problem Solving with Large Language Models", NeurIPS 2023
🌳 通俗比喻
CoT就像走迷宫只能往一条路走到底——走到死胡同才发现错了,只能从头再来。
ToT呢?像下棋。你不会只算一条线,而是:"如果走这步,对方可能怎么应?如果走那步呢?"同时考虑多种可能性,选胜率最高的那招。
就像王家卫电影里的台词:"每一步都是选择,而我选择了所有可能。"——ToT就是这么贪心,它要走完所有可能的分岔路口,再决定哪条路通向罗马。
ToT呢?像下棋。你不会只算一条线,而是:"如果走这步,对方可能怎么应?如果走那步呢?"同时考虑多种可能性,选胜率最高的那招。
就像王家卫电影里的台词:"每一步都是选择,而我选择了所有可能。"——ToT就是这么贪心,它要走完所有可能的分岔路口,再决定哪条路通向罗马。
⚙️ 树形结构示意
[问题]
│
┌──────────────┼──────────────┐
▼ ▼ ▼
[思路A] [思路B] [思路C]
评分:7 评分:9 评分:4
│ │
┌────┴────┐ ┌────┴────┐
▼ ▼ ▼ ▼
[A1] [A2] [B1] [B2]
评分:6 评分:8 评分:9 评分:7
│
▼
[✓ 最优解]
核心操作:
- 生成:为当前节点生成多个可能的下一步思路
- 评估:对每个思路进行评分(值函数)
- 搜索:选择评分最高的分支继续探索(BFS/DFS)
- 回溯:当前路径走不通时,返回上一层选择其他分支
🎯 OpenClaw实战应用
ToT适合需要创造性解决方案的问题,如数学证明、创意写作、代码设计等:
# OpenClaw Tree-of-Thought Skill 示例
name: tot_problem_solver
description: 使用思维树解决复杂问题
parameters:
max_depth: 4
beam_width: 3 # 每层保留top-3分支
steps:
- name: generate_thoughts
action: llm
prompt: |
对于问题:{{problem}}
请生成{{beam_width}}种不同的解决思路。
每个思路应该是独立的分析角度。
- name: evaluate_thoughts
action: llm
prompt: |
对以下解决思路评分(1-10):
{{#each thoughts}}
思路{{@index}}: {{this}}
{{/each}}
评分标准:可行性、完整性、创新性
- name: expand_best_thoughts
action: conditional
condition: "{{depth}} < {{max_depth}}"
on_true:
- name: expand
action: llm
prompt: |
针对评分最高的思路,继续深入展开...
- name: final_answer
action: llm
prompt: |
综合所有探索过的路径,给出最终解答。
📊 CoT vs ToT vs GoT 对比
Chain-of-Thought
- 单路径线性推理
- 低Token消耗
- 适合确定性任务
- 无回溯能力
Tree-of-Thought
- 多分支并行探索
- 中等Token消耗
- 适合多解问题
- 支持回溯
Graph-of-Thought
- DAG结构推理
- 高Token消耗
- 适合复杂依赖
- 子结果可复用
✅ 适用场景
- 数学证明:尝试多条证明路径,寻找最简洁方案
- 创意写作:探索多个故事走向,选择最精彩版本
- 代码架构设计:比较多种设计方案,择优实现
- 游戏策略:棋类、策略游戏的多步推演
- 复杂决策:商业决策、风险评估的多情景分析
🔗 相关术语
📚 延伸阅读
- 原论文:Tree of Thoughts: Deliberate Problem Solving with LLMs
- Graph-of-Thought:Besta et al. 2023
- LangGraph ToT实现参考