Agent 提示词是出了名的又长又乱:角色指令、工具 schema、格式模板、用户请求混在一起动辄几百 token。在这种高度纠缠的上下文里,模型到底怎么决定"这轮调工具"还是"直接回答",一直是笔糊涂账。10 月 7 日提交到 arXiv 的一篇论文(编号 2610.09624,已被 NeurIPS 2026 主会接收为 Poster)给出了一个相当干净的答案:这个决策可以被压缩到一个内部向量上,而且换一个动词就能翻转它。
一个动词的魔术
研究团队(Xijie Gong 等 8 位作者)的做法是把复杂的 agent 提示词蒸馏成"最小对比句对":同一个请求,只把执行类动词换成分析类动词——比如把 write 换成 discuss——模型是否调用工具的决定就会稳定翻转。write 的时候它去调代码执行器,discuss 的时候它直接开聊。这说明动词背后藏着一个紧凑的内部状态在掌舵。
他们围绕 Python、Java、C++ 构建了 500 组这样的配对提示(300 组做机制分析,200 组留作评估),然后把决策追踪到一个向量上,论文里记作 μΔ。这个向量经过了因果层面的检验:既是必要的(消融它,决策就乱),也是充分的(注入它,决策就跟着走),而且不止在构造出的提示对上成立,还泛化到了原生多轮 τ²-Bench 轨迹和不含动词的请求上。
先验与抑制的拉锯
更有意思的是机制拆解。行为消融实验显示,agent 脚手架(那些角色指令和工具说明)本身会建立一个"倾向于调用工具"的先验;接下来 Transcoder 分解揭示,分析类动词是通过一组"工具使用没有必要"的特征把这个先验压下去,而执行类动词基本不碰它。下游还有专门读取脚手架的注意力头和 MLP 特征,负责把压制后的状态读出来变成最终行为。
这套机制不是某个模型的私有小怪癖。研究者在 Qwen、Mistral、Granite 三个家族的七个模型上都复现了同样的模式——脚手架立先验,动词做抑制,向量做开关。论文代码也已开源(仓库 MI4ToolCalling)。
所以呢
对做 Agent 工程的人来说,这篇论文的价值在于把"调不调工具"从事后行为观察推进到了因果干预层面:既然 μΔ 是充分必要的,理论上就可以在推理时直接操纵它——想强制触发工具调用或者抑制过度调用,不必再苦练提示词玄学。对机制可解释性方向来说,它示范了一条路:面对纠缠的 agent 上下文,先构造最小对比对拿到可控变量,再做因果定位,而不是在原始噪声里硬凿。下次你看到模型无缘无故拒绝调工具,想想那个被动词悄悄压下去的向量——问题可能不在能力,在开关。