第17章:Tree-of-Thoughts:让 Agent 拥有“奇异博士”的推演能力
如果说 CoT 是“摸着石头过河”,那么 ToT 就是“拥有卫星地图”。它不满足于找到一条路,而是遍历所有可能的路,然后选出那条所谓“唯一正确的路”。
我用一个架构师 Agent 帮客户设计支付系统。 任务很简单:设计一个高并发的扣款方案。
我让 Agent 用 CoT(思维链) 思考。它写得头头是道:
步骤 1:为了解耦,我们采用微服务架构。 步骤 2:为了数据隔离,每个服务使用独立数据库。 步骤 3:支付服务独立扣款,库存服务独立扣库存。 结论:方案完美。
客户照着做,上线就炸了。为什么?因为 分布式事务 没处理好,数据不一致了。 CoT 的致命缺陷在于:它是一条单行道。 在步骤 2 做出“独立数据库”这个决定时,它就埋下了雷,但因为它只会一条路走到黑,所以根本没机会反思“如果我不分库会怎样?”
后来,我换用了 ToT(思维树) 。它在步骤 2 停下来了,分出了三条岔路:
- 分支 A:独立数据库(评估:数据一致性难做,由 2PC 保证,风险高)
- 分支 B:共享数据库(评估:耦合度高,性能瓶颈,风险中)
- 分支 C:Redis 预扣 + 异步落库(评估:性能高,最终一致性,推荐)
最终,它避开了陷阱,选择了分支 C。这就是 Tree-of-Thoughts(思维树) 的威力。
01. 从“线性思维”到“多重宇宙”
人类在解决难题时,从来不是线性的。 想想你在下围棋,或者玩《文明6》时的状态:
- “如果我走这一步,对手可能会那样走,然后我再……”
- “不行,这条路是死局,我得退回来,试试另一种走法。”
这就叫 反事实思维(Counterfactual Thinking) —— 能够推演尚未发生的可能性。
- CoT (Chain-of-Thought) :是 线性 的。像一个莽撞的卒子,只管向前冲,撞了南墙也不回头。
- ToT (Tree-of-Thoughts) :是 树状 的。像拥有时间宝石的奇异博士,同时观测 1400 万种未来,然后找出那唯一的胜机。
02. ToT 的核心三板斧
要实现这种“多重宇宙”的推演,Agent 需要掌握三个核心动作:
动作一:发散(Propose)—— 寻找可能性
在每一个关键节点,不要急着做决定,而是先列出所有可能的选项。
- 场景:制定营销策略。
- CoT:直接写一个方案。
- ToT:生成 3 个不同方向的方案(激进型、保守型、病毒传播型)。
动作二:评估(Evaluate)—— 上帝视角打分
这是 ToT 最关键的一步。Agent 需要暂时跳出“执行者”的角色,变成“评论家”,给刚才生成的 3 个方案打分。
- 评分标准:可行性、成本、预期收益。
- 结果:激进型(0.4分),保守型(0.6分),病毒传播型(0.9分)。
动作三:剪枝(Prune)—— 放弃平庸
资源是有限的,我们不能把每条路都走到黑。对于那些得分很低的分支(比如激进型),直接 剪掉(Prune) ,不再浪费算力去推演它。只保留高分路径继续往下走。
03. 算法图解:如何在迷宫中导航?
在工程实现上,ToT 通常采用 BFS(广度优先搜索) 或 DFS(深度优先搜索) 算法。
广度优先搜索 (BFS)
策略:每一层都看全。
- 第一层:列出所有可能的架构模式(单体、微服务、Serverless)。
- 评估:Serverless 得分最高。
- 第二层:只针对 Serverless 方案,列出所有可能的数据库选型。 优点:稳,不容易漏掉全局最优解。
深度优先搜索 (DFS)
策略:一条路走到黑,撞墙再回头。
- 先假设选“单体”。
- 往下推演:开发快 -> 部署简单 -> 流量大了扛不住(撞墙) 。
- 回溯(Backtrack) :回到起点,改选“微服务”,重新推演。 优点:如果运气好,能最快找到答案。
在 Shannon 框架中,我们通常默认使用 BFS,因为它更稳健。
04. 算一笔账:天才的代价
ToT 听起来太完美了,为什么我们不一直用它? 因为 贵,而且 慢。
假设一个任务需要 3 个步骤:
-
CoT:调用 1 次 LLM(一次生成 3 步)。消耗 1x Token。
-
ToT:
- 第一步生成 3 个分支(3 次调用)。
- 对 3 个分支评估打分(3 次调用)。
- 选出 1 个最优,进入第二步……
- 总消耗:可能是 CoT 的 10 倍甚至 20 倍。
决策矩阵:什么时候用 ToT?
| 任务类型 | 例子 | 推荐模式 | 理由 |
|---|---|---|---|
| 创意写作 | 写一首诗 | CoT | 灵感是一气呵成的,打断了就没了。 |
| 简单问答 | 1+1等于几 | CoT | 杀鸡焉用宰牛刀。 |
| 逻辑谜题 | 24点游戏、数独 | ToT | 需要尝试多种组合,容易走死胡同。 |
| 战略规划 | 公司年度计划 | ToT | 决策错误的成本极高,值得花 20 倍的 Token 去避坑。 |
升维思考: 这符合经济学中的 风险收益比。对于“决策失误成本”极高的任务(如写代码、定战略),ToT 增加的 Token 成本是可以被忽略的;但对于日常闲聊,用 ToT 就是纯粹的浪费。
05. 常见误区:伪 ToT
很多开发者以为让 Agent 生成三个选项就是 ToT,其实不然。
- 伪 ToT:生成 A、B、C 三个选项,然后随机选一个。
- 真 ToT:生成 A、B、C,推演 A 的后果,推演 B 的后果,推演 C 的后果,对比后果后,慎重选择 C。
ToT 的灵魂不在于“树”,而在于“推演(Lookahead)”和“回溯(Backtrack)”。
总结
ToT 是 Agent 智力的一次飞跃。
- CoT 是让 Agent 学会了“走路”(按部就班)。
- ToT 是让 Agent 学会了“看地图”(全局规划)。
它让 Agent 具备了 审慎(Deliberation) 的能力。虽然它慢,虽然它贵,但在面对真正复杂的难题时,它是唯一能带你走出迷宫的罗盘。
下一章预告
ToT 解决的是“怎么选路”的问题。但有时候,世界上的问题并没有标准答案,而是充满了争议。 比如:“AI 到底会不会毁灭人类?” 对于这种问题,一个 Agent 苦思冥想(ToT)可能只会陷入偏见。我们需要引入 “对手” 。
下一章,我们来聊 Debate(辩论)模式:让两个 Agent 互为红蓝军,通过激烈的吵架(对抗生成),逼出最客观的真理。