外观
ToolFailBench:诊断 LLM Agent 的工具使用失效
摘要
ToolFailBench 研究 Agent 在需要或不需要工具时,是否正确选择工具、使用返回结果并据此形成最终答案。它把工具使用失效细分为跳过必需工具、调用后忽略结果、捏造输出和不必要调用四类,并用包含反常识陷阱值的任务检验模型是否真正依赖工具结果。
作者在金融、医疗、法律、网络安全和房地产五个领域构造 1000 个单轮任务,评估 19 个模型。结果显示,不必要调用和工具结果处理能力在模型家族之间差异明显。结论适用于论文列出的模拟工具、单轮任务和评测设置;不能直接外推为生产事故率或真实攻击成功率。
核心创新与差异
原研究贡献:论文把工具调用的正确性从“是否调用”扩展为四类可诊断失效,并用工具返回的反常识值测试 Agent 是否依据实际结果回答。它还分别报告需要调用工具的任务和不应调用工具的控制题,使工具选择、结果使用和无谓调用可以分开观察。
本站分析:研究对象是 Agent 的工具使用完整性,不是工具服务本身的实现漏洞。相对已有关于危险工具调用、参数约束和工具返回驱动闭环的覆盖,本文提供了更细的失效分类和模型族差异证据。最先失效的控制是工具选择或结果依据校验,主要修复责任在模型训练、Agent 编排和评测 Harness。
威胁模型与攻击链
论文没有设定独立外部攻击者或生产攻击事件。其安全场景是:用户任务要求 Agent 调用工具,工具返回一个可能反常识的结果,Agent 仍需根据该结果完成回答;另一类控制题明确要求不调用工具。
在该场景中,任务意图和工具返回结果是输入资产,最终答案是下游决策依据,信任边界位于“用户任务/工具返回”到“Agent 最终答案”之间。失效链条可以表现为:Agent 跳过必须调用的工具;调用工具后忽略返回值;没有调用工具却捏造结果;或者在不需要工具时无谓调用。论文评估的是这些失效模式,不证明它们已经造成真实系统损害。
实验设计与实际过程
作者实验:基准包含 1000 个单轮任务,其中 750 个需要工具且返回反常识陷阱值,250 个是不应调用工具的控制题。19 个模型使用相同 Prompt、工具 Schema、temperature=0 和两阶段执行流程,覆盖五个领域。
评测同时使用规则分类器和两个不同提示框架的 Judge,多数投票得到最终分类,三方 Fleiss kappa 为 0.693。作者还对 QwQ 做温度消融,以观察随机性对指标的影响。对照包括需要工具与不需要工具的任务组,以及不同模型家族和规模之间的比较。
论文配套 Apache-2.0 仓库公开任务、配置和评测代码。本页未执行独立复现;以下结果均为作者实验。
关键结果与实际影响
- 最佳模型 Grok-4.3 的 Clean Tool-Use Rate 为 86.33%,该指标对应论文的工具使用正确性定义。
- Llama-3.1-70B 和 Llama-3.1-8B 的不必要调用率分别为 77.73% 和 98.39%,说明更大模型并不自动消除工具选择失效。
- 在不应调用工具的控制题上,Llama-3.1-70B 与同规模 Qwen2.5-72B 的准确率相差 89 个百分点。
- QwQ 的温度消融中,规则 CTUR 仅从 75.47% 变为 75.60%,在该设置下指标对这项温度变化不敏感。
实际影响是,Agent 可能在工具可用时形成不依赖真实结果的答案,也可能在不需要工具时扩大不必要的调用面。评测结果只能说明特定模型和任务设置中的行为差异,不能把 Clean Tool-Use Rate 当作生产安全保证。
失败记录可能诱导重复同一调用
Feedback That Backfires进一步检查 Harness 把失败调用与错误消息写回 Transcript 后,模型是否更少重复该动作。作者把“纠正增益”定义为失败记录出现前后,模型再次输出刚失败动作的对数概率变化;六个 135M–1.7B、四个模型家族的指令微调 Checkpoint 在模拟工具调用与带真实解释器输出的 MBPP 修复环境中均呈负纠正增益。
按动作长度归一后,两环境平均约为每个动作 Token -1.03 nat,即每个 Token 的重复赔率约增至 2.8 倍;该方向在 90%–100% 的单项样本上成立。研究还将失败语义与 Transcript 的表面复制诱因分离,并比较四类修复。结果只覆盖小模型与受控候选动作,不能外推到大型闭源 Agent;但它说明错误恢复测试不能只验证“错误已写入上下文”,还要测量下一步是否复制原调用、是否引用错误原因,以及结构化状态能否替代原始失败文本。
防护措施与验证方法
防护首先应把四类失效分开回归:对必须调用的任务检查工具是否被调用,对返回反常识值的任务检查答案是否引用实际返回,对不应调用的任务检查 Agent 是否保持不调用,并单独统计捏造输出。编排层应保留任务、工具调用、返回值和最终答案之间的可追溯关系,避免只统计调用次数。
验证时应固定模型版本、Prompt、Schema、温度和执行阶段,报告各失效类别的分母,而不是只报告汇总分数。规则分类器和独立 Judge 的一致性也应持续校准;论文提供的 Fleiss kappa 0.693 可作为该评测设置中的一致性记录,而不是通用阈值。防护措施的适用范围仍需通过多轮工具链、恢复流程和状态更新测试确认。
局限与待验证问题
- 任务使用模拟工具、单轮流程和五个领域,未覆盖真实工具链、恢复、状态更新或长期记忆。
- 规则分类器与两个 Judge 可能共享盲点;公开任务还存在未来被训练数据污染的风险。
- 没有外部攻击者、生产事故或真实副作用,因此结果不是实际攻击成功率或产品漏洞证明。
- 论文未专门展开伦理讨论;后续需要在授权、隔离环境中验证多轮工具调用、错误恢复和真实工作流的结果依赖性。