<!-- title: 工具过调67%：必要性校准双态塌方 -->

## 给了锤子，看什么都像钉子

工具调用（Tool Use / Function Calling）的能力评测，长期被压缩成一个维度：**调对了没有、参数填对没有**。BFCL、API-Bank、τ-bench 这类榜单横评的，几乎都是"正确率"——给定了必须调用工具的场景，模型能不能选出对的工具、吐出合法的 JSON。可真实生产环境里，决定一个 Agent 靠不靠谱的，往往不是"会不会用锤子"，而是**"该不该用锤子"**。

这一轮我们聚焦工具调用里最被低估、却直接决定成本与正确率的"必要性校准"问题。它有两种对称的崩塌：

- **过调（Over-call）**：不该调时硬调。问题能用参数知识回答、或工具根本不存在时，模型仍然捏造一个工具调用。NVIDIA When2Call 基准实测，Llama 3.1 8B 在**完全不提供任何工具**时，仍有 **67%** 的概率生成工具调用；即便是 GPT-4o，这一数字也高达 **26%**。
- **漏调（Under-call / Irrelevance miss）**：该不调时调、该调时却识别不出。BFCL 的 Irrelevance（无关性）子集里，GPT-4-Turbo 正确判断"无需调用"的比例只有 **35.6%**，Llama 3.1 70B 只有 **36.5%**——意味着超过六成的场景，它们对着一个无关工具硬调了上去。

本文基于 When2Call（NAACL 2025）、SMARTCAL（arXiv 2412.12151）与 BFCL v2 的公开实测数据，拆解这两态塌方的成因、量级与缓解手段。

---

## 一、必要性校准双态：一张对照表看清塌方

下表数据汇总自 NVIDIA When2Call 官方 README 的复现结果。其中"过调幻觉率"指**完全不提供工具时仍生成工具调用的比例**（越低越好），"无关识别率"取自 BFCL Irrelevance 子集（越高越好），F1 为 When2Call 综合决策分。

| 模型 | 过调幻觉率（无工具仍调）↓ | 无关识别率（该不调时正确）↑ | When2Call F1 ↑ | 参数规模 |
|---|---|---|---|---|
| Llama 3.1 8B Instruct | **67%** | 40.0% | 16.6 | 8B |
| Llama 3.1 70B Instruct | 57% | **36.5%** | 37.8 | 70B |
| Llama 3.2 3B Instruct | 52% | 46.6% | 17.9 | 3B |
| Qwen 2.5 7B Instruct | 21% | 51.4% | 32.0 | 7B |
| Qwen 2.5 14B Instruct | 21% | 64.7% | 36.2 | 14B |
| xLAM 8x22B R | **9.0%** | 75.2% | 34.3 | 8×22B |
| GPT-4o | 26% | 83.8% | 61.3 | — |
| GPT-4o-mini | 41% | 80.7% | 52.9 | — |
| GPT-4-Turbo-04-09 | 22% | **35.6%** | **64.6** | — |
| MNM 8B（无训练） | 19% | 36.3% | 31.9 | 8B |
| MNM 8B + RPO 训练 | **1.2%** | 78.1% | 52.4 | 8B |

这张表暴露出三个反直觉的结论，是后续分析的锚点。

---

## 二、过调态：参数知识够用，模型却非要调

When2Call 的设计里，有一类问题的"正确答案"是 `direct`——直接用模型自身知识回答即可，根本不需要工具。可绝大多数模型的默认行为是：只要系统提示里挂了工具描述，就倾向于"用一下"。

最极端的是 **Llama 3.1 8B，无工具幻觉率 67%**。这意味着哪怕你一个工具都没传，它也有三分之二的概率在回复里硬塞一个 `<TOOLCALL>` 块。Llama 3.1 70B 这个比例降到 57%，但依然过半。相比之下，专为函数调用训练的 **xLAM 8x22B 把这一数字压到 9.0%**——证明过调不是大模型的"本性"，而是**训练目标的偏向**：当后训练数据里 90% 以上的样本都是"看到问题就调工具"，模型就学会了"调用即默认"。

过调的直接代价是**钱与延迟**。每一次幻觉调用，都会触发一次真实 API（可能计费、可能限流）、一次工具结果的回流与一次额外的推理轮次。SMARTCAL 把这种现象命名为 **"tool-abuse"（工具滥用）**，并指出其根源是模型的**过度自信（overconfidence）**——它对自己"该调用"的判断置信度过高，从不给自己留 abstain（弃权）的余地。SMARTCAL 的实测显示，这一问题**与模型能力无关**：强模型和弱模型都会过度自信地滥用工具。

代码层面，过调往往藏在一个不起眼的系统提示句子里：

```text
# 典型的"鼓励过调"系统提示（问题源头）
You are a helpful assistant with access to the following tools.
Use them whenever possible to give accurate answers.
tools: [search_web, get_weather, ...]
```

"whenever possible" 这五个字，就是把模型推向过调的扳机。

---

## 三、漏调态：该认输时不认，该不调时硬调

漏调的对称面，是模型**缺乏"识别无关"与"承认不能"的能力**。When2Call 的四个标准答案类别——`direct`（直接答）、`tool_call`（调工具）、`request_for_info`（追问缺失参数）、`cannot_answer`（承认答不了）——本质上是一个**四分类校准**问题。

GPT-4-Turbo 是最讽刺的样本：它的 When2Call F1 高达 **64.6**，是闭源模型里最高的，但 BFCL Irrelevance 准确率只有 **35.6%**——也就是说，它"看起来特别会调工具"，却**分不清什么时候不该调**。Llama 3.1 70B 同样，规模从 8B 涨到 70B，When2Call F1 从 16.6 跳到 37.8，但无关识别率反而从 40.0% 跌到 36.5%。**能力上去了，判断却塌了。**

这就是必要性校准的核心矛盾：**"会调"和"知道何时调"是两个正交的能力**。一个在 BFCL Live AST 榜单上刷到 74.7% AST 准确率的 xLAM 8x22B，无关识别率是 75.2%，两者并不天然同步。许多团队拿 BFCL Overall Accuracy 选型，以为分数高就代表工具用得好，结果上线后被"无关问题乱调一通"的成本拖垮——这正是 futureagi 在《Evaluating Tool-Calling Agents 2026》里强调的："tool-calling eval 是四个 eval 问题叠在一起"，其中"必要性判断"是最容易被遗漏的那一个。

漏调态还包含一种隐蔽的"假追问"：当问题确实需要工具、但关键参数缺失时，正确答案是 `request_for_info`（追问）。弱模型倾向于**凭空捏造参数硬调**（把省略的 `held_out_param` 随便填一个默认值），而不是停下来问用户。When2Call 的训练集专门构造了这类样本——抽掉一个必要参数，看模型是追问还是瞎填。

---

## 四、双态同源：缺少 abstain 的"决策边界"

把过调和漏调并到一起看，根因只有一个：**模型的决策空间里没有一条干净的"不调用"边界**。

理想工具调用的判断，本质是一个三岔口：

```mermaid
flowchart TD
    Q[用户提问] --> D{决策门}
    D -->|参数知识充足| D1[direct 直接答<br/>不用工具]
    D -->|需要外部能力| C{有匹配工具吗?}
    D -->|参数缺失| R[request_for_info 追问]
    C -->|有 & 参数齐| T[tool_call 调用]
    C -->|有但参数缺| R
    C -->|没有| NC[cannot_answer 承认不能]

    D1 -.过调幻觉.-> T
    NC -.过调幻觉.-> T
    T -.漏调.-> D1

    classDef tax fill:#fecaca,stroke:#b91c1c,color:#7f1d1d
    classDef ok fill:#dcfce7,stroke:#15803d,color:#14532d
    class T,D1,NC,R ok
```

图中虚线就是两类税：上方虚线是**过调**（本该 direct/不能答却硬调），下方虚线是**漏调**（本该调却用知识硬答）。两条虚线共同说明——模型把"调用"当成了稳态，把"不调用"当成了需要主动争取的例外。

SMARTCAL 用**期望校准误差（ECE）**量化这种偏差。它的核心发现是：模型对自己"该不该调工具"的判断置信度系统性偏高，即"我很确定要调"，实际却经常不该调。SMARTCAL 通过一个**自感知的校准层**，在不改底座的前提下，平均把 QA 性能提升 8.6%、把 ECE 降低 21.6%。这组数字反过来印证了：必要性校准是一个**可独立优化**的环节，而不是必须靠堆参数解决。

---

## 五、量级反差：67% 与 1.2% 之间，差的是训练目标

回到那张表，最有说服力的不是闭源与开源的差距，而是 **MNM 8B 这一行的前后对比**：

- 未训练的 MNM 8B：过调幻觉率 19%，无关识别率 36.3%，F1 31.9。
- 经过 When2Call **RPO（Reward-aware Preference Optimization）** 训练后：过调幻觉率 **1.2%**，无关识别率 **78.1%**，F1 52.4。

同一个 8B 底座，过调率从 19% 砍到 1.2%（**降 16 倍**），无关识别率翻倍。RPO 做的事其实很朴素——它利用 When2Call 多选题的形式，构造**偏好对**：把"正确类别"作为 chosen，把"错误类别（通常是 tool_call）"作为 rejected，让模型学会在"该 direct"时拒绝生成调用。

```text
# When2Call 偏好训练样本（NVIDIA/When2Call）
{
  "tools": [{"name": "get_company_by_domain", ...}],
  "messages": [{"role": "user", "content": "Fetch company details."}],
  "chosen_response": "To provide company details, could you specify the domain?",
  "rejected_response": "<TOOLCALL>[{\"name\": \"get_company_by_domain\", \"arguments\": {\"domain\": \"www.apple.com\"}}]</TOOLCALL>"
}
```

关键启示：**这 67%→1.2% 的跃迁，不是靠换更大的模型，而是靠补全一类训练数据**。当前绝大多数模型的后训练语料里，"调用"样本严重过采样，"不调用 / 追问 / 拒答"样本稀缺。校准税的根，长在数据分布里。这也是为什么 When2Call 论文强调——传统 SFT 只带来温和提升，而偏好优化（DPO/RPO）"带来的收益显著更大"，因为它直接重塑了"调用 vs 不调用"的决策边界。

---

## 六、框架层的兜底：选择性调用与硬约束

既然模型层的校准难以一蹴而就，框架层能否兜住双态税？实测表明，**有限但有效**，且代价分明。

**1. 选择性调用（Selective Tool Use）。** 在工具调用前插一个轻量"必要性判断"步骤——用一个便宜的小模型或规则判断"这个问题是否真的需要工具"。SMARTCAL 的做法就是这套：先估置信度，低于阈值就走 direct / request_for_info，高于阈值才放行调用。代价是多一次推理，但能挡掉大部分过调。这与"懒加载发现税"里提到的"先判断再暴露工具"是同一种思路的镜像。

**2. 硬约束 abstain 路径。** 在系统提示里强制写入一条 `irrelevant` / `cannot_answer` 的显式出口，并给出反例。When2Call 评测脚本里，functionary / hermes / qwen2.5 等不同 prompt 模板，对同一底座能打出差出十几个点的无关识别率——**模板设计本身就是一种校准手段**。把"不要调用"作为一等公民写进提示，比写一百句"尽量准确"管用。

**3. 成本门控。** 给每个工具调用附一个预估成本，过调的代价被显式记账后，编排器可以拦截"收益 < 成本"的调用。这是过调税最直接的财务兜底——SMARTCAL 指出 tool-abuse 的危害之一就是"威胁模型可信度"，而成本门控恰好把这种隐性威胁显性化。

```mermaid
flowchart LR
    subgraph 防线[三层兜底]
        A[1. 选择性判断<br/>轻量模型估置信度] --> B{置信度≥阈值?}
        B -- 否 --> X[direct / 追问 / 拒答]
        B -- 是 --> C[2. 硬约束出口<br/>提示写入 abstain 路径]
        C --> D{工具匹配?}
        D -- 无关 --> X
        D -- 匹配 --> E[3. 成本门控<br/>收益 vs 成本]
        E --> F[放行调用]
    end
    X --> G[✓ 挡掉过调]
    F --> H[✓ 真实需求]
```

但要注意兜底的边界：框架层能降低**假阳性**（不该调却调），却很难救**假阴性**（该调却没调）——后者需要的是模型本身对工具能力的理解，提示工程难以补足。这也是为什么校准税最终还是要回到训练数据这条主路上。

---

## 七、过调即烧钱：一份必要性账本

把双态塌方翻译成钱，过调是唯一一个**只增成本、不增正确率**的失败模式。漏调至少省了一次调用（虽然牺牲了正确性），而过调是纯粹的白烧。

假设一个 Agent 每天处理 10 万次对话，其中 40% 的问题本不需要工具（这是客服、问答类场景的常见比例）。若底座是 Llama 3.1 8B 量级，过调幻觉率 67%，意味着每天有约 **2.68 万次**纯幻觉调用。按每次工具调用平均触发一次外部 API（0.005 美元）+ 一次回流推理（0.01 美元）算：

> 26,800 × $0.015 ≈ **$402/天，约 $12,060/月** 的纯浪费。

把过调率从 67% 压到 1.2%（MNM 8B + RPO 的水平），这笔账直接掉到 **$270/月**。**校准不是性能优化，是成本优化。** 这也是为什么 2026 年越来越多团队在 BFCL Overall 之外，开始单独跟踪"工具调用必要率（Tool Call Necessity Rate）"和"无关拦截率"两个指标——前者压成本，后者保正确率。

SMARTCAL 给出的另一个账本维度是 ECE：过调带来的不只是钱，还有**可信度的系统性透支**。用户每次看到 Agent 对着无关问题调一个莫名其妙的外部接口，对系统的信任都会下降一档，而这种信任损耗几乎无法用"调用准确率"挽回。

---

## 八、选型与缓解：给不同场景的处方

基于以上实测，给出分场景建议：

| 场景特征 | 主要风险 | 推荐策略 |
|---|---|---|
| 工具丰富、问题边界模糊（如通用助手） | 过调为主 | 选 xLAM/Qwen2.5 系（幻觉率 9%–21%），叠加选择性调用门控 |
| 强调正确率、可接受追问（如企业 RAG） | 漏调为主 | 选 GPT-4o（无关识别 83.8%），提示里强制 `request_for_info` 出口 |
| 成本敏感、高并发 | 过调即烧钱 | 必须做成本门控 + 轻量必要性判断，避免 GPT-4o-mini（幻觉 41%）|
| 自部署、可微调 | 双态都要治 | 用 When2Call 偏好数据做 RPO，过调可降一个数量级 |
| 闭源 API、无法训练 | 靠框架兜底 | 三层防线（选择性判断 + 硬约束 + 成本门控）全开 |

一句话总结本轮结论：**工具调用能力的真正分水岭，不在"调得多准"，而在"知道何时不调"。** BFCL 榜单上 74.7% AST 准确率的模型，可能在 67% 的时候对着空气挥锤子。必要性校准双态——过调与漏调——是工具使用评测里被忽视最久、却最该被单独立项的两个指标。When2Call 把它们从综合分里拆出来，SMARTCAL 给出校准层的解法，而 RPO 训练证明了 67%→1.2% 的跃迁可以靠数据而非参数实现。下一轮工具评测，若还只看"调对了没有"，就等于继续为这 67% 的幻觉买单。

---

## 参考来源

1. [When2Call: When (not) to Call Tools（NVIDIA，NAACL 2025，arXiv:2504.18851）](https://arxiv.org/abs/2504.18851) — 提出评测"何时（不）调用工具"决策的基准，含 direct/tool_call/request_for_info/cannot_answer 四分类，并给出 RPO 偏好训练方案。本文 67%→1.2%、过调幻觉率、无关识别率等核心数据来源。
2. [NVIDIA/When2Call（GitHub 数据集与复现结果）](https://github.com/NVIDIA/When2Call) — 公开 Llama/Qwen/xLAM/GPT-4o 系列在 When2Call、BFCL Live AST、BFCL Irrelevance 上的实测分数表，本文对比表格与 MNM 前后对比数据来源。
3. [SMARTCAL: An Approach to Self-Aware Tool-Use Evaluation and Calibration（arXiv:2412.12151）](https://arxiv.org/abs/2412.12151) — 首次系统命名 LLM 的 "tool-abuse"（工具滥用与过度自信）行为，提出校准层方案，QA +8.6%、ECE -21.6%，本文校准税与 overconfidence 论述来源。
4. [Evaluating Tool-Calling Agents 2026（Future AGI）](https://futureagi.com/blog/evaluating-tool-calling-agents-2026/) — 指出"tool-calling eval 是四个 eval 问题叠在一起"，强调必要性判断是被遗漏的一环，本文选型框架参考。
5. [Tool Use and Function Calling in AI Agents — Standards, Benchmarks（Zylos.ai）](https://zylos.ai/research/2026-04-07-tool-use-function-calling-standards-benchmarks/) — 2026 年各主流 LLM 工具调用标准与基准综述，本文行业现状与指标演进背景来源。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
