tree-of-thoughts

让大模型先想多步再选最优,推理正确率提升70%

tree-of-thoughts 是一个即插即用的 Python 实现,将 Tree of Thoughts(思维树)方法引入大语言模型推理。传统提示方法让模型一次性输出答案,遇到需要多步探索、回溯或比较的问题容易卡死。本项目把推理过程组织成树状结构:每一步生成多个候选想法,由模型自己评估优劣,再决定继续扩展、剪枝或回溯,从而在 24 点游戏、创意写作、迷你填字等任务上显著提升正确率。它提供简洁 API,可搭配 GPT-4 等模型使用,也支持多模态输入,让开发者无需从零搭建搜索框架,就能把“先想几步、再选最优”的推理策略接入自己的应用。

开源 free 开发框架
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 4591
维护状态 活跃
是否开源 是
定价模式 free

项目预览

项目数据

分类开发框架
开发团队kyegomez
所属国家
官网地址
定价模式free
价格说明开源免费,Discord社区支持
访问状态
是否开源是
开源协议Apache-2.0
主要语言Python
技术栈/模型artificial-intelligence,chatgpt,deep-learning,gpt4,multimodal,prompt,prompt-engineering,prompt-learning,prompt-tuning
GitHub 星标★ 4591
30天Star增速
HF 下载量
上线时间2023-05-21 00:00:00
代码更新—
仓库体积—
本站数据更新—
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-10-05
浏览次数0

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

正在加载星标数据…

技术标签

使用教程

—

难度:入门 约 10 分钟 部署方式:库/依赖 4 步

环境要求

  • Python 环境(可用 pip3 安装包)
  • 一个支持 function calling 的模型 API Key(OpenAI / Anthropic / Groq 等)
  • 能访问所填模型的网络环境
  • 工作目录可写入,用于存放 .env 和 WORKSPACE_DIR

安装与启动步骤

  1. 1安装 Swarms 框架

    Tree of Thoughts 现随 Swarms 框架发布,实现类为 TreeOfThoughts。用 pip3 安装或升级到最新版即可,无需单独装其它依赖。

    pip3 install -U swarms
  2. 2配置 API 密钥

    在工作目录新建 .env 文件并写入密钥,Swarms 在 import 时会自动加载。把 your_openai_api_key 换成你自己的真实密钥。

    cat > .env <<'EOF'
    OPENAI_API_KEY="your_openai_api_key"
    WORKSPACE_DIR="agent_workspace"
    EOF
  3. 3运行 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. 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 callinggpt-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 给单次搜索的扩展节点数设上限。

注意事项

  • 本项目已并入 Swarms 框架,必须从 swarms 导入 TreeOfThoughts,而不是单独安装 tree-of-thoughts。
  • 密钥写在当前工作目录的 .env 里,Swarms 在 import 时读取,缺失会导致调用失败。
  • BFS 使用 breadth 控制束宽,DFS 会忽略该参数;dfs 走最优子节点并支持回溯。
  • 同一树层的模型调用会并发执行,max_workers 默认为 8,注意提供方的并发限制。

核心亮点

  • 即插即用,几行代码即可把思维树搜索接入现有 LLM 调用流程
  • 在 24 点游戏等需要多步规划的任务上,官方报告推理准确率提升至少 70%
  • 同时支持文本与多模态输入,并兼容 GPT-4 等主流模型

不足之处

  • 多次调用模型导致 token 消耗和延迟明显高于普通提示
  • 树搜索的超参数(宽度、深度、评估策略)需要针对任务手动调优

适用场景

  • 数学与逻辑谜题求解,如 24 点游戏、数独推理
  • 需要多方案比较的创意写作与头脑风暴
  • 复杂问答或规划任务中,让模型先探索多条推理路径再给出最终答案

替代项目

LangChain、AutoGPT

项目介绍

tree-of-thoughts 是开发框架领域的开源项目,由 kyegomez 开发,2023 年首次发布。

在全站 13,655 个收录项目中,它的 GitHub 星标数(4,591)位列前 9%,在开发框架分类的 825 个项目里位列前 11%。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-29。开源免费,Discord社区支持。

它主要面向的使用场景是:数学与逻辑谜题求解,如24点游戏、数独推理。同类可对比的替代方案包括 LangChain、AutoGPT。

上一篇:llamppl

下一篇:PromptingTools.jl

同类项目推荐

langchain 开源

组装 AI 应用的乐高积木,从想法到上线不换工具

The agent engineering platform.

★ 147438 2026-08-09
transformers 开源

全球最大的模型仓库全家桶,想用的模型一把抓

Transformers: the model-definition framework for state-of-the-art machine learning m···

★ 166951 2026-08-09
pi 开源

一套 TypeScript 工具包,快速搭出能写代码的 AI agent

AI agent toolkit: unified LLM API, agent loop, TUI, coding agent CLI

★ 112403 2026-09-12