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 → 评估CToT 与 CoT 的区别
| 维度 | Chain of Thought | Tree 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 模板
我需要 [决策内容]。
项目背景:
- [背景信息1]
- [背景信息2]
- [关键约束]
请给出 [数量] 种不同的方案,对每种方案分析:
1. [评估维度1]
2. [评估维度2]
3. [评估维度3]
4. [评估维度4]
最后,根据我的项目情况,推荐最适合的方案并说明理由。简化版 ToT 模板
我想 [实现目标]。
背景:[简要背景]
请给出 2-3 种不同的思路,简要对比优缺点后推荐一种。技术选型专用模板
我需要选择 [选型类型:数据库/框架/第三方服务]。
项目情况:
- 规模:[用户量/数据量]
- 技术栈:[现有技术]
- 部署方式:[部署环境]
- 团队情况:[技术水平/人数]
评估维度:
- 实现复杂度
- 性能表现
- 维护成本
- 社区生态
请对比 [候选方案列表],推荐最适合的选择。本节要点
✓ ToT 的本质:探索多条路径,对比后选择最优方案
✓ 与 CoT 的区别:CoT 是单路径推理,ToT 是多方案对比
✓ 适用场景:技术选型、架构决策、方案对比(约占 5%)
✓ 简化版:日常快速使用「给出 2-3 种思路,对比后推荐」
✓ 不要滥用:如果已有方向,直接执行即可
下一节,我们学习如何让 AI 自我检查——Self-Critique。
