Repolode
apple-aiml-research

apple-aiml-research/ToolSandbox

一个有状态、多轮对话式的基准测试,用于评估大模型agent的工具调用能力,内置用户模拟器。

Star
288
Fork
33
未关闭 Issue
3
最近提交
上个月

这是什么?

ToolSandbox 是一个用于评估大语言模型工具调用能力的基准测试框架,随一篇 Apple 研究论文发布。与只针对无状态 REST 接口、单轮提示的评测不同,它让工具运行在持久化的世界状态之上,包括设置、联系人、消息和提醒等数据库,因此一次工具调用可能影响后续调用的结果。

框架内置用户模拟器,可以与 agent 进行多轮对话;工具以 Python 函数实现,工具之间存在隐含依赖,例如发消息前需要先开启蜂窝网络。场景通过 Python 在基础设备状态上扩展定义,还可以对工具进行干扰、重命名或删除参数说明等增强,以测试模型的鲁棒性。

评估采用里程碑机制:每个场景定义一组必须达到的中间与最终状态(以有向无环图表示),评分时检查轨迹是否按合法顺序达成这些状态,而不要求调用序列完全一致。项目提供 `tool_sandbox` 命令行工具,支持 OpenAI、Anthropic、Google Gemini、Cohere 的模型,也支持通过 vLLM 部署的开源模型。

核心功能

  • 01基于持久化世界状态(设置、联系人、消息、提醒)执行有状态的工具调用。
  • 02内置用户模拟器,支持多轮对话式评测。
  • 03采用里程碑有向无环图评分,接受中间步骤的任意合法顺序。
  • 04支持干扰工具、工具重命名、移除类型提示等场景增强。
  • 05支持 OpenAI、Anthropic、Gemini、Cohere 及通过 vLLM 部署的开源模型。

适用场景

  • 比较不同大模型在有状态依赖下的多步工具调用表现。
  • 测试 agent 在缺少工具或信息时能否识别并停止,而非编造调用。
  • 为对话式 agent 的工具调用行为搭建回归测试。

快速上手

  1. 1

    使用 Python 3.9 创建 conda 虚拟环境

    conda create -n ToolSandbox python=3.9
  2. 2

    激活该虚拟环境

    conda activate ToolSandbox
  3. 3

    在仓库根目录安装项目及开发依赖

    pip install '.[dev]'
  4. 4

    以 GPT-4o 同时作为用户模拟器和智能体运行单个场景(请替换 API 密钥占位符)

    env OPENAI_API_KEY=<YOUR_OPENAI_API_KEY> RAPID_API_KEY=<YOUR_RAPID_API_KEY> tool_sandbox --user GPT_4_o_2024_05_13 --agent GPT_4_o_2024_05_13

使用前须知

  • 元数据中未明确说明许可证,因此复用条款不清楚。
  • 使用托管模型运行场景需要付费 API 密钥,搜索类场景还需要 RapidAPI 密钥。
  • 工具调用直接在宿主机上执行,没有沙箱隔离。

标签

常见问题

ToolSandbox 是什么?
一个有状态、多轮对话式的基准测试,用于评估大模型agent的工具调用能力,内置用户模拟器。 ToolSandbox 是一个用于评估大语言模型工具调用能力的基准测试框架,随一篇 Apple 研究论文发布。与只针对无状态 REST 接口、单轮提示的评测不同,它让工具运行在持久化的世界状态之上,包括设置、联系人、消息和提醒等数据库,因此一次工具调用可能影响后续调用的结果。
ToolSandbox 可以免费使用吗?用的什么许可证?
ToolSandbox 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
ToolSandbox 还在维护吗?
半年内有更新。ToolSandbox 最近一次提交是在 2026年9月11日。
ToolSandbox 适合用来做什么?
比较不同大模型在有状态依赖下的多步工具调用表现。 测试 agent 在缺少工具或信息时能否识别并停止,而非编造调用。 为对话式 agent 的工具调用行为搭建回归测试。
ToolSandbox 怎么安装和运行?
使用 Python 3.9 创建 conda 虚拟环境: conda create -n ToolSandbox python=3.9 激活该虚拟环境: conda activate ToolSandbox 在仓库根目录安装项目及开发依赖: pip install '.[dev]' 以 GPT-4o 同时作为用户模拟器和智能体运行单个场景(请替换 API 密钥占位符): env OPENAI_API_KEY=<YOUR_OPENAI_API_KEY> RAPID_API_KEY=<YOUR_RAPID_API_KEY> tool_sandbox --user GPT_4_o_2024_05_13 --agent GPT_4_o_2024_05_13
在哪里获取 ToolSandbox?
源代码和安装说明在 GitHub 上:https://github.com/apple-aiml-research/ToolSandbox

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目