Skip to content

3.3.4 Tree of Thoughts:探索多条推理路径

定位说明:这是一个可选的高级技巧。日常 Vibe Coding 中,大部分场景用 Zero-shot、Few-shot、CoT 已经足够。Tree of Thoughts 主要用于技术选型、架构决策等需要对比多个方案的场景,约占日常工作的 5%。如果你刚入门,可以先跳过本节,遇到需要时再回来查阅。

经过本节学习,你将掌握

  • Tree of Thoughts(ToT)的定义和适用场景
  • ToT 与 Chain of Thought 的区别
  • 完整版和简化版 ToT 的使用方法
  • 什么时候需要 ToT,什么时候不需要

什么是 Tree of Thoughts

Tree of Thoughts(思维树,简称 ToT)的核心思想是:让 AI 探索多条可能的路径,对比后选择最优方案

如果把 Chain of Thought 比作「一条路走到底」,那 Tree of Thoughts 就是「先看看有哪几条路,比较一下再决定走哪条」。

Chain of Thought(线性):
问题 → 步骤1 → 步骤2 → 步骤3 → 答案

Tree of Thoughts(树状):
问题 → 方案A → 评估A
     → 方案B → 评估B  → 对比 → 推荐最优
     → 方案C → 评估C

ToT 与 CoT 的区别

维度Chain of ThoughtTree of Thoughts
推理路径单一路径多条并行路径
适用场景有标准答案的问题需要权衡对比的决策
输出形式分步推导到结论多方案对比后推荐
Token 消耗中等较高
日常使用频率高(约 30%)低(约 5%)

选择建议

  • 如果问题有「正确答案」→ 用 CoT
  • 如果需要「选择最优方案」→ 用 ToT

核心适用场景

ToT 最适合以下场景:

1. 技术选型

选择数据库、框架、第三方服务等。

2. 架构决策

设计系统架构、API 风格、数据模型等。

3. 方案对比

多种实现方式的优劣分析。

4. 复杂问题分解

需要从多个角度切入的问题。

差提示词 vs 好提示词

场景:为待办清单选择数据存储方案

❌ 差提示词

我的待办清单应用应该用什么方式存储数据?

问题:AI 可能只推荐一种方案,没有对比分析。

✅ 好提示词(使用 ToT)

我正在做一个个人待办清单应用,需要选择数据存储方案。

项目背景:
- 用户量:仅自己使用
- 数据量:预计几百条任务
- 部署方式:静态网页托管(如 Vercel)
- 技术栈:React + TypeScript

请给出 3 种不同的存储方案,对每种方案分析:
1. 实现复杂度(1-5分,5分最复杂)
2. 数据持久性
3. 是否需要后端
4. 适合的场景

最后,根据我的项目情况,推荐最适合的方案并说明理由。

好提示词的 AI 输出

## 方案分析

### 方案一:localStorage
- 实现复杂度:1分
- 数据持久性:仅本地浏览器,换设备丢失
- 是否需要后端:不需要
- 适合场景:个人工具、原型验证

### 方案二:IndexedDB
- 实现复杂度:3分
- 数据持久性:本地浏览器,支持更大数据量
- 是否需要后端:不需要
- 适合场景:需要存储大量结构化数据的本地应用

### 方案三:Supabase(云数据库)
- 实现复杂度:3分
- 数据持久性:云端存储,多设备同步
- 是否需要后端:不需要(BaaS 服务)
- 适合场景:需要多设备同步、有扩展计划

## 推荐方案

根据你的情况(仅自己使用、几百条数据、静态托管),推荐 **方案一:localStorage**。

理由:
1. 实现最简单,几行代码即可
2. 数据量小,localStorage 完全够用
3. 不需要额外服务,符合静态托管要求
4. 作为 MVP 快速验证,之后有需要再升级

如果后续需要多设备同步,可以再迁移到 Supabase。

实战示例:登录功能方案选型

小李的待办清单需要添加登录功能,他想对比几种实现方式。

ToT 提示词

我的待办清单应用需要添加用户登录功能。

项目背景:
- 个人项目,用户量预计 < 100 人
- 技术栈:Next.js + TypeScript
- 部署在 Vercel
- 希望实现尽量简单

请分析以下三种登录方案:
1. 传统用户名密码登录
2. 手机验证码登录
3. 第三方 OAuth 登录(如 GitHub、Google)

对每种方案分析:
- 实现复杂度
- 用户体验
- 安全性
- 维护成本

最后推荐一种,并说明理由。

AI 输出要点

AI 会分析三种方案的优劣,并根据「个人项目、用户量小、希望简单」的背景,推荐最适合的方案(可能是第三方 OAuth,因为不用自己管理密码)。

简化版 ToT:日常快速使用

如果不需要完整的多方案对比,可以用简化版:

请给出 2-3 种不同的实现思路,简要对比优缺点后推荐一种。

这种方式输出更简洁,适合日常快速决策。

简化版示例

我想实现任务的拖拽排序功能,请给出 2-3 种实现思路,简要对比后推荐一种。
技术栈:React + TypeScript

简化版输出

三种实现思路:

1. react-beautiful-dnd
   优点:功能完善,动画流畅
   缺点:包体积大,已停止维护

2. @dnd-kit
   优点:现代化设计,体积小,维护活跃
   缺点:学习曲线稍陡

3. 原生 HTML5 Drag API
   优点:无依赖
   缺点:需要大量代码,动画效果需自己实现

推荐:@dnd-kit
理由:现代化、轻量、社区活跃,适合长期维护的项目。

什么时候不需要 ToT

场景用 ToT?原因
实现一个具体功能直接写代码即可
修复一个 Bug用 CoT 逐步排查
格式化输出用 Few-shot
技术选型需要对比多个选项
架构设计需要权衡多种方案

判断标准:如果你心里已经有了大致方向,只是想确认,不需要 ToT。如果你需要 AI 帮你「做选择」,用 ToT。

可复制模板

完整版 ToT 模板

markdown
我需要 [决策内容]。

项目背景:
- [背景信息1]
- [背景信息2]
- [关键约束]

请给出 [数量] 种不同的方案,对每种方案分析:
1. [评估维度1]
2. [评估维度2]
3. [评估维度3]
4. [评估维度4]

最后,根据我的项目情况,推荐最适合的方案并说明理由。

简化版 ToT 模板

markdown
我想 [实现目标]。
背景:[简要背景]

请给出 2-3 种不同的思路,简要对比优缺点后推荐一种。

技术选型专用模板

markdown
我需要选择 [选型类型:数据库/框架/第三方服务]。

项目情况:
- 规模:[用户量/数据量]
- 技术栈:[现有技术]
- 部署方式:[部署环境]
- 团队情况:[技术水平/人数]

评估维度:
- 实现复杂度
- 性能表现
- 维护成本
- 社区生态

请对比 [候选方案列表],推荐最适合的选择。

本节要点

ToT 的本质:探索多条路径,对比后选择最优方案

与 CoT 的区别:CoT 是单路径推理,ToT 是多方案对比

适用场景:技术选型、架构决策、方案对比(约占 5%)

简化版:日常快速使用「给出 2-3 种思路,对比后推荐」

不要滥用:如果已有方向,直接执行即可

下一节,我们学习如何让 AI 自我检查——Self-Critique。