ARPO
Agentic RL · arXiv 2025

ARPO:工具调用后的高熵时刻,才是该多采样几步的地方

多轮工具调用的轨迹很长,轨迹级 RL 只在终点记一次账。ARPO 先量出「工具返回后的 10–50 个 token 熵会陡升」,再用 P = α + β·ΔH 在超过阈值时从当前步分支采样;10 个推理任务上三个骨干的 Avg 都高于 GRPO/DAPO/Reinforce++,深度搜索也高于 GRPO。代价是新增 α、β、τ 三个超参,「一半工具调用」只在 Qwen2.5-7B 与 GRPO 的对比曲线上验证。

Guanting Dong、Hangyu Mao 等 · 中国人民大学 / 快手 原文 v1 ↗ 代码 ↗
TL;DR · 30 秒抓住核心

多轮工具调用把一条轨迹拉得很长,轨迹级 RL 以完整轨迹为采样单位,奖励在末端才出现,中间每个工具调用步没有单独的信用分配。作者先测到:工具返回后的 10–50 个 token 内,生成熵会陡升,搜索反馈比 Python 反馈更明显。

ARPO 把「熵变化」变成分支条件:每步工具调用后多生成 k 个 token,算 ΔH 与 P = α + β·ΔH;P 超过阈值 τ 就在该步展开 Z 条 partial rollout,把预算从「多走几条全程」改成「在关键岔路多试几种」。分支后的共享前缀与独立分支用 GRPO 的重要性采样比率做软优势归因。

结果:Table 1 的 10 个推理任务上,ARPO 在 Qwen2.5-3B、Llama3.1-8B、Qwen2.5-7B 三个骨干的 Avg 都最高;Table 2 的 deep search 上,Qwen3-8B/14B 的 GAIA Avg 都比 GRPO 高 6.8 个百分点。Figure 7 只在 Qwen2.5-7B 上比较 GRPO 的训练工具调用数;§4.6 正文称 ARPO 用一半工具调用达到更高准确率。

58.3
Qwen2.5-7B 十任务均分;同表 GRPO 56.5
+4.2pp
Llama3.1-8B 相对最佳轨迹基线(55.3−51.1)
约一半 half
训练工具调用预算;Qwen2.5-7B vs GRPO
01

工具返回之后,模型的熵会先陡升一段——这正是轨迹级 RL 看不见的地方

读完这节你应该知道:为什么多轮工具调用不能简单套用单轮 RL 的采样与记账方式。

Agentic RL 的目标仍是最大化带 KL 约束的期望奖励:maxπθ E[rφ(x, y)] − β·DKL(πθ ‖ πref)(Eq. 1)。区别在于 y 不再是一段一次性生成的回答,而是「思考 → 调用搜索/Python → 读返回 → 再思考」的多轮轨迹。轨迹级算法(GRPO、DAPO、Reinforce++)以完整轨迹为采样单位,奖励只在末端出现;中间哪一步工具调用值得多探索,算法本身没有信号。

论文 §2.2 先做了测量:对搜索型与 Python 型两种 agent,逐 token 统计生成熵。Figure 2 的三条观察是——(1) 每次工具调用后的前 10–50 个 token,熵会陡升;(2) 早期推理阶段熵也会上升,但仍低于收到工具反馈之后;(3) 搜索反馈带来的不确定性大于 Python 反馈。作者把原因归为外部反馈与模型内部推理之间的分布偏移:搜索结果是一大段自然语言,Python 返回的是确定性数字。

观察 1

10–50 token 的熵峰

工具调用后,下一段生成的概率分布明显变平;这是「模型正在整合新信息」的直接读数。Figure 2

观察 2

搜索 > Python

搜索返回长文本,熵波动更大;Python 返回数字,熵波动更小。两者不能用同一个固定分支预算。Figure 2

观察 3

轨迹级记账的盲区

整条轨迹只有一个末端奖励;工具调用步没有独立的优势估计,探索只能靠「多采样整条轨迹」碰运气。§1

02

提示式工具调用不够,轨迹级 RL 又只在终点记账

读完这节你应该知道:ARPO 之前的两种主流做法各自卡在哪里,以及论文的对比边界。

路线 A

TIR prompting:只改提示,不改策略

Tool-integrated reasoning 通过提示让模型在推理中调用工具,不做 RL。Table 1 里它在 Qwen 两个骨干上反而低于直接推理:Qwen2.5-3B 从 26.1 降到 25.1,Qwen2.5-7B 从 32.0 降到 31.0;但 Llama3.1-8B 从 28.8 升到 36.3。论文 §4.5 的概括是「limited and even lower than direct reasoning」,Table 1 并不支持这句话在 Llama 上也成立。

Table 1 · Avg 列

路线 B

轨迹级 RL:奖励只在末端出现

GRPO、DAPO、Reinforce++ 都以完整轨迹为样本。Table 1 的 Avg 显示它们能把 Qwen2.5-3B 从 26.1 拉到 49.7–50.6、把 Llama3.1-8B 从 28.8 拉到 50.4–51.1、把 Qwen2.5-7B 从 32.0 拉到 54.8–56.5;但论文指出 DAPO 在单轮推理更强,在多轮工具调用、尤其知识密集型任务上反而掉队。mid-trajectory 的工具调用步仍没有独立的探索信号。

Table 1 · Avg 列;§4.5

还有一类相关工作是 entropy-based RL:把 token 熵用于探索或作为训练信号。ARPO 的差别不是「第一次用熵」,而是把熵变化绑定到工具调用后的步级分支,并让分支产生的共享前缀/独立路径进入同一个 GRPO 目标。论文在 §2.2 先测 agentic 场景的熵分布,再在 §3.1 把它写成分支概率;这条「先测量、再定规则」的链路是页面的重点。

03

核心机制:ΔH 超过阈值就分支,分支后的优势用 GRPO 软归因

读完这节你应该知道:熵怎么算、分支概率怎么定、预算怎么收口,以及共享前缀为什么不需要额外的硬编码优势。

3.1 熵、熵变化、分支概率

对第 t 步、词表大小 V,token 级生成熵定义为:

Ht = − Σj=1V pt,j log pt,j
Eq. 3;pt = Softmax(zt / τdecode)。这里的 τdecode 是解码温度,不是分支阈值 τ。

每步工具调用后,模型先额外生成 k 个 token,得到 Ht,再与初始熵 Hinitial 比较:

ΔHt = Normalize(Ht − Hinitial)
Eq. 4;原文把 Normalize 解释为「summing all the values of ΔH in dividing by the vocab size V」。
Pt = α + β·ΔHt;若 Pt > τ 则 Branch(Z),否则 Continue
Eq. 5;α 是基础采样概率,β 是熵的权重,Z 是从当前节点展开的 partial rollout 数。原文复用了 β 符号:Eq. 1 的 β 是 KL 系数,Eq. 5 的 β 是熵权重,两者不是同一个参数。

四个步骤按 §3.1 的顺序是:(1) 初始化——用 N 条全局轨迹占住预算,剩余 M−N 条留给 partial sampling,并记录每条轨迹前 k 个 token 的初始熵;(2) 监控——每次工具调用后生成 k 个 token,算 ΔH;(3) 分支——P 超过 τ 就展开 Z 条 partial rollout,否则沿当前轨迹继续;(4) 终止——分叉总数达到 M−N 就停止分支,若所有路径提前结束,则补足到 M−N 条(即再补 M−N−Z 条)。

3.2 共享前缀与独立分支:硬分配 vs 软分配

分支会产生两种 token:分支前的共享前缀、分支后的独立路径。硬分配(Hard Advantage Estimation)显式给共享前缀一个平均优势 Âsharedi,t = (1/d) Σdi=1 Âi,t;软分配(Soft Advantage Estimation)不显式改写优势,而是利用 GRPO 的重要性采样比率:

ri,t(θ) = πθ(yi,t | x, yi,<t) / πref(yi,t | x, yi,<t)
Eq. 7;共享前缀的 token 在两条轨迹上拥有相同前缀,因此得到相同的比率;独立 token 的比率不同。

论文的解释是:共享前缀的 token 在 GRPO 组内被同一个平均优势驱动,天然接近硬分配里的 Âshared;独立 token 则保留各自的优势。Figure 5 的对比显示 soft 设置训练中奖励更高、更稳,因此 ARPO 默认用 soft。注意这是论文在自身实验设置下的选择,不是「soft 一定优于 hard」的普遍结论。

分支判定
P = 0.50 + 0.20 × 0.40 = 0.58;0.58 > 0.50,触发 Branch(Z)。

示意:M=16、N=8(Appendix C.2 的配置),剩余 8 条预算留给 partial sampling;α=0.5、β=0.2、τ=0.5 取自 Appendix C.2/C.4;Z 的实际取值由论文实验配置决定,这里不把它写成固定默认值。

ΔH=+0.40 是交互示意值,对应 Figure 8 左图内最优的 entropy value 0.4;论文默认的 entropy weight 是 0.2(Appendix C.2/C.4),两者不是同一个量。

手算两组参数 与 JS 同口径,保留两位小数

组 1(默认):α=0.50,β=0.20,ΔH=0.40,τ=0.50。P = 0.50 + 0.20×0.40 = 0.50 + 0.08 = 0.58;0.58 > 0.50 → Branch(Z)。

组 2(切换「熵没有变化」):α=0.50,β=0.20,ΔH=0.00,τ=0.50。P = 0.50 + 0.20×0.00 = 0.50;0.50 > 0.50 为假 → Continue。边界是严格大于,等于阈值不分支。

若把 ΔH 拉到 −0.20,P = 0.50 − 0.04 = 0.46,同样 Continue。µ 是 GRPO 内层迭代数(Algorithm 1 第 28 行);Z 的取值不在这个示意里;这里只验证 Eq. 5 的算术。

04

工程账:两阶段训练、128 的 batch、8/16 张 H800

读完这节你应该知道:复现这套实验需要哪些数据、卡数和训练轮次,以及哪些开销被论文排除在 loss 之外。

阶段 1 · 冷启动 SFT

先教会模型「怎么调用工具」

框架 LlamaFactory,骨干 Qwen2.5-3B-Instruct;学习率 7×10−6,batch size 128,weight decay 0.1,训练 3 个 epoch;BF16,最大输入 4096 token,DeepSpeed ZeRO-3 + FlashAttention2。数据来自 Tool-Star 的 54K 样本,再加 STILL 的 0.8K 数学数据。

§4.3 · 54K + 0.8K 数据;训练超参见 Appendix C.1

阶段 2 · ARPO

工具返回不计 loss,只学文本推理与工具请求

基于 VERL;所有工具调用结果从 loss 中排除,避免模型偏向工具输出。总训练 batch 128,PPO mini-batch 16,global rollout 16,initial sampling 8;reasoning 每个交互响应上限 4096 token,deep search 扩到 8192。熵权重 0.2、α 0.5、τ 0.5,GRPO 的 KL 系数设为 0。

Appendix C.2;Appendix C.4

训练轮次与卡数:deep reasoning 跑 2 个 epoch,7B 模型用 8 张 H800;deep search 因只有 1K 样本,跑 5 个 epoch,8B 沿用同样参数,14B 用 16 张 H800。RL 数据方面,deep reasoning 用 Tool-Star 的 10K 样本,deep search 只用 1K 混合难搜索样本。

奖励是分层设计(Eq. 8):格式正确且 Acc. > 0 时,R = max(Acc. + rM, Acc.);格式正确但 Acc. = 0 时 R = 0;格式错误时 R = −1。若同时出现 <search> 与 <python>,额外给 rM = 0.1。

R = max(Acc. + rM, Acc.) if Format Good & Acc.>0;0 if Format Good & Acc.=0;−1 otherwise
Eq. 8;rM = 0.1 if ∃(<search> & <python>),否则 0。

复杂度方面,论文称在 global expansion size 与每条轨迹 token 数都为 n 的假设下,ARPO 把每次 rollout 的复杂度从轨迹级 RL 的 O(n2) 降到 O(n log n) 到 O(n2) 之间;脚注明确说这个估计没有计入 token 级熵计算的小开销。这个上界依赖分支结构,不能直接外推到所有 M、N、Z 组合。推断(依据:§3.1 的 O(n log n)–O(n2) 上界建立在 global expansion size 与每条轨迹 token 数都为 n 的假设上)

05

一轮 ARPO:全局采样 → 工具调用 → 熵探针 → 分支或继续 → 奖励 → GRPO

读完这节你应该知道:熵信号在流程中的位置,以及「分支」和「预算」如何收口。

问题 q prompt + tools 全局采样 N N 条完整轨迹 工具调用 search / python 熵探针 k tokens → ΔH P = α + β·ΔH Eq. 5 P > τ ? 严格大于才分支 是 Branch(Z) Z 条 partial rollout 预算 M−N 满则停止分支 否:继续当前轨迹 奖励 rφ Eq. 8 优势归因 Eq. 7 importance ratio GRPO 更新 shared / individual
按 §3.1、§3.2 与 Algorithm 1 重绘。实线是主流程,虚线是「不分支、继续当前轨迹」的路径;进入奖励后两条路径都会参与 GRPO 更新。
06

效果:三个骨干的 Avg 都最高,deep search 的 GAIA 提升 6.8 点

读完这节你应该知道:提升具体落在哪些格子、哪些格子没有提升,以及「一半工具调用」到底比较了什么。

6.1 深度推理:Table 1 的 Avg

柱高按固定上限 60 分满格,三个骨干共用同一刻度;柱下数字为 Table 1 的 Avg 原值。切换标签只换数据,不改刻度。

Table 1(完整转录):10 个推理任务与 Avg;数学推理 5 项、知识密集型推理 5 项。
MethodAIME24AIME25MATH500GSM8KMATHWebWalkerHQA2Wiki.MuSiQ.Bamb.Avg.
Qwen2.5-3B-Instruct10.06.763.075.071.60.59.79.43.611.726.1
+ TIR Prompting6.76.752.256.662.814.015.414.16.116.425.1
+ GRPO20.013.372.086.081.021.056.564.524.765.250.4
+ Reinforce++16.713.370.485.080.219.555.962.327.965.749.7
+ DAPO20.016.771.285.081.219.554.862.530.064.850.6
+ ARPO23.320.071.485.082.524.558.567.428.766.852.8
Llama3.1-8B-Instruct3.30.043.381.460.63.024.324.610.440.028.8
+ TIR Prompting3.33.339.473.858.215.048.547.515.558.436.3
+ GRPO13.313.362.487.479.226.557.871.831.068.251.1
+ Reinforce++13.316.761.487.077.227.557.171.629.969.151.1
+ DAPO16.713.361.287.476.425.556.670.329.267.350.4
+ ARPO23.316.764.688.080.230.565.475.534.873.855.3
Qwen2.5-7B-Instruct10.010.070.690.282.02.012.212.66.624.032.0
+ TIR Prompting6.710.068.264.678.215.514.818.39.523.631.0
+ GRPO23.326.778.092.887.822.059.076.130.668.456.5
+ Reinforce++26.723.378.092.288.826.055.168.925.264.954.9
+ DAPO20.023.380.491.088.824.057.768.428.665.554.8
+ ARPO30.030.078.892.288.826.058.876.131.171.558.3

三个骨干的 Avg 提升分别是:Qwen2.5-3B 52.8 − 50.4 = +2.4 个百分点(相对 GRPO),Llama3.1-8B 55.3 − 51.1 = +4.2,Qwen2.5-7B 58.3 − 56.5 = +1.8;三者平均 +2.8 个百分点。论文 §4.5 自己写的是「average accuracy improvement of 4%」——这是论文对 10 个数据集整体的概括,不能理解为每个骨干都提升 4 个百分点。

6.2 深度搜索:Table 2 的 RL-based 行

Table 2(只转录 RL-based 的 Qwen3-8B / 14B 行;Direct Reasoning 含 gray reference;Single-Enhanced 为同骨干 workflow;两者都不与 RL 同条件,故未转录)。
MethodGAIA Lv.1Lv.2Lv.3GAIA Avg.WebWalker EasyMed.HardWebWalker Avg.HLE NSCESFHLE Avg.XBench Avg.
Qwen3-8B28.115.416.720.40.02.42.82.03.92.78.44.69.0
+ GRPO48.725.08.332.024.433.326.829.07.94.010.57.820.0
+ ARPO53.932.716.738.826.733.329.630.57.36.715.88.825.0
Qwen3-14B33.313.50.019.46.72.44.24.05.56.711.66.814.0
+ GRPO51.334.60.036.928.933.326.830.07.96.712.68.627.0
+ ARPO56.440.416.743.731.142.931.036.010.310.713.710.032.0

逐项对 GRPO:8B 的 GAIA Avg 38.8 − 32.0 = +6.8、WebWalker +1.5、HLE +1.0、XBench +5.0;14B 的 GAIA +6.8、WebWalker +6.0、HLE +1.4、XBench +5.0。HLE 的 NS 子集在 8B 上反而从 7.9 降到 7.3(−0.6),所以「每项都提升」不成立。

6.3 浏览器消融与采样效率

Table 3

浏览器代理越强,分数越高

8B 从 snippet only 的 23.2 升到同规模 browser 的 26.0(+2.8),再升到 QWQ-32B browser 的 26.6(+0.6);14B 从 24.8 升到 29.9(+5.1),再到 39.4(+9.5)。论文据此说「浏览器代理能力与 deep search 准确率高度相关」。

Table 3 · Avg 列

Figure 6 / 7 / 8

Pass@5、工具调用与超参 scaling

Qwen3-14B + ARPO 的 Pass@5:GAIA 61.2%、HLE 24.0%、xbench-DR 59%。Figure 6

Figure 7 只比较 Qwen2.5-7B 的训练工具调用数(Total Calls);§4.6 正文称 ARPO 用一半工具调用达到更高准确率。Figure 7

Figure 8 的熵值在 0.4 处最好、1.0 时下降;initial sampling 在 8 处最好、16 时下降;global rollout 越大越好。Figure 8

注意 Figure 6 的 xbench-DR 用的是中文提示,论文脚注 4 明确说这会让 pass@k 高于 Table 2 的英文设置;此外 Figure 6 是 Pass@5、Table 2 是 Pass@1(§4.4),因此 59% 与 Table 2 的 32.0 不能直接比较。Figure 7 的「一半」也只在 Qwen2.5-7B 与 GRPO 的一条训练曲线上成立,不是推理阶段的成本,也没有在 8B/14B 或 deep search 上重复。

07

边界:三个超参、两处原文口径冲突,以及「一半」的适用范围

读完这节你应该知道:哪些结论可以直接用,哪些必须带上条件,哪些原文自己就没有对齐。

超参

α、β、τ 需要调,Figure 8 的峰值与附录默认值没有对齐

Figure 8 左图的横轴是 Entropy Weight,图内最优值在 0.4;Appendix C.2/C.4 的训练默认 entropy weight 是 0.2。原文没有解释为什么默认不取图内最优值。推断(依据:§4.7 称 Entropy Value,Appendix 称 entropy weight,两处命名不同且没有给出映射)。

initial sampling 也有一处数字对不上:§4.7 说从 0 增到 8 时 global-to-partial 比例从 1:15 变 1:1;按 M=16、N=0 应是 0:16,按 N=1 才是 1:15。原文两处冲突,照录。

效率

「一半工具调用」不是推理成本

Figure 7 只画了 Qwen2.5-7B 的 GRPO vs ARPO 训练工具调用数(Total Calls)曲线;准确率对比来自 Table 1/正文,不在 Figure 7 的纵轴上。论文没有在 8B/14B、deep search、或推理阶段重复这个对比。把「一半」外推到线上 agent 的 API 账单,需要额外实验。

外部依赖

deep search 的数字包含 browser 的贡献

Table 3 显示,同一 14B 策略换成 QWQ-32B browser,Avg 从 29.9 升到 39.4。推断(依据:Table 3 的 browser 规模逐级对比)ARPO 的 deep search 分数不能全部归给策略更新,外部 browser 的能力是共同变量。

评测

LLM-as-judge、F1、以及不同的提示语言

数学与知识推理中,QA 任务用 F1,其余用 Qwen2.5-72B-instruct 做 LLM-as-judge;deep search 用 LLM-as-judge。xbench-DR 的 Pass@5 用中文提示,和 Table 2 的英文设置不同。论文没有分析奖励模型被利用(reward hacking)的情况,也没有报告多次运行的方差或置信区间。

理论部分,§3.3 把 Transformer 输出切成 K 个 macro action,推出 Generalized Policy Gradient(GPG)定理,传统 token-level Policy Gradient 是它的一个特例。这个定理保证的是「按 macro action 做策略梯度的形式」,并不保证「熵变化一定对应有用的探索」。推断(依据:GPG 定理只给出梯度分解,Eq. 5 的熵分支是算法设计,不是定理的结论)。因此 α、β、τ 的选择仍然是经验性的。