Agent训练越练越爱乱调工具?这篇论文让模型自己学会"什么时候该闭嘴查工具"

一篇关于 Agentic RL 的"反直觉"修正:奖励涨了,工具调用却越来越冗余——AKBE 用一个轻巧的"双路径 rollout"在线探测模型的知识边界,让它自己学会区分"哪些题该查、哪些题脑子里有答案"。


写在前面

最近在跟一个做检索增强 Agent 的朋友聊,他抛出来一个挺扎心的现象:

"我们用 RL 训了一版 Search Agent,benchmark 是涨了,但行为越来越奇怪——简单问题它也要去搜两轮,搜回来一堆噪声又把自己给坑了。reward 在涨,但实际工具效率反而比初始版本还差。"

这是一个挺普遍的痛点。Agentic RL 训练经常会让模型变成"工具调用上瘾"的状态——只要 reward 签了"答对就给分",模型就倾向于"多搜一搜更安全",哪怕这个问题它本来就会答。最后模型干脆放弃了内在知识,凡事都先 search 一下,既慢、又容易被检索噪声带偏。

这篇 5 月底挂出来的论文 AKBE,就是来正面解决这个问题的。它的解法挺优雅:在训练过程中,让模型自己用"不带工具"的 rollout 探一探自己的知识边界——能裸答的题就别再搜了。

读完之后我的第一反应是:这是个很"工程师味"的设计,没有炫技的 reward shaping,没有引入 PRM,就是把 RL 训练里"白送"的一个观测——"如果不让它用工具,它能不能答对?"——拿来当监督信号。简单,但恰好踩在 Agentic RL 当前最大的痛点上。

下面把这篇论文掰开聊聊。


论文信息

  • 标题:Efficient Agentic Reinforcement Learning with On-Policy Intrinsic Knowledge Boundary Enhancement
  • 作者:Dingwei Chen, Zefang Zong, Zhipeng Ma, Leo Luo, Yang Li, Chengming Li, Peng Chen, Jie Jiang
  • 机构:腾讯、香港中文大学、深圳 MSU-BIT 大学
  • arXiv2605.26952
  • 代码CuSO4-Chen/AKBE

一句话核心摘要:用一个"和 with-tool 并行跑的 no-tool rollout"在线探测模型的内在知识边界,把每个问题分成"必须用工具 / 不用也行 / 用了反而更糟 / 都不行"四类,给前三类分别构造监督信号。在 7 个 QA benchmark 上 EM 平均 +1.85,工具调用减少 18%,工具生产率涨了 25%——而且训练还更快。 不是底层 RL 算法的突破,但是一个特别精准的"插件"式设计,思路可以直接搬到自己的 Agent 训练里。


1. 问题:reward 在涨,但 Agent 在"变蠢"

1.1 一个反直觉的训练曲线

直接上一张让我有点皱眉的图。

图1:GRPO 训练过程中冗余工具调用的增长

图 1:作者追踪了一组在训练早期(Step 20)就能用 0 / 1 / 2 次工具调用答对的样本,看它们在训练后期(Step 240)变成了什么样。左图:所有这些样本的工具调用次数都被显著推高。右图:原本答对的轨迹被分成三类——original(结构没变还是对的)、redundant(依然对,但加了多余的工具调用)、hallucinated(多调用反而把自己搞错了)。

这张图其实就是这篇论文的灵魂。

你看 Step 20 的时候,TC=0 的那一栏是有相当一部分样本的——意思是这些题模型不查也能答对,它本来就知道。但训练到 Step 240,这些题里有相当一部分变成了 redundant 甚至 hallucinated。你想想看,GRPO 训练实际上在惩罚"我自己会"这种行为——因为只要"调用一次工具再答出来"也能拿到 reward,而且边际风险更低,模型就会被推着往"凡事先搜一下"那个方向走。

这是一个典型的 reward hacking。但它狡猾的地方在于:reward 本身没有作弊,每次答对都是货真价实的答对。问题出在 reward 没法区分"靠工具答对"和"靠自己答对",于是 RL 就把"靠工具"当成了更安全的策略。

1.2 现有方案为什么不够?

业界其实意识到这个问题了,主流应对方式是 reward shaping——往 reward 里加一个"调工具就扣分"的惩罚项。OTC-PO 就是这条路上的代表,从论文 Table 1 里能看到 OTC-PO 的工具调用次数(TC=2.06)确实是最低的。

但这种方案有个很"粗暴"的问题:它对所有问题一视同仁。不管你这道题是多跳推理需要查 3 次维基的硬骨头,还是一个常识问题,惩罚都一样砸下去。结果就是 OTC-PO 在 EM 上明显比不带惩罚的方法低——它确实少调工具了,但也把"该调的工具"也省掉了。Qwen3-4B 上 OTC-PO 的多跳平均 EM 是 41.27,而 Search-R1 是 45.40,差了 4 个点

这就是这篇论文盯上的缝隙:惩罚不该是全局均匀的,应该按问题来——能裸答的就别罚正常工具用法,必须查的就别误伤。 但问题来了,怎么知道哪些题"能裸答"?


2. 核心想法:让模型自己告诉你"它会不会"

2.1 一个"白送"的观测信号

这篇论文最核心的一击其实就一句话:

在每个训练 step,对每个问题 q,除了正常跑 with-tool rollout,再额外跑一组 no-tool rollout——禁止它用工具,看它能不能裸答出来。如果有任何一条 no-tool 轨迹答对了,说明这道题在它"知识边界内"。

这个想法之所以漂亮,有两个原因:

  1. 它是 on-policy 的。每次重新探测,所以模型变强了它的边界也跟着扩。不是事先用一个 SFT 模型标完静态边界然后训练,而是每个 step 动态更新。
  2. No-tool rollout 几乎是免费的。没有工具调用就没有环境延迟(不用真的去检索 wiki),整个过程纯粹是模型在 GPU 上吐 token,比 with-tool rollout 快得多。

我看到这里其实愣了一下——这个观测信号一直就在那儿,怎么就没人这么用过?回过头想,可能因为大家的本能反应是"加 reward 项"或者"加 critic",没意识到最简单的那个东西就是直接上一组对照实验

2.2 框架全图

图2:AKBE 整体框架

图 2:AKBE 框架。每个问题并行跑 with-tool(G_wt = 16 条)和 no-tool(G_nt = 8 条)两路 rollout,根据各自有无答对,把问题分到四个类别(Tool-dependent / Efficiency / Hallucination / Both-wrong),每类构造对应的监督信号,作为辅助 loss 加到原始 RL 目标上。

整个框架就这么干净——左边是双路 rollout,中间是一个 4 格分类器(基于 WT、NT 两个二值变量),右边是按格子构造的监督目标,最终拼成 loss。


3. 方法细节:一张 2×2 表格搞定一切

3.1 知识边界的形式化定义

\(G_{wt}\) 条 with-tool 轨迹的"有没有至少一条对"为 WT ∈ {0, 1},\(G_{nt}\) 条 no-tool 轨迹的"有没有至少一条对"为 NT ∈ {0, 1}。论文把知识边界直接定义成:

\[\text{KB}(q, \pi_\theta) = \mathbb{1}[\exists\,\hat{y}_q^{(i)}\,\text{s.t.}\,R(\hat{y}_q^{(i)})=1]\]

也就是 KB = NT。NT=1 表示这题在模型的内在知识范围里,KB=0 表示必须靠工具才能答出。

3.2 四类轨迹和它们对应的"教学"信号

整个方法的灵魂在这张表里:

类别 (WT, NT) 含义 应该教模型什么
Tool-dependent (✓, ✗) 必须用工具才答得对 用工具,而且尽量少调——挑那条用最少 TC 答对的 with-tool 轨迹做目标
Efficiency (✓, ✓) 不用工具也行,调了工具也对 教它省掉冗余调用——挑一条正确的 no-tool 轨迹做目标
Hallucination (✗, ✓) 不用工具反而对,用了工具反而错 工具引入了噪声,别去搜——还是挑一条正确 no-tool 轨迹
Both-wrong (✗, ✗) 都答不对 这题对它来说太难了,不构造信号,让原始 RL 自己处理

这个四分法的精妙之处在于,它没有一个"惩罚工具"的项——所有信号都是正向的("做这件对的事"),不是负向的("别做那件错的事")。这一点后面在 CE vs DPO 的消融里还会再细说。

3.3 联合训练目标

\[\mathcal{L}_{\text{total}} = \mathcal{L}_{\text{GRPO}} + \lambda \cdot \mathcal{L}_{\text{AKBE}}\]

其中 AKBE 的辅助损失就是一个普通的交叉熵:

\[\mathcal{L}_{\text{AKBE}} = -\sum_{q\in\mathcal{S}}\log\pi_\theta(y_q^*|q)\]

\(\mathcal{S}\) 是 Tool-dependent / Efficiency / Hallucination 三类问题的集合,\(y_q^*\) 是上表里挑出来的那条目标轨迹。说到底就是 SFT 风格的 next-token prediction,但目标轨迹是从当前 policy 自己采出来的——这就是"on-policy"的来源,也是这套设计能跟 RL 持续协同进化的关键。

3.4 系数 λ 怎么选

这块有个挺漂亮的理论推导(附录 B):基于"AKBE 梯度的贡献量级应该和 GRPO 在 advantage 标准差量级上对齐",作者推出 λ ≈ 1/G_wt。论文里 G_wt = 16,所以理论最优 λ ≈ 0.0625。

实验呢?最优 λ = 0.05。和理论值几乎贴脸。这种理论与实验互相印证的细节,让我对这套方法的可解释性印象不错——不是炼丹炼出来的魔法数。

3.5 整个训练流程(伪代码)

对 batch 里每个问题 q:
    1. 采 G_wt = 16 条 with-tool 轨迹
    2. 采 G_nt = 8  条 no-tool 轨迹  (没有环境调用,便宜)
    3. WT = 是否有 with-tool 轨迹答对
    4. NT = 是否有 no-tool 轨迹答对
    5. 按 (WT, NT) 分到四个 bucket,构造 y_q*:
         Tool-dependent → 取 TC 最少的正确 with-tool
         Efficiency     → 随机一条正确 no-tool
         Hallucination  → 随机一条正确 no-tool
         Both-wrong     → 跳过
    6. L_AKBE = -Σ log π(y_q* | q)

L_total = L_GRPO + λ · L_AKBE
反向传播

4. 实验:是真的能打,还是又一篇刷榜

4.1 主实验

7 个 QA benchmark,分两组:multi-hop(HotpotQA / 2Wiki / MuSiQue / Bamboogle)和 single-hop(NQ / TriviaQA / PopQA)。两个 backbone:Qwen3-4B 和 Qwen2.5-7B。

先看 Qwen3-4B 上的 multi-hop(最能体现"该不该调工具"的场景):

方法 多跳平均 EM TC ↓ TP ↑
ReAct 30.01 3.43 8.75
Search-R1 (≈ GRPO 版) 45.40 3.16 14.33
OTC-PO(reward shaping 派代表) 41.27 2.06 20.03
β-GRPO 46.39 3.01 15.41
AKBE (Ours) 46.82 2.60 18.01

读这个表的时候,几个细节挺关键:

  1. OTC-PO 的 TC 最低(2.06),但 EM 也最低(41.27)——这就是前面说的"一刀切惩罚"的代价。
  2. AKBE 的 TC(2.60)虽然没 OTC-PO 低,但 EM 反超了 5.5 个点,并且 TP(每次工具调用产出的正确率)也几乎翻了一倍。
  3. AKBE vs 最强基线 β-GRPO:EM +0.43,TC -0.41,TP +2.6——基本是"准确率涨、工具调用降、效率涨"的三赢。

七个 benchmark 综合起来,作者宣称的 EM +1.85 / TC -18% / TP +25% 是站得住的。

4.2 在不同 RL 算法上即插即用

这块我比较关心。光在 GRPO 上 work 不算什么,能挂在不同 RL 算法后面才说明这套思想是 robust 的。

图3:训练早期 vs 后期的轨迹类别分布迁移

图 3:Qwen2.5-7B Multi-Hop 任务上,早期 vs 后期训练步的四类轨迹分布。Both-wrong 类样本下降了 5.8%,Efficiency 类涨了 4.2%——这意味着随着训练推进,越来越多原本"两路都不会"的题被纳入了知识边界,模型把外部知识真的内化了。

这张图其实回答了一个隐忧:会不会模型只是学会了在已知问题上少调工具,但真正的能力没涨? 答案是 No——Both-wrong 的下降说明它整体能力在变强,Efficiency 的上升说明它把工具调用从"必需品"变成"按需品"。这才是 KB 真正在扩张的证据。

再看消融(表 2):把 AKBE 挂在 GRPO / DAPO / GSPO / AEPO 四种 RL 算法后面:

Backbone RL 原始 EM +AKBE EM 原始 TC +AKBE TC
GRPO 45.40 46.82 3.16 2.60
DAPO 46.65 47.01 2.61 2.38
GSPO 45.69 46.24 3.23 2.84
AEPO 46.96 47.50 3.08 2.73

四种算法全都涨——EM 涨、TC 降。这个一致性比单独打榜要更让我相信这个方法的本质有效性。

4.3 信号类别消融:每一类都不是凑数的

这个消融特别能看出方法设计的精度:

配置 Multi-Hop EM TC TP
GRPO baseline 45.40 3.16 14.33
AKBE 完整 46.86 2.60 18.02
- 去掉 Tool-dependent 43.56 2.15 20.26
- 去掉 Efficiency 46.50 2.92 15.93
- 去掉 Hallucination 46.55 2.58 18.04
只留 Tool-dependent 46.02 2.85 16.15

最让我意外的是 去掉 Tool-dependent 直接跌破 baseline(43.56 < 45.40)。

为什么?我的理解是:Efficiency 和 Hallucination 这两类信号都是在教模型不调工具——如果只剩这俩,整个 AKBE 就退化成了一个"反工具"的力,模型会过度抑制必要的工具调用。Tool-dependent 这一项扮演的是"刹车"——它在模型偷懒不调工具的时候硬把它拽回来,确保该用工具的题还得用。

三类信号是互相校准的,少了 Tool-dependent,剩下的 Efficiency 和 Hallucination 就会跑偏成"全局抑制工具"——和 OTC-PO 那种粗粒度方案没本质区别。这个消融很好地论证了 4 分类设计的必要性。

4.4 系数 λ 的敏感性分析

图4:系数 λ 对性能的影响

图 4:λ ∈ [0.05, 0.2](绿色区域)AKBE 持续优于 GRPO;λ > 0.2 后 EM 开始崩——边界目标过强会过度抑制工具调用。最优点 λ = 0.05 与理论推导的 1/G_wt ≈ 0.0625 高度吻合。

值得一提的是,TC 和 TP 在所有 λ 取值下都比 GRPO 好——也就是说 λ 取得不准最坏的结果就是"效率涨但精度没涨",不会出现"效率没涨精度还掉"的双输。这个稳健性挺友好的。

4.5 训练更快了

图5:每步训练时间对比

图 5:尽管 AKBE 多了 8 条 no-tool rollout,每个训练步的总时间反而比 GRPO 快约 15%。原因有二:(1) no-tool rollout 没有工具调用环境延迟,几乎纯粹消耗 GPU;(2) 训练后期工具调用次数显著降低,整体 with-tool rollout 也更快。

这点出乎我意料。我一开始的直觉是"多 8 条 rollout 总该慢一点",结果居然反而快了 15%。核心原因是工具调用的真实成本远高于额外 token 生成的成本——在很多 Agentic 训练里,环境延迟(检索、API 调用)才是 throughput 瓶颈。

附录 E 还给了两个细节:训练后期 AKBE 的工具调用减少 8.4%,平均响应长度从 2300 token 降到 1700,砍掉了 23 个百分点。响应更短不只是省钱,还意味着上下文里的噪声更少,这在很多生产场景里是直接收益。

4.6 一个有趣的"反例":DPO 不行

附录里有个很有意思的对比实验——把 AKBE 的 CE loss 换成 DPO 风格(用 with-tool 错的 vs no-tool 对的做偏好对)。结果 DPO 在训练早期效果很好,但后期会崩

作者的解释让我点头:DPO 是基于"提升 chosen 概率,压低 rejected 概率"的对比学习。但在 AKBE 这个场景下,chosen(no-tool 正确)和 rejected(with-tool 错)的轨迹共享了大量 token——尤其是前缀的"思考"部分。DPO 不分青红皂白把 rejected 整体压下去,等于把那些无辜的共享 token 也一起惩罚了,最终导致策略整体崩塌。

CE 只做正向监督("学这条对的"),不去主动压谁,反而稳得多。这个设计选择不是随便选的,是踩过坑的。


5. 我的判断

5.1 这篇论文真正值钱的地方在哪

我认为这篇论文最有价值的不是 AKBE 这个方法本身(虽然方法已经很好用),而是它把"知识边界"这个抽象概念变成了一个可以在线、便宜地探测的具体操作——就一组 no-tool rollout。

这个操作一旦成立,能延伸出很多事: - 数据筛选:可以用同样的方法在训练前筛出哪些题真的需要工具,哪些是 trivial 的; - 推理时路由:推理时跑一个小规模的 no-tool"探测包"判断要不要走 RAG,可能是个比"训一个分类器"更鲁棒的路由方案; - 多工具场景扩展:现在论文只考虑了"用 / 不用工具"二元,扩到"用工具 A / 用工具 B / 不用"完全是顺手的事。

5.2 这篇论文不够好的地方

得说几个我有保留的点:

  1. 场景还偏窄。 整个评估都在 QA + 检索这一个场景里,工具基本就是 wiki retriever。Agentic RL 的真正硬骨头是 code execution、多模态、长程任务这些。AKBE 的"知识边界"在这些场景下还成不成立?比如代码生成里,"不让它执行"这个 no-tool 路径几乎没意义——它能写出对的代码但你没法验证。这块论文没碰,留了不少空白。

  2. G_nt = 8 这个开销不算小。 论文说"no-tool rollout 几乎免费",但 8 条 rollout 的 token 生成成本在长上下文场景下会变成实际负担。如果 max_response_length 不是 6192 而是 32K,故事可能就不一样了。论文宣称的"快 15%"是建立在工具调用很贵 + 响应不长的前提上的。

  3. λ 是固定的。 论文自己也提到了这个局限——训练全程一个 λ。但直觉上训练早期模型啥都不会,多调工具是合理的;训练后期能力强了,应该把 λ 拧大让它更激进地省工具。一个 schedule 应该会更好,作者也承认了这是 future work。

  4. Both-wrong 类被丢掉了。 这一类样本在训练早期占比并不小,全部跳过等于浪费了一部分数据。能不能用 self-improve 或者 weak-to-strong distillation 把这部分捞回来?也是开放问题。

5.3 工程上能学到什么

如果你正在做 Agentic RL(无论是 search agent 还是 tool agent),我觉得有几点直接可以借鉴:

  1. train 的时候别只看 reward 涨没涨,盯一下 TC 和 TP 这种工具效率指标。 reward hacking 经常就藏在"指标涨但行为变怪"里,TC 和 TP 是早期预警。

  2. 把 no-tool rollout 加进你的训练 pipeline。 即便不上 AKBE 这套完整方法,光是把"模型在没有工具时能不能答对"作为一个监控指标,就能告诉你很多关于模型能力变化的信息。

  3. 正向监督优于负向惩罚。 AKBE 的设计哲学是"教它做对的"而不是"罚它做错的",这个思路在很多 LLM 训练问题上都成立。CE vs DPO 的对比就是一个具体例子。

  4. on-policy 比 offline 重要。 论文里 Offline AKBE(一次性用初始模型探边界然后训练)的表现明显比 Online AKBE 差。模型能力是动态变化的,静态边界永远在被新策略甩开——这点对所有"基于模型自身能力做训练数据筛选"的工作都适用。


6. 收尾

回到开头那个朋友的吐槽——"训完反而工具调用更冗余了"。这篇论文给的答案不是"再加一个惩罚项",而是"让模型自己说明它会不会"。

这是一个很 LLM-native 的思路。LLM 自己就是最强的"它会不会"的评估器,你只需要让它在受控条件下(没有工具)跑一遍,结果就摆在那。我们之前总是想着用 reward shaping、用 critic、用 PRM 来注入这个信号,其实最直接的那个观测一直在那。

我觉得这条思路的价值会超出 AKBE 这个具体方法。用 policy 自己的对照 rollout 探测它自身的某种属性——这是个挺通用的范式,可以套到很多其他 Agent 训练的子问题上:探测它的 hallucination 倾向、探测它的格式遵循能力、探测它对某种 prompt pattern 的鲁棒性。每一个都能转成"该让它做什么"的监督信号。

如果你在做 Agent + RL 这条线,这篇论文值得花一个小时认真读一下。代码也开源了(CuSO4-Chen/AKBE),上手成本不高。


觉得有启发的话,欢迎点赞、在看、转发。跟进最新 AI 前沿,关注我