Tree of Thought

prompt提示词2026年6月7日2

Tree-of-Thought(ToT,Yao et al., 2023;也常被称为 Tree of Thoughts)的核心是:把“解题过程”从一条线性的思维链(CoT)变成一棵可搜索的树。

  • CoT:通常只生成“一条”推理路径,走错了就容易一路错下去。
  • ToT:每一步不是只想一个下一步,而是同时生成多个候选“想法/步骤(thoughts)”,然后评估每个候选的质量,选择最有希望的分支继续扩展,反复迭代,直到找到满意解。

这让 ToT 特别适合 需要搜索与规划 的任务:例如谜题、组合优化、写作大纲、复杂决策、多方案权衡、路线规划、代码修复(多种修复方案)等。


1) ToT 的基本流程(把它当“分支 + 打分 + 继续搜索”)

一个典型 ToT 循环包含 4 件事:

  1. 定义状态(state):当前已经得到的部分解/当前进度
  2. 生成多个候选 thoughts:从当前状态往前走 3~5 个不同的下一步
  3. 评估 thoughts:用一个“评估提示词”给每个候选打分/分类(可行、部分可行、不可行)
  4. 选择并扩展:选 top-k 个继续生成下一层 thoughts(形成树)

工程上常见两种搜索策略:

  • BFS/束搜索(beam search):每层保留评分最高的 k 个分支
  • DFS/回溯:沿一个分支走到底,不行就回退换分支

2) ToT 提示词怎么写:至少需要“两类 Prompt”

ToT 往往不是一个提示词就完事,而是一个“脚本化流程”,至少包括:

  1. 生成器 Prompt(Generator):产生多个候选步骤/想法
  2. 评估器 Prompt(Evaluator):评价这些候选哪几个值得继续

如果你没有工具编排(比如你只是在聊天窗口里),也可以用“单次提示词模拟 ToT”:让模型在一次输出里完成“多分支 + 评估 + 选择 + 继续扩展”。但工程上更常见的是多轮调用。


3) 可复制的 ToT 提示词模板(中文)

模板A:单次输出模拟 ToT(初学者易用)

你将使用“树状思考(Tree-of-Thought)”来解决问题。

要求:
1) 先给出 3 个不同的候选思路/下一步(记为 Thought A/B/C),每个用 1-3 句话说明。
2) 然后用明确标准对每个 Thought 进行评估(可行性/是否接近目标/风险),并给出 0-10 分。
3) 选择得分最高的一个 Thought 继续展开:再生成下一层 2-3 个子 Thought,并再次评估与选择。
4) 重复上述“生成-评估-选择”至少 2 轮。
5) 最后输出最终方案/答案,并简要说明为什么选择这条路径。

问题:{在此粘贴问题}

模板B:更工程化(生成器 + 评估器分离)

生成器 Prompt

你是候选步骤生成器。给定【问题】和【当前状态】,
请生成 {n} 个不同的下一步(thought),每个 thought 必须是可执行的具体动作或推理步骤。
输出格式:
- Thought 1: ...
- Thought 2: ...
...
【问题】:{problem}
【当前状态】:{state}

评估器 Prompt

你是评估器。给定【问题】【当前状态】和若干候选 thoughts,
请对每个 thought 评分(0-10)并给出一句理由。
评分标准:是否推进目标、是否可行、是否引入矛盾/遗漏约束。
最后选出 top-{k} 个最值得继续扩展的 thought 编号。

【问题】:{problem}
【当前状态】:{state}
【候选 thoughts】:
{thoughts}

4) 实际例子:用 ToT 做“规划类任务”(旅行规划)

问题:
“我在上海,周末两天想带父母轻松游玩:人少、步行少、吃得清淡。预算 1500 元内。请给出行程。”

用 ToT 的价值:这不是一个“唯一正确答案”,而是要在约束下搜索更优解(人少/步行少/清淡/预算)。

示例提示词(用模板A)

你将使用树状思考(Tree-of-Thought)来做规划。

约束:
- 两天周末
- 人少、步行少
- 饮食清淡
- 预算≤1500
- 需要包含:交通建议、用餐建议、每半天安排一个主要活动

按“生成3个Thought→评估→选择→再生成下一层→评估→选择”至少两轮,最后给出最终行程。

问题:我在上海,周末两天想带父母轻松游玩:人少、步行少、吃得清淡。预算1500元内。请给出行程。

模型的 ToT 风格输出通常会像:

  • 第一层 Thought:
    A 走“郊区自然+温泉”;B 走“市内博物馆+江边轻松”;C 走“古镇+茶馆”
  • 评估:根据人流、步行量、交通折腾程度、饮食可控性打分
  • 选择最高分(比如 B)继续细化到第二层(具体地点组合)
  • 再评估选最优组合,最后形成完整行程

这就是 ToT:先发散,再收敛。


5) 再举一个更“搜索味”的例子:谜题/组合(适合 ToT)

任务:
“给定 4 个数字 1、3、4、6,用加减乘除和括号得到 24。”

CoT 可能一条路走到黑;ToT 会:

  • 第一层生成 3-5 种组合法方向(先乘、先除、先括号等)
  • 评估哪种更接近 24(比如中间结果是否能到 24 或其因子)
  • 继续扩展最有希望的分支,直到找到表达式

你可以用模板A直接让模型“多分支搜索”,通常成功率更高。


6) 什么时候 ToT 特别有效(你引用的“search & planning”)

ToT 最擅长的场景特征:

  • 路径很多:有大量可能步骤/方案(写作结构、产品方案、排程)
  • 容易走错:单一路径容易陷入死胡同(谜题、推理、调参)
  • 需要权衡:多个目标与约束(成本/质量/风险/时间)
  • 需要探索:先发散创意再收敛选择(营销创意、故事大纲)

7) 初学者落地建议(简单但很关键)

  1. 控制分支数:每层 3 个 thoughts 通常足够;太多会冗长。
  2. 明确评估标准:不然“评分”会很主观、不可复现。
  3. 保留 top-2:很多任务保留一个备选分支能显著提升成功率。
  4. 加停止条件:例如“达到可执行方案/满足约束/找到精确答案就停止”。

如果你给我一个你正在做的具体任务(比如“写一份商业计划书大纲”“一道逻辑题”“一个代码 bug 怎么修”),我可以用 ToT 给你定制:

  • 分支数量 n、保留 k
  • 评估标准表
  • 以及一套可直接复制的生成器/评估器 Prompt。你想用 ToT 解决什么问题?