tree-of-thoughts 是开发框架领域的开源项目,由 kyegomez 开发,2023 年首次发布。
在全站 13,655 个收录项目中,它的 GitHub 星标数(4,591)位列前 9%,在开发框架分类的 825 个项目里位列前 11%。
项目目前处于活跃维护状态,最近一次代码更新于 2026-09-29。开源免费,Discord社区支持。
它主要面向的使用场景是:数学与逻辑谜题求解,如24点游戏、数独推理。同类可对比的替代方案包括 LangChain、AutoGPT。

让大模型先想多步再选最优,推理正确率提升70%
tree-of-thoughts 是一个即插即用的 Python 实现,将 Tree of Thoughts(思维树)方法引入大语言模型推理。传统提示方法让模型一次性输出答案,遇到需要多步探索、回溯或比较的问题容易卡死。本项目把推理过程组织成树状结构:每一步生成多个候选想法,由模型自己评估优劣,再决定继续扩展、剪枝或回溯,从而在 24 点游戏、创意写作、迷你填字等任务上显著提升正确率。它提供简洁 API,可搭配 GPT-4 等模型使用,也支持多模态输入,让开发者无需从零搭建搜索框架,就能把“先想几步、再选最优”的推理策略接入自己的应用。
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
—
1安装 Swarms 框架
Tree of Thoughts 现随 Swarms 框架发布,实现类为 TreeOfThoughts。用 pip3 安装或升级到最新版即可,无需单独装其它依赖。
pip3 install -U swarms2配置 API 密钥
在工作目录新建 .env 文件并写入密钥,Swarms 在 import 时会自动加载。把 your_openai_api_key 换成你自己的真实密钥。
cat > .env <<'EOF'
OPENAI_API_KEY="your_openai_api_key"
WORKSPACE_DIR="agent_workspace"
EOF3运行 24 点示例
把示例代码保存为 .py 文件后执行。run(task) 返回最终答案字符串;示例用 DFS 搜索、最大深度 3 解 24 点题。
from swarms import TreeOfThoughts
agent = TreeOfThoughts(
model_name="gpt-5.4",
search_algorithm="dfs",
max_depth=3,
thought_description="One arithmetic operation on two of the remaining numbers.",
evaluation_criteria="Can the remaining numbers still reach 24?",
)
answer = agent.run("Use 4, 9, 10 and 13 with + - * / to make 24.")
print(answer)4查看搜索过程
完整搜索树保留在 agent.last_result,可遍历最佳路径的每一步,并查看是否解出、扩展节点数、调用次数与 token 用量。
result = agent.last_result
for number, step in enumerate(result.steps, 1):
print(f"{number}. {step}")
print(result.solved)
print(result.nodes_expanded)
print(result.llm_calls)
print(result.usage["total_tokens"])
tree = result.to_dict()| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
OPENAI_API_KEY | 是 | 模型提供方密钥,写入工作目录的 .env,导入时自动加载 | sk-xxxxxxxxxxxxxxxx |
model_name | 否 | 任意 LiteLLM 模型字符串,模型必须支持 function calling | gpt-5.4 |
search_algorithm | 否 | 搜索方式,bfs 每层保留最优 breadth 个,dfs 优先最优子节点并回溯 | dfs |
max_depth | 否 | 一条路径上的最大步数,该深度的步骤必须完成任务 | 3 |
value_threshold | 否 | 评分低于该阈值的候选想法会被剪枝掉 | 0.5 |
thought_description | 否 | 描述你的任务中“一步”长什么样,会展示给生成器 | One arithmetic operation on two of the remaining numbers. |
脚本运行后 print(answer) 输出正确结果即成功;再用 agent.last_result.solved 为 True、steps 能打印出推理路径确认搜索正常。
Q:不用 OpenAI 密钥可以吗?
A:可以。model_name 接受任意支持 function calling 的 LiteLLM 模型,改设 ANTHROPIC_API_KEY、GROQ_API_KEY 等其它提供方密钥即可。
Q:报错说模型不支持函数调用怎么办?
A:ToT 的每次模型输出都是按 Pydantic schema 校验的函数调用,不会解析自由文本,所以要换一个支持 function calling 的模型再试。
Q:搜索结果和 token 消耗在哪里看?
A:都在 agent.last_result 上:steps 是最佳路径、solved 表示是否解出、nodes_expanded 与 llm_calls 统计开销、usage["total_tokens"] 是本次搜索的 token 用量。
Q:怎么控制调用成本?
A:调小 num_thoughts、breadth、max_depth,或设置 max_expansions 给单次搜索的扩展节点数设上限。
LangChain、AutoGPT
tree-of-thoughts 是开发框架领域的开源项目,由 kyegomez 开发,2023 年首次发布。
在全站 13,655 个收录项目中,它的 GitHub 星标数(4,591)位列前 9%,在开发框架分类的 825 个项目里位列前 11%。
项目目前处于活跃维护状态,最近一次代码更新于 2026-09-29。开源免费,Discord社区支持。
它主要面向的使用场景是:数学与逻辑谜题求解,如24点游戏、数独推理。同类可对比的替代方案包括 LangChain、AutoGPT。
上一篇:llamppl
langchain
开源
组装 AI 应用的乐高积木,从想法到上线不换工具
The agent engineering platform.
transformers
开源
全球最大的模型仓库全家桶,想用的模型一把抓
Transformers: the model-definition framework for state-of-the-art machine learning m···
ComfyUI_Custom_Nodes_AlekPet
开源
给 ComfyUI 装上语音翻译和姿态检测,工作流更全能
Custom nodes that extend the capabilities of Comfyui
pi
开源
一套 TypeScript 工具包,快速搭出能写代码的 AI agent
AI agent toolkit: unified LLM API, agent loop, TUI, coding agent CLI