ToolBench 与 ToolLLaMA
用真实 REST API 数据、检索与 DFSDT 训练评估模型调用能力。
按维度查看评分与理由
证据显示:仓库未提供权限管理、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响、回滚或来源归属的说明。所有信任相关标准均未得到满足,因此得分为0。
证据显示:README提供了详细的安装和运行指令,但未提供错误处理或失败消息的说明。依赖项在requirements.txt中列出,但未提供可用性保证。因此,self_consistency和dependency_availability得分为1,failure_messages得分为0。
证据显示:README明确了目标受众(研究人员和开发者)和使用场景(工具学习、训练、评估)。提供了API定制和Web UI的说明,但触发精度(如API调用条件)未明确。因此,audience_and_scenarios、capability_boundaries和environment_fit得分为2,trigger_precision得分为1。
证据显示:README提供了清晰的信息架构、安装说明和示例。命名稳定性未明确,已知限制部分提及,许可证为Apache-2.0,版本变更记录部分提及,维护责任未明确。因此,information_architecture、install_notes、examples_and_faq和license得分为2,naming_stability、known_limitations、versioning_changelog和maintenance_responsibility得分为1。
证据显示:输出格式(如JSON)在README中说明,但未提供实际输出示例。边际价值高(提供数据集和模型),但成本效益未明确。因此,output_usability和marginal_value得分为2,cost_benefit得分为1。
证据显示:README中的声明(如性能)未提供具体数据或引用,但提到了论文。跨来源验证有限,事实与推断未明确分离。因此,claim_traceability、cross_source_corroboration和fact_inference_separation得分为1。
- 仓库未提供权限管理或用户确认机制,使用外部API时需谨慎。
- 依赖项版本较旧,可能存在已知安全漏洞,建议更新。
- README中的性能声明缺乏具体数据支持,需谨慎对待。
这个 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 将预测转换后计算通过率与偏好结果。
- 希望用真实 RapidAPI 文档和调用轨迹训练开源模型执行 API 调用的研究团队。
- 需要为 ToolLLaMA 微调复现实验,并具备至少两张 A100 80GB GPU 的机器学习工程师。
- 要在开放域问题中先检索候选 API、再执行工具调用的模型开发者。
- 想将自有 hello_world 一类 API 文档和 api.py 实现接入闭域推理流程的应用原型团队。
- 需要把多个方法在六个测试子集上的预测转换并以通过率、偏好胜率进行比较的评测人员。
- 希望通过本地 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 等方法的输出,但资料未证明它们在所有部署场景中可直接互换。