ToolFailBench
收藏资源简介:
ToolFailBench是一个诊断基准,用于测量大型语言模型代理在金融、医学、法律、网络安全和房地产等领域的1,000个任务中的工具使用失败情况。该数据集通过设计需要工具的任务和控制任务,强制模型依赖工具输出,并标注了工具跳过、结果忽略、输出捏造和不必要工具使用四种失败模式,以评估模型是否准确使用工具输出并避免不必要的工具调用。
ToolFailBench is a diagnostic benchmark for measuring tool use failures of large language model (LLM) agents across 1,000 tasks in domains such as finance, medicine, law, cybersecurity, and real estate. This dataset includes task designs that necessitate tool usage and controlled tasks that compel models to rely on tool outputs, while annotating four failure modes: tool skipping, result ignoring, output fabrication, and unnecessary tool invocation, to assess whether models can accurately utilize tool outputs and refrain from unnecessary tool calls.
数据集概述
ToolFailBench 是一个用于诊断大语言模型(LLM)智能体工具调用失败的基准测试,由加州大学伯克利分校的 Harsh Soni 构建。
核心目标与设计
- 诊断失败模式:旨在揭示模型在工具调用中的具体失败方式,而非仅依赖最终任务准确率。
- 任务构成:包含 1,000 个任务,覆盖五个领域:金融、医疗、法律、网络安全、房地产。
- 任务类型:
- 工具必需任务(Tool-required tasks):模型必须调用工具才能正确回答,工具返回模型无法猜测的数值。
- 控制任务(Control tasks):模型应直接回答,无需调用工具。
- 失败模式分类:通过确定性规则分类器和两个独立的 LLM 裁判(使用多数投票法)为每个轨迹标注以下四种失败模式之一:
| 失败模式 | 含义 |
|---|---|
| 工具跳过(Tool-Skip, TS) | 需要工具时,模型未进行有效的工具调用(如依赖记忆、拒绝回答或发出未执行的工具调用文本)。 |
| 结果忽略(Result-Ignore, RI) | 需要工具时,模型调用了工具并获得了正确答案,但最终回答与工具返回值矛盾(通常回退到训练数据记忆)。 |
| 输出捏造(Output-Fabrication, OF) | 需要工具时,模型调用了工具,但最终回答中包含了工具返回值中不存在的结构化数据、日期、标识符或数字。 |
| 不必要工具使用(Unnecessary-Tool-Use, UTU) | 控制任务(不需要工具)中,模型仍然调用了工具(「总是调用」病理模式)。 |
关键发现
- 忠实工具使用尚未饱和:最佳模型 Grok-4.3 的干净工具使用率 (Clean Tool-Use Rate, CTUR) 仅为 86.33%。
- 高分不等于频繁调用:顶级模型通过适中的工具跳过率和较低的结果忽略率及输出捏造率取得成功,并非最激进的调用者。
- 聚合分数掩盖失败特征:多数模型为低不必要工具使用率的「自律型(Disciplined)」,而 Llama-3.1 系列模型则表现为高不必要工具使用率的「总是调用型(Always-Call)」。
- 规模不解决工具自律问题:同等规模的 Llama-3.1-70B 和 Qwen2.5-72B,在控制任务准确率上相差 89 个百分点。
- 双裁判集成鲁棒:三人裁判间的 Fleiss κ 为 0.693。
- 结果忠实度因领域而异:在「自律型」模型中,金融领域的中位规则结果忽略率(RIR)为 12.24%,而网络安全领域仅为 0.68%,证实了跨领域设计的必要性。
排行榜(Top 19 模型,按集成干净工具使用率排序)
| 排名 | 模型 | 集成干净工具使用率 (Ens. CTUR) | 集成工具跳过率 (Ens. TSR) | 集成结果忽略率 (Ens. RIR) | 集成输出捏造率 (Ens. OFR) | 集成不必要工具使用率 (Ens. UTR) | 集成控制任务准确率 (Ens. CTRL-Acc) |
|---|---|---|---|---|---|---|---|
| 1 | Grok-4.3 | 86.33 | 11.80 | 1.74 | 0.13 | 0.81 | 97.18 |
| 2 | Grok-4-1-Fast-Reasoning | 84.11 | 14.15 | 1.60 | 0.13 | 0.40 | 99.60 |
| 3 | Qwen2.5-32B-Instruct | 82.68 | 12.08 | 4.43 | 0.81 | 0.80 | 95.58 |
| 4 | Qwen3.6-27B | 79.33 | 19.87 | 0.67 | 0.13 | 0.00 | 98.79 |
| 5 | Claude-Sonnet-4.5 | 79.28 | 15.64 | 4.41 | 0.67 | 0.00 | 100.00 |
| 6 | GPT-5.4-Mini | 79.14 | 14.17 | 5.48 | 1.20 | 0.00 | 97.20 |
| 7 | QwQ-32B | 79.04 | 16.02 | 3.07 | 1.87 | 1.61 | 95.98 |
| 8 | Qwen2.5-72B-Instruct | 79.00 | 18.57 | 2.02 | 0.40 | 0.00 | 98.00 |
| 9 | Qwen3.6-35B-A3B | 78.47 | 18.98 | 2.15 | 0.40 | 0.00 | 99.60 |
| 10 | Gemma-4-31B | 78.12 | 19.06 | 2.68 | 0.13 | 0.00 | 98.39 |
| 11 | Qwen3.5-27B | 77.38 | 21.55 | 0.67 | 0.40 | 0.00 | 99.60 |
| 12 | Claude-Haiku-4.5 | 76.47 | 18.85 | 2.81 | 1.87 | 0.00 | 100.00 |
| 13 | DeepSeek-V4-Flash | 75.84 | 17.45 | 4.30 | 2.42 | 1.20 | 98.39 |
| 14 | Gemma-4-27B-A4B | 73.49 | 24.10 | 1.74 | 0.67 | 0.00 | 99.20 |
| 15 | GLM-4.7-Flash | 71.49 | 24.90 | 3.21 | 0.40 | 0.00 | 99.19 |
| 16 | Qwen3.5-9B | 70.03 | 26.48 | 2.82 | 0.67 | 0.00 | 99.60 |
| 17 | Qwen2.5-7B-Instruct | 65.28 | 28.53 | 5.11 | 1.08 | 0.00 | 95.16 |
| 18 | Llama-3.1-70B | 62.58 | 24.23 | 11.17 | 2.02 | 77.73 | 8.91 |
| 19 | Llama-3.1-8B | 47.32 | 20.64 | 30.43 | 1.61 | 98.39 | 0.00 |
环境设置与使用
- 安装:通过
git clone、./setup.sh及激活虚拟环境完成。 - 运行评估:使用
python scripts/run_eval.py --model <模型名称>命令,支持闭源 API 模型和本地开源模型(需要 vLLM 服务器)。 - 集成裁判:通过
make judge EVAL=<结果文件>命令运行双 LLM 裁判集成(Qwen3.5-397B-A17B-FP8 和 GLM-4.7-FP8)及规则分类器。 - 数据与轨迹:完整评估轨迹发布在 HuggingFace 数据集 SoHarshh/toolfailbench-traces。
数据集结构与格式
- 任务目录:
tasks_v5/包含五个领域的子目录,每个子目录下包含tasks.json和tools.json。 - 系统提示:
system_prompts/v5/为每个领域提供共享系统提示。 - 模型配置:
models/configs/下每个模型有一个 YAML 配置文件。 - 许可证:Apache License 2.0。




