tree-of-thoughts
通过DFS/BFS双引擎搜索,让大模型从一步到位升级为深思熟虑,推理质量提升高达70%
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
通过DFS/BFS双引擎搜索,让大模型从一步到位升级为深思熟虑,推理质量提升高达70%
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2023年,当学术界还在讨论 Chain-of-Thought(思维链)能否提升 AI 推理能力时,22岁的 Kye Gomez 已经把这个问题逆向工程了——他想知道:如果让 AI 不是只走一条链式思路,而是像人类下棋一样,同时探索多条可能的思考路径,效果会怎样? 答案是一个叫 Tree of Thoughts(ToT) 的提示工程框架。在 Kye 的实现中,他把 OpenAI 2023年5月发表的学术论文,转化成了一个开箱即用的 Python 库。仅靠调整 prompt 策略,在 Game of 24、创意写作、填字游戏等复杂推理任务上,AI 的成功率最高提升了 70%。 这个库在 GitHub 迅速获得 4580 颗星,成为了提示工程领域的标杆项目之一。
用过 ChatGPT 的人大概都遇到过这种情况:问它一道数学题,它迅速给出一个答案——但这个答案可能是错的。原因是 AI 在生成回答时,默认是从左到右的 token 生成模式:它不会停下来评估自己是否走错了方向,而是一路推演到底。 这就像下棋时只考虑下一步最优,而不思考后续三步。Chain-of-Thought(思维链)尝试让 AI 把推理步骤说出来,但本质上仍是单链推理。 Tree of Thoughts 的核心思想:让 AI 主动生成多个思考分支,每个分支代表一种可能的解决思路,然后对这些分支进行评估和剪枝,只保留有前景的方向继续深入。这与人类的问题解决方式高度一致——遇到复杂问题,我们会同时考虑几种方案,边想边排除死胡同。
Tree of Thoughts 的使用门槛极低,安装仅需一行命令:
pip install tree-of-thoughts
使用方式也非常直观。项目中内置了两种搜索策略:BFS(广度优先搜索) 和 DFS(深度优先搜索),分别对应不同的使用场景:
from tree_of_thoughts import TotAgent, ToTDFSAgent
from dotenv import load_dotenv
load_dotenv()
tot_agent = TotAgent(use_openai_caller=False)
dfs_agent = ToTDFSAgent(
agent=tot_agent,
threshold=0.8,
max_loops=15,
prune_threshold=0.5,
number_of_agents=4
)
initial_state = "用4个数 [3, 3, 8, 8],通过加减乘除得到24"
final_thought = dfs_agent.run(initial_state)
print(final_thought)
在 examples/ 目录下,项目还提供了 BFS 和 DFS 的完整示例脚本。DFS 适合需要深入探索单一路径的场景(如复杂数学证明),BFS 则适合需要广泛探索多种可能性的场景(如创意写作)。
从代码结构来看,该项目包含三个核心模块:
| 模块 | 职责 | 技术选型 |
|---|---|---|
| TotAgent | 调用 LLM 生成和评估思考分支 | swarms 框架 + swarm-models |
| ToTDFSAgent / ToTBFSAgent | 搜索策略执行与剪枝 | 递归搜索 + Pydantic 数据校验 |
| prompt 提示词模板 | 引导模型生成高质量思考路径 | 自定义 ToT 提示工程 |
| 技术栈上,该库完全基于 Python 生态,依赖清晰(swarms、pydantic、loguru、python-dotenv),没有引入复杂的机器学习框架。用户只需要有 OpenAI API 的访问权限(或兼容的 LLM 端点),就可以驱动整个系统运行。 | ||
| 值得注意的是,项目作者 Kye Gomez 同时维护了 swarms 框架——这是一个更大型的多 Agent 协作框架。Tree of Thoughts 既可以作为独立库使用,也可以无缝集成到 swarms 系统中,作为复杂多 Agent 工作流的推理引擎。 |
优势:
本报告基于 GitHub 公开信息生成,分析时间:2026-06-01。图片因网络代理限制无法获取。