数据与分析 instruction-tuningrapidapiapi-retrievalfunction-callingmodel-evaluationfastchatweb-ui

ToolBench 与 ToolLLaMA

用真实 REST API 数据、检索与 DFSDT 训练评估模型调用能力。

FollowAgents 评估 · FARS-2.1
不推荐
32/ 100 五分制 1.6 / 5
1 2 3 4 5 6
按维度查看评分与理由
1信任安全0 / 29 · 0.0/5

证据显示:仓库未提供权限管理、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响、回滚或来源归属的说明。所有信任相关标准均未得到满足,因此得分为0。

2可靠稳定3 / 14 · 1.1/5

证据显示:README提供了详细的安装和运行指令,但未提供错误处理或失败消息的说明。依赖项在requirements.txt中列出,但未提供可用性保证。因此,self_consistency和dependency_availability得分为1,failure_messages得分为0。

3适用触发10 / 18 · 2.8/5

证据显示:README明确了目标受众(研究人员和开发者)和使用场景(工具学习、训练、评估)。提供了API定制和Web UI的说明,但触发精度(如API调用条件)未明确。因此,audience_and_scenarios、capability_boundaries和environment_fit得分为2,trigger_precision得分为1。

4规范维护9 / 18 · 2.5/5

证据显示:README提供了清晰的信息架构、安装说明和示例。命名稳定性未明确,已知限制部分提及,许可证为Apache-2.0,版本变更记录部分提及,维护责任未明确。因此,information_architecture、install_notes、examples_and_faq和license得分为2,naming_stability、known_limitations、versioning_changelog和maintenance_responsibility得分为1。

5有效结果7 / 13 · 2.7/5

证据显示:输出格式(如JSON)在README中说明,但未提供实际输出示例。边际价值高(提供数据集和模型),但成本效益未明确。因此,output_usability和marginal_value得分为2,cost_benefit得分为1。

6证据核验3 / 8 · 1.9/5

证据显示:README中的声明(如性能)未提供具体数据或引用,但提到了论文。跨来源验证有限,事实与推断未明确分离。因此,claim_traceability、cross_source_corroboration和fact_inference_separation得分为1。

证据充分度: 评估于 2026年8月9日 审查版本 d56fdd89faf8
源码中未见的安全控制:最小权限约束、执行前用户确认、数据流向说明、敏感信息处理、依赖安全审查、外部影响披露、回滚或恢复路径、来源归属可核验
使用前请注意
  • 仓库未提供权限管理或用户确认机制,使用外部API时需谨慎。
  • 依赖项版本较旧,可能存在已知安全漏洞,建议更新。
  • README中的性能声明缺乏具体数据支持,需谨慎对待。
评估证据 [1][2][3]
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

ToolBench 是一个面向大语言模型工具学习的数据、训练、推理和评估项目,配套发布 ToolLLaMA 模型与 ToolEval 评测器。其数据集包含 3,451 个工具、16,464 个 REST API、126,486 条实例和 469,585 次真实 API 调用,并覆盖单工具及两类多工具场景。项目提供检索器训练、ToolLLaMA 微调、闭域与开放域推理脚本,以及可接入定制 API 的本地工具环境。推理可通过 ToolBench 的 RapidAPI 服务或用户自己的 RapidAPI 账户执行;另有基于 Chatbot UI 分叉项目的网页界面和 Python 后端服务。ToolEval 以通过率和偏好/胜率评估预测结果,并使用 OpenAI API 驱动评估流程。

项目从 data/toolenv/tools/ 读取 API 描述与实现,从 data/instruction、data/answer 和 data/retrieval 读取训练、标注和检索数据。preprocess/preprocess_retriever_data.py 生成检索训练数据,toolbench/retrieval/train.py 训练 bert-base-uncased 检索器;preprocess/preprocess_toolllama_data.py 处理解题路径标注,toolbench/train/train_mem.py 或 train_lora.py 微调 ToolLLaMA。toolbench/inference/qa_pipeline.py 运行 DFS_woFilter_w2 推理并写出答案文件,qa_pipeline_open_domain.py 先从 corpus.tsv 检索 API;可选 backbone_model 包括 toolllama、chatgpt_function 和 davinci。toolbench/inference/toolbench_server.py 提供本地 :5000/stream 服务,接收含 text、top_k、method 的 JSON 请求。ToolEval 的 convert_to_answer_format.py、eval_pass_rate.py 和 eval_preference.py 将预测转换后计算通过率与偏好结果。

  1. 希望用真实 RapidAPI 文档和调用轨迹训练开源模型执行 API 调用的研究团队。
  2. 需要为 ToolLLaMA 微调复现实验,并具备至少两张 A100 80GB GPU 的机器学习工程师。
  3. 要在开放域问题中先检索候选 API、再执行工具调用的模型开发者。
  4. 想将自有 hello_world 一类 API 文档和 api.py 实现接入闭域推理流程的应用原型团队。
  5. 需要把多个方法在六个测试子集上的预测转换并以通过率、偏好胜率进行比较的评测人员。
  6. 希望通过本地 Chatbot UI 分叉前端和 :5000/stream 后端演示 ToolLLaMA 的团队。

这个 Agent 有哪些优点和局限?

优点
  • 提供从 API 数据、路径标注、检索训练到推理和评估的完整研究工作流,而非仅发布模型权重。
  • 数据集明确覆盖单工具、同类别多工具和同集合多工具任务,并保留推理过程、工具执行及执行结果。
  • 支持闭域 API 列表和基于 corpus.tsv、检索模型的开放域 API 检索两种推理设置。
  • ToolEval 同时提供通过率和基于候选动作序列的偏好评测,并给出预测转换脚本。
  • 可通过 API 文档 JSON 与 api.py 将定制 API 接入闭域推理。
局限
  • API 支持高度依赖 RapidAPI:使用托管服务需要申请 ToolBench key,或需使用自己的 RapidAPI key 和订阅。
  • 官方 ToolLLaMA-7b 全量训练示例使用 2 张 A100 80GB,硬件门槛较高。
  • 开放域推理依赖单独训练的检索器、corpus.tsv 和工具环境数据,部署组件较多。
  • ToolEval 和 OpenAI 模型推理需要 OpenAI API 密钥;偏好和通过率评估会发起多次评估调用。
  • 定制 API 目前仅支持闭域设置,文档称开放域定制 API 支持仍计划中。

如何安装或部署这个 Agent?

克隆项目并安装依赖:

git clone [email protected]:OpenBMB/ToolBench.git
cd ToolBench
pip install -r requirements.txt

运行训练或推理前,下载并解压数据,使 data/ 位于 ToolBench/ 下:

wget --no-check-certificate 'https://drive.google.com/uc?export=download&id=1XFjDxVZdUY7TXYF2yvzx3pJlS2fy78jk&confirm=yes' -O data.zip
unzip data.zip

仅使用 ToolEval 时可安装:

pip install -r toolbench/tooleval/requirements.txt

网页界面需单独克隆 chatbot-ui-toolllama,执行 npm install 和 npm run dev。

如何使用这个 Agent?

使用 ToolBench RapidAPI 服务前需先申请并设置密钥:

export TOOLBENCH_KEY="your_toolbench_key"
export PYTHONPATH=./
python toolbench/inference/qa_pipeline.py \
--tool_root_dir data/toolenv/tools/ \
--backbone_model toolllama \
--model_path ToolBench/ToolLLaMA-7b \
--max_observation_length 1024 \
--observ_compress_method truncate \
--method DFS_woFilter_w2 \
--input_query_file data/test_instruction/G1_instruction.json \
--output_answer_file toolllama_dfs_inference_result \
--toolbench_key $TOOLBENCH_KEY

使用 OpenAI 模型时,将 backbone_model 改为 chatgpt_function 并提供 --openai_key;使用自己的 RapidAPI 账户时提供 --rapidapi_key 并添加 --use_rapidapi_key。开放域推理还需要 --corpus_tsv_path、--retrieval_model_path 和 --retrieved_api_nums 5。

这个 Agent 与同类方案有什么区别?

训练代码基于 FastChat。项目将 StableToolBench 介绍为基于 API 响应模拟的本地稳定服务器;ToolEval 可用于比较 ReACT 与 DFSDT 等方法的输出,但资料未证明它们在所有部署场景中可直接互换。

常见问题

运行真实 API 调用是否一定要使用 ToolBench 的密钥?
不一定。可申请 ToolBench key 使用其 RapidAPI 后端,也可传入自己的 RAPIDAPI_KEY 并启用 --use_rapidapi_key。
如何运行 ChatGPT 推理?
设置 OPENAI_KEY,并以 --backbone_model chatgpt_function 运行 toolbench/inference/qa_pipeline.py。
ToolEval 评估什么?
它评估有限 OpenAI API 调用内完成指令的通过率,并通过比较同一指令的两条动作序列计算偏好和胜率。
能接入自己的 API 吗?
可以:在 data/toolenv/tools/ 的类别下添加 API 文档 JSON 和对应 api.py,再以带 api_list 的查询文件运行并加 --api_customization;目前仅支持闭域。

相关 Agents