Benchmarking LLM Tool-Use in the Wild¶
会议: ICLR 2026
OpenReview: yz7fL5vfpn
代码: https://github.com/yupeijei1997/WildToolBench
领域: LLM 评测 / Agent 工具使用
关键词: 工具调用、多轮对话、Agent 评测、真实用户行为、工具编排
一句话总结¶
WildToolBench 从真实用户日志里提炼出"野生"对话的三大特征——复合任务、隐藏意图、指令切换,构建了 256 个场景共 1024 个任务的多轮多步工具调用 benchmark,对 57 个主流 LLM 的评测发现没有一个模型 session 准确率超过 15%,说明现有 LLM 的 agentic 能力远没有刷榜数字看起来那么强。
研究背景与动机¶
领域现状:主流工具调用 benchmark 走的都是"多轮多步"范式——LLM 当助手,和用户多轮对话完成连贯任务,每个任务往往要多步工具调用。从 T-EVAL、UltraTool 这类单步问答式,到 BFCL-v3 的多轮序列调用,再到 \(\tau\)-Bench / \(\tau^2\)-Bench 引入 LLM-as-User 模拟用户,benchmark 在不断"加难"。
现有痛点:这些 benchmark 都过于理想化。BFCL-v3 虽然支持多轮,但任务之间彼此独立同分布、意图与信息都给得完整明确,跟真实用户完全不像;\(\tau\)-Bench 用 LLM 模拟用户,可 LLM 模拟出来的"用户"过于完美、把任务变得太好做,而且模拟本身导致评测结果不稳定。换句话说,刷榜分数高不代表模型真能在真实场景里用好工具。
核心矛盾:真实用户和 LLM 的交互本质上是"野生的"——琐碎、混乱、灵活。难点不在于人为堆砌的复杂任务,而在于用户行为本身的简单却真实的特性。作者从大规模真实用户日志里总结出三条普遍规律:① 用户常把多个简单需求揉进一条指令(复合任务),需要工具编排而非简单串行;② 用户意图是隐式的、散落在多轮对话里(隐藏意图),需要 LLM 从上下文推断;③ 用户会在给任务、追问、解释、闲聊等不同指令类型间自然切换(指令切换),逼 LLM 实时调整策略。
本文目标:构建一个真正反映真实用户行为分布的工具调用 benchmark,把上面三条"野生"特性显式编码进任务里,并设计能区分模型细粒度能力的评测指标。
核心 idea:与其继续人为加难任务,不如让任务回归真实用户行为的"复合性、模糊性、多变性"——用真实日志驱动 + 人工标注,造一个"在用户看起来稀松平常、对 LLM 却极具挑战"的 benchmark。
方法详解¶
整体框架¶
WildToolBench 把用户与 LLM 的交互形式化为一段多轮对话 \(D = \{u_1, a_1, u_2, a_2, \dots, u_N, a_N\}\),其中 \(u_i\) 是第 \(i\) 轮用户消息,\(a_i\) 是 LLM 的回复。这段 \(N\) 轮对话里散落着 \(M\) 个用户任务 \(\{g_1, \dots, g_M\}\)。对每条用户消息,LLM 要先识别其中是否含任务、属于哪类,再决定回应策略。若任务需要工具,LLM 会进入一段多步工具调用 \(T^j = \{a^T_1, e_1, a^T_2, e_2, \dots, a^T_S, e_S\}\),其中 \(a^T\) 是工具调用、\(e\) 是环境执行后的反馈;走完这 \(S\) 步后再把信息汇总成 \(a_i\) 回给用户。从 LLM 视角看,整段对话是一个马尔可夫决策过程(MDP):状态是完整对话历史(含 \(u, a, a^T, e\)),动作是组成不同策略的 token 序列。
在这个框架下,benchmark 把所有任务归为四类,分别对应不同的工具调用步数 \(S\):无需工具直接回答的闲聊任务 \(g_{\text{chat}}\)(\(S=0\))、需要反问澄清的任务 \(g_{\text{clarify}}\)(\(S=0\))、单工具任务 \(g_{\text{single}}\)(\(S=1\))、多步工具任务 \(g_{\text{multi}}\)(\(S>1\))。三大"野生"特性正好对应:复合任务让工具调用 \(T\) 变成树而非链,隐藏意图要求从历史观测里挖掘潜在上下文,指令切换要求每条消息都可能换一种策略。
数据上,整个 benchmark 经由"真实日志 → 多智能体模拟 → 人工标注"的三步管线构建(详见关键设计 4),最终得到 256 个场景、1024 个任务,每个场景是一段含 4 个任务的多轮对话。
关键设计¶
1. 复合任务与 enumerate–match–score 编排评测:衡量 LLM 能不能搭出高效的工具调用拓扑
真实指令往往不是单个超难任务,而是把多个简单需求合成一条(如"搜热门电影 → 逐部调研 → 生成调研幻灯片",或多城市天气查询交织在旅行规划里)。这要求 LLM 识别工具间依赖、构造高效的工具调用拓扑图,从而压低首 token 时延(TTFT)——能并行的就别串行。难点在于:怎么判定一条工具执行轨迹是不是"最优拓扑"?作者用三段式 enumerate–match–score 来打分。Enumerate:先由人工标注相邻工具依赖,再用深度优先拓扑排序算法穷举出所有合法的工具执行路径,得到一棵考虑了所有分支与并行可能的决策树集合(如"搜索-调研"分支和"做幻灯片"分支可并行,就会枚举出 5 条路径)。Match:LLM 每执行一次工具,就用增量路径匹配把这次调用定位到决策树里——要么不匹配、当前路径终止,要么匹配、沿子树往下走一步。Score:当 LLM 的某条路径终止或走完时,判断它是否是所有枚举树里深度最小的;若是则说明这条决策树不仅合法而且效率最优,据此算出最优路径率 OP Rate(Optimal Path Rate);同时根据 LLM 在中途生成的、落在合法决策树集合内的成功节点占比,算出任务完成进度率 AP Rate(Accomplish Progress Rate)。OP 衡量"有没有走最优拓扑",AP 衡量"完成了多少进度",比单看最终任务准确率细得多。相比 WorfBench/TaskBench 只标注单条最优路径、靠相似度打分,穷举所有合法路径让评测既精确又能覆盖并行场景。
2. 跨轮隐藏意图的三种构造:逼 LLM 从历史对话里把缺失信息补回来
已有研究指出,序列任务里约 80% 的用户会追问、并修改或省略上下文信息,这与作者观察一致。真实用户不会把意图和信息一次说全,LLM 必须从多轮对话里推断潜在意图、补齐必要信息、必要时主动澄清。WildToolBench 用三种策略显式构造这类任务:Partial Information(部分信息)——当前消息 \(u_i\) 只含完成任务所需信息的一个子集,省略部分藏在更早的 \(\{u_1, a_1, \dots, u_{i-1}, a_{i-1}\}\) 里(如用户只说"昨天 ESPN",完整查询应是"查 ESPN 昨天的新闻");Coreferential Reference(共指引用)——当前消息信息完整,但主语用代词或省略表达,指向前文提到的实体(如"其中一个"经澄清后才确定是某篇 BBC 文章);Long-Range Dependency(长程依赖)——和部分信息类似,但缺失信息藏在更远的依赖里,即 \(u_i\) 依赖 \(\{u_1, a_1, \dots, u_j, a_j\}\) 且 \(i - j > 2\)(如"剩下所有文章"同时指向第一轮和第二轮提到的不同文章)。这三种由近及远的指代/省略,把"上下文推断"这件事从易到难拆开来考。
3. 指令切换与策略自适应:考 LLM 在自然对话里实时切换回应策略的能力
多数用户把交互当成自然对话而非一串独立任务提交:他们跨多轮发起任务、追问、解释、闲聊,随时打断或恢复任务,不断在不同指令类型间切换。一段在用户看来稀松平常的对话,实际上暗含多次"指令切换"。作者把指令切换定义为对话中相邻两个任务之间任务类型的改变;由于每个场景最多 4 个任务,最多发生 3 次切换。构造数据时,作者为每个场景精心配置四类任务(\(g_{\text{single}}, g_{\text{multi}}, g_{\text{chat}}, g_{\text{clarify}}\))的比例和切换频率,让 benchmark 忠实复现真实用户的指令切换现象。这直接考验 LLM 能否在工具调用、直接回答、主动反问这几种策略间做出恰当选择——而实验发现切换越频繁、模型掉点越狠。
4. 数据构建管线:真实日志锚定 + 多智能体模拟 + 全程人工标注
为保证数据既真实又可控,benchmark 走三步管线。场景构建:从大规模真实用户日志里总结种子应用场景与用户行为模式,迭代改写扩展成 256 个场景。任务构建:参照 ToolAlpaca 从互联网收集 1600+ 个公开 API,经核验清洗成工具集;为每个场景挑一个合理的工具子集、基于它生成 4 个任务。多智能体模拟:用 GPT-4o 搭一个多智能体系统模拟"用户"和"助手"两个角色,在给定任务与工具子集下生成初始轨迹;轨迹里每一次工具调用都经人工检查并标注为 ground truth。关键在于每一步都有人工标注与校验把关,人工检查任务时还特别强调三个维度——任务复合性、上下文化意图、指令切换,确保数据在质量、多样性上都贴合真实用户行为分布。这正是它区别于纯 LLM 合成(任务太易、评测不稳)的地方。
一个完整示例¶
以一段"查新闻"对话为例直观感受三大挑战如何交织:用户先说"帮我查 BBC 前天的新闻"(单工具);接着"昨天 ESPN"——这是 部分信息,完整意图应是"查 ESPN 昨天的新闻",LLM 得把动词补回来;然后"我想拿其中一篇的元数据"——这是 共指引用,"其中一个"无法直接确定,需要 LLM 主动 澄清,澄清后才知指向 BBC 文章 id 25814736;最后"帮我拿剩下所有文章的元数据,顺便我想知道这些文章作者写的其它文章"——这是 长程依赖 + 混合多工具,"剩下所有"同时回指第一轮和第二轮的不同文章,且需要先并行取元数据、再并行按作者查文章列表。整段对话在用户看来只是一次连贯聊天,对 LLM 却串起了部分信息推断、共指消解、澄清反问、长程依赖、并行工具编排五重考验——而且任务类型从单工具→单工具→澄清→混合多工具,发生了多次指令切换。
实验关键数据¶
主实验¶
作者在 WildToolBench 上评测了 57 个主流 LLM,涵盖闭源/开源、通用/专用、指令微调/大推理模型。核心结论:没有一个模型 session 准确率(一段对话里 4 个任务全做对)超过 15%,多数模型任务准确率低于 60%。闭源普遍强于开源,推理型模型普遍强于非推理型。
| 模型 | 任务准确率 | Session 准确率 |
|---|---|---|
| Gemini-2.0-Thinking | 61.04 | 14.45 |
| Gemini-2.5-Pro | 56.25 | 14.06 |
| Claude-4-Sonnet | 56.54 | 12.50 |
| o1 | 58.79 | 12.11 |
| GLM-4.5(最强开源) | 56.05 | 12.11 |
| GPT-4o | 54.88 | 11.72 |
| Kimi-K2 | 53.71 | 10.55 |
| GPT-5 | 49.12 | 5.86 |
| xLAM-2-70B(专用) | 48.73 | 7.81 |
| Hammer2.1-7B(专用) | 46.88 | 4.69 |
最强开源模型 GLM-4.5、Kimi-K2 已能逼近前三闭源,但专用工具模型整体反而显著弱于通用模型——专门为工具调用训练却泛化受限。按任务顺序看,对话里越靠后的任务越依赖前文信息、准确率越低。
分维度分析¶
| 分析维度 | 关键发现 |
|---|---|
| 工具编排(表 3) | 最高任务准确率仅 43.75%,混合(序列+并行)任务 \(g^{S+P}_{\text{multi}}\) 跌到 25%;峰值 OP Rate 仅 42.74%。Claude-4-Sonnet 编排最强;Gemini 系并行强、混合骤降;GLM-4.5 在序列/混合上甚至超过领先闭源 |
| 隐藏意图(图 7) | 长程依赖最难,没有模型准确率超过 50%,分数聚在 30–45 且模型间差距最大(17.3);部分信息、共指相对更易 |
| 指令切换(图 8) | 任务准确率随切换次数增加而下降,部分情况掉幅高达 30% |
| 错误分析(表 4) | 主要难点已从语法正确性转向语义与逻辑推理;"Wrong Name / Missing Info"和"Redundant Call"是最普遍的错误,参数级错误(类型/幻觉/取值)则一致偏低 |
关键发现¶
- 刷榜数字是"虚假繁荣":如图 1 所示,先前 benchmark(BFCL 各版、\(\tau\)-Bench)大多已饱和,WildToolBench 却把所有模型打回 15% 以下,说明 LLM 在真实工具使用上的鲁棒性存在巨大缺口。
- 推理确实有助于工具调用:同系列里带推理的变体一致优于不带推理的,这反驳了 Zhou et al. (2025)"推理模型在工具调用上并不优于非推理模型"的结论,指出此前评测的局限。
- "谨慎"vs"激进"两种失败画像:Gemini-2.0-Thinking 宁可拒答(Refusal 24.56%)也不乱动手(Wrong Name 仅 8.02%);Grok-4 几乎不拒答(3.72%)但选错工具的概率高得多(Wrong Name 24.07%)。
- 指令切换掉点的根因——self-conditioning:模型前一步的回应会偏置后续决策(前面用了工具就倾向继续用、前面并行就倾向继续并行),加之长对话历史稀释了对当前任务的注意力,当当前任务又需要回忆历史时干扰被进一步放大。
- WildToolBench 平均对话 5.27 轮、平均工具调用 1.92 步,显著高于 BFCL(3.75 轮、1.68 步);工具覆盖 8 大类 24 子类。
亮点与洞察¶
- "难点不在难任务,而在野生行为"这一立意很扎实:作者没有继续卷"更复杂的任务",而是从真实日志里抽出复合性、模糊性、多变性三条朴素特征,证明这些"对人很自然、对 LLM 很难"的特性才是真正的瓶颈——这个视角的转换比单纯加难更有价值。
- enumerate–match–score 是可复用的工具编排评测范式:穷举所有合法拓扑路径 + 增量匹配 + 用最小深度判最优,给出 OP/AP 两个细粒度指标,跳出了"只标一条最优路径 + 相似度打分"的旧套路,可迁移到任何需要评判"调用拓扑是否高效"的 agent 任务。
- 错误分类法落地性强:把错误拆成动作层(拒答/错名/缺信息/错误拒答/冗余调用/调用错误/过早终止)与参数层(类型/幻觉/取值),让"模型为什么差"可被结构化诊断,对模型开发者比单一 leaderboard 分数有用得多。
- 最"啊哈"的一点:GPT-5 任务准确率不算垫底(49.12)但 session 准确率只有 5.86%——一段对话里只要有一个任务翻车整段就算失败,这把"局部能用、整体不可靠"的真实落地痛点暴露得淋漓尽致。
局限与展望¶
- 作者承认的局限:为保证数据质量、多样性和对真实用户行为分布的对齐,benchmark 全程依赖人工标注,这限制了数据规模的扩展潜力;同时"保质量"和"遍历所有策略切换类型"这两个目标并存,又限制了任务的可行长度。作者表示正在探索把人工标注的 rubric 与全自动合成环境扩展管线结合,用于 agentic 模型的训练与评测。
- 自己发现的局限:初始轨迹由 GPT-4o 多智能体模拟生成(虽经人工校验),其行为分布可能仍带 GPT-4o 的偏好痕迹;1024 个任务在统计上够说明趋势,但对单个细分能力(如某类工具)的样本量有限。
- 可改进方向:可补充按真实用户分群(专家 vs 新手)的行为差异分析;OP/AP 指标目前以"最小深度"定义最优,但真实场景里最优还可能取决于工具时延/成本,可引入带权重的拓扑代价。
相关工作与启发¶
- vs BFCL-v3:BFCL-v3 率先引入多轮评测、考察序列多步能力,但任务之间独立同分布、意图与信息给得完整,不自然;WildToolBench 显式注入复合任务、隐藏意图、指令切换三种真实行为(表 1 中 Hidden Info / Instruction Transition 占比均为 100%,BFCL-v3 仅 15.7% / 39.7%)。
- vs \(\tau\)-Bench / \(\tau^2\)-Bench:它们用 LLM-as-User 模拟用户、让 agent 主动提问,比纯执行更接近真实;但 LLM 模拟出的用户过于完美、把任务变易,且模拟导致评测不稳。WildToolBench 走人在环路(human-in-the-loop)标注,把真实用户行为直接固化进数据,评测更稳更难。
- vs WorfBench / TaskBench:它们引入单轮多步工具调用、强调规划,但只标注单条最优路径、靠相似度打分,评测不够精确;WildToolBench 穷举所有合法拓扑路径并用 OP/AP 细粒度打分。
- vs T-EVAL / UltraTool / MetaTool:这些把工具调用当作单步问答评测,无法刻画多轮交互的 agent loop;WildToolBench 是完整的多轮多步对话评测。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 从真实日志提炼三大"野生"特性、把评测重心从"加难任务"转向"真实行为",立意新颖
- 实验充分度: ⭐⭐⭐⭐⭐ 57 个模型、按任务类型/顺序/编排/隐藏意图/切换频率/错误类型多维拆解,非常充分
- 写作质量: ⭐⭐⭐⭐ 框架与图示清晰,部分指标(OP/AP)需结合附录才完全读懂
- 价值: ⭐⭐⭐⭐⭐ 把"刷榜虚假繁荣"戳破,并提供可复用的编排评测范式与结构化错误诊断,对 agent 评测有实际指导意义