模型为什么会伸手:工具使用不是被教会的,是目标函数的影子

一个只会预测下一个 token 的模型,凭什么会去调用计算器和搜索引擎?从 Toolformer 的自监督起源(一次调用能留下的唯一理由是降低未来 token 的 loss),到 RLVR 时代的工具滥用幻觉(无成本时任何 ΔP>0 都值得调用),再到 knowing-doing gap(知道该用和真的去用在残差流里是两个方向)——结合五篇论文回答:模型为什么会用工具、为什么会滥用、以及为什么"知道"不等于"做到"。

先看一组不可思议的数字:Qwen3-8B 在自己 1024 次裸答里能答对 800 次以上的题目上,平均每题仍要调用 2.2 次工具;而在它几乎肯定答不对的题目上,它反而常常一次工具都不调——因为它产生了”我已经解出来了”的幻觉(The Tool-Overuse Illusion, 2026)。会做的题反复伸手,不会做的题闷头硬写。这不像一个”学会了使用工具”的智能体该有的样子。

要解释这个怪象,得回到一个更根本的问题:一个只被训练来预测下一个 token 的模型,凭什么会去调用计算器? 它没有手,没有”想查一下”的欲望,训练语料里也没有人示范过”此处应调用 API”。

如果你只带走一句话,就带走这个:

模型使用工具,从来不是因为它”理解”了工具的用处,而是因为在它的目标函数下,发出工具调用这个 token 序列比不发能拿到更低的 loss 或更高的奖励。工具使用是目标函数的影子——影子的形状忠实于目标函数的形状,包括它所有的畸变。

这篇结合五篇论文,把”为什么会伸手”拆成三问:它是怎么开始伸手的(起源)、为什么伸得停不下来(滥用)、以及最诡异的——为什么它明明知道该伸手却不伸(知行分裂)。

一问起源:第一次伸手,理由是”降低未来 token 的 loss”

回到 2023 年的 Toolformer(Schick et al., Meta)。它面对的悖论今天看依然锋利:大模型能从几个例子里学会新任务,却在算术和事实查询上输给小得多的专用系统。怎么让它学会在合适的位置调用计算器、搜索引擎、翻译器?

Toolformer 的答案是全文的钥匙,值得放慢看。它不靠人工标注”这里该调用工具”,而是让模型自己教自己,准入标准只有一条:

  1. 让模型在文本各处采样候选的 API 调用位置和参数;
  2. 真的执行这些调用,把结果插回文本;
  3. 只保留满足一个条件的调用:插入这次调用及其结果之后,模型对后续 token 的预测 loss 下降了。达不到这个标准的调用,全部丢弃;
  4. 在筛选后的语料上微调。

看清楚这个过滤器的含义:一次工具调用被允许存在的唯一理由,是它对语言建模目标有帮助。 没有”工具很有用”的先验,没有人类的示范偏好,只有冷冰冰的困惑度测试。工具使用不是被外部灌输的新能力,而是从”预测下一个 token”这个原始目标里自己长出来的行为——在”巴黎人口是”后面调用问答系统,是因为调用结果让”二百一十万”这个 token 变得好预测了。

结果验证了这条路:6.7B 的 GPT-J 装上自学的工具后,在多个任务上追平甚至超过大它数倍的模型。但更重要的是它立下的原理:模型伸不伸手,由目标函数说了算。 记住这句话,后面所有的病都从这里长出来。

二问滥用:当伸手不要钱,伸手就是理性的

时间快进到 RLVR(可验证奖励强化学习)时代。Search-R1、ReTool 这类工作让模型在”推理-调用”交错的轨迹里用 RL 自学工具使用,奖励只看最终答案对不对。能力确实上去了——但 The Tool-Overuse Illusion 系统测量了代价:

  • 不需要任何外部帮助的题目上,模型平均每题发起 0.93 次多余调用;RLVR 训练过的模型比同源基线多调用 65%;ReTool-7B 的调用轮数随训练从 2.2 一路涨到 6.8,最重度的 ReTool-32B 在简单小学数学题上平均每题调用 3.09 次;
  • 滥用不是无害的冗余:在模型能力边界内的简单题上,开启工具反而让准确率平均掉 3.29%–14.48%,极端案例 Llama3.2-3B 在简单题上掉 49%——多余的工具结果塞进上下文,扰乱了本来顺畅的推理(正是遗忘篇讲的 context rot,只是这次噪声是模型自己引进来的);
  • 最能说明问题的一条:简单题和难题之间,工具调用频率几乎没有差别(差距仅 0.05–0.15 次)。模型根本没有在按”我会不会”来决定”调不调”。

为什么会这样?论文给出的机制分析干净利落,就一行数学:模型调用工具的理性条件是期望收益超过成本,即 ΔP>λC\Delta P > \lambda \cdot C。而 RLVR 的奖励只看结果、不计成本——成本系数 λ\lambda 是零。条件退化成 ΔP>0\Delta P > 0:哪怕调用工具只带来 0.0001 的正确率提升,调用也是最优动作。

当伸手不要钱,无限伸手就是理性行为。模型没有坏,是目标函数把滥用定义成了最优解。

这是《目标函数即命运》的又一次精确应验,而且解药也顺着诊断直接长出来:同一篇论文给每次调用加 0.05 的微小惩罚(正确答案的 ±1 奖励之外),调用轮数立刻降 60–67%,准确率几乎不动;或者用知识感知的 DPO 构造”答对且少调用”胜过”答对但狂调用”的偏好对,ReTool-32B 的调用轮数砍掉 82.8%,准确率还涨了 3%。病是目标函数的病,药也只能开在目标函数上。

顺带说透那个”幻觉”:论文用 1024 次采样测出模型对每题的真实掌握度,发现调用频率和掌握度几乎不相关——模型系统性地低估自己的参数化知识(明明会的题,觉得自己不会,去调工具),同时把工具的返回当成近乎确定的真理(工具也会错,它不设防)。两头的校准都是歪的,这就是标题里的”epistemic illusion”(认知幻觉)。

三问知行分裂:它知道该伸手,手却没动

到这里你可能以为问题就是”校准差”——模型不知道自己会不会。2026 年 5 月的 Model-Adaptive Tool Necessity 用探针实验捅出了一个更深的洞:很多时候模型内部”知道”,只是这个知道传不到手上。

先看他们怎么定义”该不该用工具”。不搞人工标注(一道题对强模型不需要工具、对弱模型可能需要,全局标签没有意义),而是按模型自己的能力边界来:同一道题裸答 10 次,全对就是”不需要工具”,错哪怕一次就是”需要”。拿这个模型自适应的标尺去量实际行为,错配率触目惊心:算术任务 26.5%–54.0%,事实问答 30.8%–41.8%——而且错配方向因模型因任务而异,Qwen3-8B 在算术上狂滥用(38.2% 的题不需要却调了)、在事实问答上又变成漏用,Llama 系全面漏用。没有一个统一的偏差能解释所有错误。

然后是真正精彩的部分。他们把工具决策拆成两阶段——认知(内部表征里”我认为需要工具”)和执行(真的发出工具调用 token)——分别训练线性探针去读模型的隐状态:

  • “是否需要工具”这个判断,在中间层的表征里线性可解码——模型内部这个信息;
  • “是否会发起调用”也高度可分离(MCC ≥ 0.4);
  • 但两个探针方向的余弦相似度显示:在中间层它们部分对齐,而在决定下一个 token 的末层末位置上,两个方向几乎正交——恰恰是认知最需要接通行动的地方,线断了;
  • 错误流向分析(Sankey 图)证实:“认知正确、行动错误”的样本远多于”认知本身就错”的样本。而且这不是不自信——即使认知探针的置信度接近 0 或 1,错配照样发生。

这就是论文命名的 knowing-doing gap(知行差距):知道该用工具和真的去用工具,在模型内部是两个几乎正交的方向。附录里还有一记补刀:直接问模型”这题你需要工具吗”,它的口头回答和探针读出的内部认知相关性接近零——verbalized 的自我评估既不反映它知道什么,也不预测它会做什么。 所有靠”先问模型要不要用工具”来做路由的工程方案,都建在这块松动的地基上。

合起来:三个时代,三种”为什么”

把三问排成一条时间线,你会发现”模型为什么会使用工具”在每个时代有不同的答案,而每个答案都是当时目标函数的直接投影:

时代机制伸手的理由遗留的病
自监督(Toolformer)保留降 loss 的调用调用让后续 token 更好预测只在预训练分布内成立,泛化窄
SFT / 示范模仿学人类标注的调用轨迹别人在这里调用过学的是形似,不是因果
RLVR(Search-R1 / ReTool)结果奖励 + 自主探索调用提高拿奖励的概率λ=0\lambda = 0 → 滥用是理性的
flowchart LR
    A["目标函数<br/>loss / 奖励"] --> B["伸手行为<br/>何时调用、调用多少"]
    B --> C["行为的畸变<br/>滥用 / 漏用 / 知行分裂"]
    C -.诊断.-> A
    A2["修目标函数<br/>调用惩罚 / K-DPO"] --> B2["行为矫正<br/>调用降 60-83%, 准确率不降"]
    A -.λ=0 的病.-> A2

三条可复用的结论:

  1. 工具使用是涌现出来的策略,不是安装上去的功能。 它从目标函数里长出来,形状忠实于目标函数——包括所有畸变。想改行为,先改目标;在提示词里写”请勿过度使用工具”,是对着影子喊话。
  2. “何时不用工具”和”如何用工具”是两种难度的问题。 后者卷了三年已经不错了;前者需要模型对自己知识边界的校准——而证据显示这个校准系统性地歪着,且 RLVR 正在把它越训越歪。
  3. 模型的自述不可信,探针和行为才可信。 knowing-doing gap 意味着”知道”锁在残差流里传不到输出端。评估工具使用能力,要测行为,别问感想。

该泼的冷水

这些结论的实验域比结论听起来窄。 Tool-Overuse Illusion 只测了”Python 解释器 + 数学题”这一种组合,作者自己承认不一定推广到搜索等其他工具;knowing-doing gap 的探针方法需要开放权重,GPT、Gemini 这类闭源模型根本没法做同样的诊断——我们其实不知道前沿闭源模型的知行分裂有多严重(虽然行为层的数据不乐观:顶级模型面对无关工具也只有约 80% 的正确拒用率)。

滥用不总是需要治。 如果你的工具便宜(本地计算器)、任务是一次性的、错误可逆,多调用几次的成本可能低于精细校准的工程成本。ΔP>λC\Delta P > \lambda C 这个式子的价值恰恰在于提醒你:λ\lambda 应该由你的真实成本结构决定,不同产品该有不同的答案——API 按 token 计费的深度研究 agent 和跑在本地的代码助手,理性的伸手频率就不该一样。

Harness 能兜一部分底,但兜不了根。 上一篇讲的接口设计(返回条数上限、“查询太宽泛”的反馈)能在行为层抑制滥用,但它治标——knowing-doing gap 是权重里的病,接口拦得住多余的手,接不上断掉的线。

收束

回到开头的问题:模型为什么会使用工具?现在可以给出分层的答案——

机制层:因为发出调用 token 在它的目标函数下是高分动作。 起源层:因为 Toolformer 证明了这个高分标准可以自监督地立起来——工具调用的准入证是”让未来更可预测”。 病理层:因为奖励免费,所以伸手成瘾;因为校准歪斜,所以该伸不伸;因为知行正交,所以知道也白知道。

下次你的 agent 疯狂调用搜索、或者固执地拒绝查一个它明显不知道的事实时,别再改提示词了。先问三个问题:它的奖励里,调用工具的成本是多少?它对自己知识边界的估计,校准过吗?它是不知道,还是知道但做不到? 三个问题对应三种完全不同的修法——而它们全都不在提示词里。


论文清单

系列:① 删掉 80% 系统提示词之后 → ② 遗忘是一种能力 → ③ 什么才是好的 Harness → ④ 一个 search 工具能挖多深 → ⑤ 本篇:前四篇讲怎么给模型造工具,这篇讲模型那一侧到底发生了什么。另见 目标函数即命运——本篇是它在工具使用上的专题验证。