Agentic Reinforced Policy Optimization

Paper: arXiv:2507.19849 Code: dongguanting/ARPO Code reference: main @ a92298b6 (2026-04-13)

1. Motivation(研究动机)

这篇论文要解决的不是一般的 single-turn RLVR,而是“带工具、多轮、长时程”的 agentic RL 训练问题。作者观察到,现有 GRPO、DAPO、Reinforce++ 这类轨迹级 RL 算法虽然已经能在数学推理上有效提升 LLM,但它们默认把一整条工具使用轨迹当作一个整体来采样和比较,忽略了真正困难的局部环节:模型在工具调用之后如何消化外部反馈、如何决定是否继续检索、是否切换到 Python、以及如何在高不确定性阶段做更细粒度探索。对 tool-use agent 来说,错误往往不是“整条轨迹都错”,而是某一次工具交互后的分支没有探索到,或者局部 credit 没有被正确归因。

论文要解决的具体问题是:如何设计一种更贴合多轮工具交互特性的 RL 算法,让模型在高不确定度的 tool-call step 上自适应地扩大探索范围,而不是只靠固定数目的完整轨迹 rollout。作者通过预实验发现,LLM 在收到工具反馈后的前 10 到 50 个 token 往往会出现显著更高的 token entropy,说明模型此时对“下一步该如何用工具/如何整合信息”最不确定。若训练算法仍然只在 trajectory level 比较完整轨迹,就很容易把最有价值的局部差异平均掉。这也是为什么 ARPO 更像一种“局部预算重分配”而不是单纯的采样放大:它把 rollout 预算优先放到熵变化最明显的工具点,而不是在低信息增益的区段继续重复完整轨迹。

这个问题值得研究有三层原因。第一,现实 agent 任务越来越依赖 search engine、browser、code interpreter 等外部工具,训练算法如果仍沿用单轮推理的 RL 设计,会天然错配任务结构。第二,deep search 场景里工具调用昂贵,训练时如果必须大幅增加 tool budget 才能提升效果,实际可扩展性会很差;论文声称 ARPO 用一半工具预算就能优于 GRPO,这对成本非常关键。第三,一旦 step-level tool-use credit assignment 可行,RL 不只是“让答案更对”,而是可能真正学到何时检索、何时分支、何时计算、何时停止,这比单纯提升最终 pass rate 更接近 agent training 的长期目标。

2. Idea(核心思想)

核心 insight 很具体:把“工具调用后 token entropy 明显升高”视为 agent 不确定性的在线信号,并据此只在高熵 tool-use step 附近做局部分支采样,而不是一味增加完整轨迹数。这样做的效果是,模型把有限 rollout budget 更集中地用在最需要探索的局部交互步骤上,从而同时保留 global trajectory coverage 和 step-level behavior exploration。ARPO 的关键创新有两部分。第一部分是 Entropy-Based Adaptive Rollout:先做一批 global rollout,记录初始熵分布;

每次工具调用后,再看新的局部熵与初始熵的差值,如果差值高,说明当前工具反馈带来了更大的不确定性,算法就在这里更积极地 branch 出局部推理路径。第二部分是 Advantage Attribution Estimation:既然 rollout 变成“共享前缀 + 局部分支”,就不能再把整条轨迹的 advantage 生硬复制到所有 token;作者因此提出把 shared token 与 individual token 区分对待,希望模型更准确地 internalize stepwise tool-use behavior 的优劣。

它和现有方法的根本区别在于:GRPO / DAPO / Reinforce++ 仍以完整轨迹采样为主,默认不同样本之间的比较发生在整条 response 上;ARPO 则承认 agentic reasoning 的关键差异经常只发生在某一次工具交互之后,于是把探索焦点下沉到 tool-call step。与单纯 reward shaping 的方法相比,ARPO 不只是“换 reward”,而是直接重写 rollout 分配策略。与 Tree-search 式方法相比,它仍保持 on-policy RL 的训练框架,没有把推理过程外包成一个独立搜索器。换句话说,ARPO 想优化的不是“轨迹平均分”,而是“关键分歧点上的局部决策质量”。

这也是它能同时兼顾性能和工具成本的原因。

3. Method(方法)

3.1 整体框架

ARPO 基于一个标准的 agentic RL 目标: 其中 是可调用工具集合, 是用户问题, 是包含推理文本、工具调用和最终答案的完整输出。与普通 RLVR 不同,ARPO 的 rollout 并不只来自 LLM 本身,而是包含“LLM 生成 触发工具 环境返回结果 LLM 继续生成”的多轮闭环。论文把这一过程分解为: 其中 是 interleaved tool-use reasoning trajectory, 是最终答案 token。这个分解很重要,因为 ARPO 后面的熵监控与 advantage attribution 都是围绕 内部的局部 tool-use step 展开的。

Figure 1 解读:Figure 1 左侧先给出 GAIA 上工具调用后 token entropy 上升的可视化,右侧给出 deep search 上的性能和工具预算对比。它传递的核心信息是:工具反馈不是普通上下文延长,而是分布切换点。模型在这些切换点之后最容易不确定,也最值得把 rollout 预算花在这些位置。ARPO 的整体设计就是围绕这个“高熵切换点”展开。

从 released code 看,训练入口是 ARPO/scripts/ARPO_8B_Deepsearch_1node.shverl.trainer.main_ppo,adv estimator 仍设为 grpo,而 rollout backend 切到 sync_with_tool 多轮模式。也就是说,ARPO 的工程改动重点确实落在 rollout worker 与 tool agent,而不是重新发明一个完全独立的 PPO trainer。

3.2 Token entropy 预分析

论文把 token-level generation entropy 定义为: 其中 是词表大小, 是第 步的 pre-softmax logits, 是 decoding temperature。作者强调,这里测的是 token distribution 的不确定性,而不是某个已采样 token 的置信度。

Figure 2 解读:Figure 2 展示了不同数据集、不同 token 的 entropy 变化与频次统计。作者的三条主要观察是:工具调用后前 10 到 50 个 token 的 entropy 会迅速抬升;早期 reasoning 阶段 entropy 会增加,但通常仍低于收到 tool feedback 后的水平;search feedback 比 Python feedback 带来更大的不确定性。直觉上,搜索返回的是开放文本片段,Python 返回的是更确定的数值结果,所以 search 更像一个高方差信息注入点。

这一步的价值不只是“做了个可视化”,而是给后面的 rollout 设计一个可计算的决策信号。如果工具调用后确实系统性地产生高熵区域,那么把 branch sampling 放在这些区域就不再只是启发式,而是和模型自身不确定性对齐。

3.3 Entropy-Based Adaptive Rollout

ARPO 的 rollout 分四步:

  1. 先给每个问题做 条 global rollout,保留剩余的 个 budget 给局部分支。
  2. 对每条初始轨迹,计算前 个 token 的初始熵矩阵
  3. 每次工具调用后,再生成后续 个 token 并计算新的 step-level 熵矩阵
  4. 用归一化熵增量 决定是否在当前 step 做 partial branching。

论文给出的熵变化定义为: 分支概率公式为: 并在 时执行 Branch(Z),从当前节点扩出 条 partial reasoning path;否则继续原路径。

Figure 3 解读:Figure 3 是整篇论文最关键的架构图。图里先是 global rollout 产生若干完整轨迹,然后在工具调用节点上,根据熵变化决定是否继续分叉;分叉后的 shared prefix 与 individual suffix 会分别送到 reward/reference model,再做 group-level advantage computation。它表达的不是“额外多采样一些轨迹”,而是“在共享前缀下,有选择地展开局部行为差异”,这正是 ARPO 相比 trajectory-level RL 的核心结构差异。

Figure 4 解读:Figure 4 细拆了 ARPO 的两大模块。左图是 entropy-based adaptive beaming:工具调用后,若熵上升,算法更倾向 branch;右图是 advantage attribution:共享前缀 token 与各个局部分支 token 的 advantage 归属不同。对于 agentic RL,这两部分必须配套出现,否则 branch 出来的 rollout 只会增加样本量,却未必改善 credit assignment。

这里的设计意图很明确:branch 负责把“值得试的下一步”显式展开,attribution 负责把最终 reward 正确回灌给触发分歧的那一段局部行为。没有前者,探索不够;没有后者,探索的收益会被平均掉。

从 released code 看,真正的 branching 逻辑落在 verl/workers/rollout/vllm_rollout/vllm_rollout_with_tools.pyverl/workers/agent/tool_agent.py

以 8B 脚本为例,实际配置是 n=16initial_rollouts=8beam_size=2branch_probability=0.5entropy_weight=0.2。工程直觉很清楚:16 个总 rollout 中,先用 8 个做 global samples,剩下 budget 在高熵工具步附近逐步补上。对应实现可以概括为:

def entropy_adaptive_rollout(prompt, cfg):
    rollouts = [init_state(prompt) for _ in range(cfg.initial_rollouts)]
    initial_entropy = {}
    sample_to_paths = group_by_sample(rollouts)
 
    while has_active_paths(rollouts):
        outputs = generate_one_step_with_tools(rollouts)
        current_entropy = measure_entropy(outputs, topk_tokens=20)
 
        for path in active_paths(rollouts):
            if path.id not in initial_entropy:
                initial_entropy[path.id] = current_entropy[path.id]
 
            if path.triggered_tool:
                tool_result = run_tool(path.tool_name, path.tool_content)
                path.append_result(tool_result)
 
        for sample_id, paths in sample_to_paths.items():
            for path in paths:
                entropy_delta = current_entropy[path.id] - initial_entropy[path.id]
                branch_gate = random.random() - cfg.entropy_weight * entropy_delta
                if branch_gate <= cfg.branch_probability:
                    clone_branch(path)
 
    return collect_finished_rollouts(rollouts)

这个伪代码已经尽量贴近 released code,而不是简单复述论文图示。 一个容易忽略但很关键的实现细节是:branch 并不是对每个 tool step 都等概率触发,而是把熵增量、随机扰动和 branch_probability 一起放进 gate 里做筛选,因此同样是高熵时刻,也可能因为全局 sample 已经覆盖到足够多路径而不再继续扩张。 论文公式与 released code 实现差异: 论文写的是 ,并在 时分支;released code 用的是 prob = random.random() - entropy_weight * entropy_delta,再判断 prob > branch_probability 时跳过分支、否则分支。两者都体现“熵越高越易 branch”,但代码是一个带随机扰动的 gate,而不是论文里的显式阈值公式,且代码里熵用前 20 个 token 的 logprob 近似计算。

3.4 Advantage Attribution Estimation

因为 ARPO 引入了 shared-prefix partial rollouts,作者认为不能简单把整条轨迹 reward 平均分配到所有 token。论文区分了 hard setting 与 soft setting 两种 advantage attribution,并报告 soft setting 更稳定。图 5 显示 soft 方案的 reward 曲线更高、更平滑,因此论文默认采用 soft setting。

Figure 5 解读:Figure 5 不是在比较不同主算法,而是在比较 advantage attribution 的两种内部设置。作者要表达的是:即便 rollout 已经改成 shared-prefix + local-branch,如果 advantage 仍旧过于粗糙,训练依然会不稳定。soft setting 的作用是让共享部分与分支部分的 credit 传递更平滑,不至于把局部错误过度归罪给整个共享前缀。

论文没有把完整 soft attribution 公式在主文展开得特别细,但它强调 shared tokens 的 advantage 应更接近共享前缀的平均行为价值,而 individual tokens 的 advantage 应反映该分支相对其他分支的局部优劣。直觉上,这是为了避免“某一局部分支表现差,就把整条共享前缀都拉低”的错误归因。

下面给出一个贴近论文描述的组件级伪代码:

def attribute_advantage(shared_prefix, branch_returns, mode="soft"):
    branch_returns = torch.tensor(branch_returns, dtype=torch.float32)
    if mode == "hard":
        winner = torch.argmax(branch_returns).item()
        shared_adv = branch_returns[winner]
        indiv_adv = branch_returns - branch_returns.mean()
    else:
        weights = torch.softmax(branch_returns, dim=0)
        shared_adv = torch.sum(weights * branch_returns)
        indiv_adv = branch_returns - shared_adv
    return shared_adv, indiv_adv

论文公式与 released code 实现差异: 论文主张 ARPO 默认使用 soft advantage attribution,但 released training path 里,verl/trainer/ppo/ray_trainer.py 仍通过 adv_estimator=grpocompute_grpo_outcome_advantage(...) / compute_grpo_passk_outcome_advantage(...) 这套通用 advantage 逻辑,未看到一个在主训练脚本中被显式接入的、命名为 soft advantage attribution 的独立实现模块。也就是说,released code 的 ARPO 特征主要体现在 rollout branching,而不是一个完全独立暴露的 AAE trainer path。

3.5 Reward 设计与多工具约束

论文使用 hierarchical reward,遵循 Tool-Star 的 correctness + format 框架,并额外加入 multi-tool collaboration bonus。主文公式写为: 其中 released reward 实现位于 verl/utils/reward_score/deep_research.py。它先检查格式,再抽取 \boxed{} 里的最终答案,计算 F1,最后若 f1_score > 0 且同时包含 </search></python>,就把 reward 设为 f1_score + 0.1;若答案对但没有双工具,则 reward 等于 f1_score;格式对但答案错给 0,格式错给 -1。也就是说,reward 代码基本吻合论文中的层级设计。

对应的简化伪代码为:

def compute_reward(response, ground_truth):
    if not validate_format(response):
        return -1.0
 
    answer = extract_boxed_answer(response)
    if answer is None:
        return -1.0
 
    f1 = get_f1_score(answer, ground_truth)
    if f1 > 0 and "</search>" in response and "</python>" in response:
        return f1 + 0.1
    if f1 > 0:
        return f1
    return 0.0

3.6 理论基础

作者把 adaptive partial rollout 解释为对 Transformer 输出序列做 macro-action segmentation。若把一段连续 token 视为一个 macro action ,就能把策略梯度写成 generalized policy gradient: 它试图说明:只要 partial rollout segment 仍是可微策略的一部分,那么在这些 segment 上做 credit assignment 与 policy optimization 在理论上是合法的,而不仅仅是一个启发式 trick。这个证明更多是为“为什么可以只对局部高熵片段展开 rollout”提供理论背书。

Code reference: main @ a92298b6 (2026-04-13) — pseudocode and mapping based on this commit

Paper ConceptSource FileKey Class/Function
Multi-turn PPO training entryARPO/scripts/ARPO_8B_Deepsearch_1node.shpython3 -m verl.trainer.main_ppo
ARPO rollout hyperparametersARPO/scripts/ARPO_8B_Deepsearch_1node.shROLLOUT_N, INITIAL_ROLLOUTS, BEAM_SIZE, BRANCH_PROBABILITY, Entropy_weight
Tool-aware rollout workerverl/workers/rollout/vllm_rollout/vllm_rollout_with_tools.pyvLLMRolloutWithTools
Stepwise branch cloningverl/workers/rollout/vllm_rollout/vllm_rollout_with_tools.pyentropy gate around entropy_delta / branch_probability
Agent-side beam expansionverl/workers/agent/tool_agent.pyToolAgent.step
Reward shapingverl/utils/reward_score/deep_research.pycompute_score
Reward orchestrationverl/trainer/ppo/reward.pycustom reward loading and dispatch
GRPO advantage pathverl/trainer/ppo/ray_trainer.pycompute_advantage
Pass@k GRPO advantageverl/trainer/ppo/core_algos.pycompute_grpo_passk_outcome_advantage
Evaluation scriptsevaluation/evaluate.py, evaluation/src/metrics.pydeep search / pass@k evaluation

4. Experimental Setup(实验设置)

4.1 数据集与规模

论文总共评测 13 个 benchmark,分三类:

  • 数学推理:AIME2024、AIME2025、MATH500、MATH、GSM8K。
  • 知识密集推理:WebWalker、HotpotQA、2WikiMultihopQA、MuSiQue、Bamboogle。
  • Deep Search:GAIA、Humanity’s Last Exam(HLE)、xbench-DeepSearch,以及文中同时汇报的 WebWalkerQA deep-search 设定。

训练数据方面,论文的 cold-start SFT 阶段使用 Tool-Star 的 54K 开源数据,再额外加入 STILL 的 0.8K 数学推理数据。released repo 的 RL 数据文件规模则可以直接从 parquet 看出:

  • train_10k.parquet: 10,000 条,列为 data_source, prompt, ability, reward_model, extra_info, metadata
  • hard_search_1k.parquet: 1,071 条,同样字段
  • valid.parquet: 180 条
  • gaia_test.parquet: 103 条
  • hle_test.parquet: 100 条

这说明 released code 的 deep search 训练主要围绕 1k 级 RL 数据展开,而非依赖特别大的在线交互数据池。

4.2 Baselines

论文比较了三类基线:

  • Direct reasoning:Qwen2.5 / Llama3.1 / Qwen3 系列 instruct 或 thinking model,以及 DeepSeek-R1、QwQ、GPT-4o、o1-preview。
  • Trajectory-level RL:GRPO、DAPO、Reinforce++。
  • Search agent baselines:Vanilla RAG、Search-o1、WebThinker、ReAct。

这套基线设计比较合理,因为它同时覆盖了“无 RL 强模型”、“传统 RL agent 训练方法”和“工作流增强式搜索 agent”三条路线。ARPO 若只赢一种,并不能说明它是一个更好的 agentic RL algorithm;论文把三条都覆盖了,结论更扎实。

4.3 评测指标

论文使用的指标并不完全一致:

  • 对 HotpotQA、2WikiMultihopQA、MuSiQue、Bamboogle 这 4 个 QA 任务,用 F1。
  • 其它任务在主表里采用 Qwen2.5-72B-Instruct 的 LLM-as-Judge。
  • 默认报告 Pass@1,并在 deep search 上额外分析 Pass@3 / Pass@5。
  • 对所有任务,答案从 \boxed{} 中抽取。

这点很关键,因为 deep search 场景下单次 rollout 噪声更大,仅看 Pass@1 会低估 ARPO 这种“扩大可探索行为空间”的方法。论文后来在 Figure 6 也明确指出,Pass@k 更能体现它的价值。

4.4 训练配置

论文强调的是算法有效性而非极限刷分,所以训练设置都保持公开可复现。released code 中最具体、最直接可复现的是 ARPO/scripts/ARPO_8B_Deepsearch_1node.sh,其关键数值是:

  • 模型:Qwen3-8B backbone,tool-aware multi-turn rollout。
  • 硬件NNODES=1, N_GPUS_PER_NODE=8,即单节点 8 GPU。
  • 训练批量TRAIN_BATCH_SIZE=128, PPO_MINI_BATCH_SIZE=16
  • 上下文长度MAX_PROMPT_LENGTH=2000, MAX_RESPONSE_LENGTH=10000
  • 优化器:actor lr=1e-6adv_estimator=grpokl_coef=0.0
  • rollout 设置n=16, initial_rollouts=8, beam_size=2, branch_probability=0.5, entropy_weight=0.2
  • 训练轮数TOTAL_EPOCHS=5SAVE_FREQ=5TEST_FREQ=5
  • 模式ROLLOUT_MODE="sync_with_tool",多轮工具环境启用。

14B deepsearch 脚本和 7B reasoning 脚本延续同样范式,只是实验名和模型路径不同;因此这些数字不是某个基础配置文件里的默认值,而是 launch script 中显式覆盖的训练参数,符合笔记要求中的“必须来自实际脚本”。

5. Experimental Results(实验结果)

5.1 数学与知识推理主结果

Table 1 最清楚的结论是:ARPO 在三组 backbone 上都拿到了最高平均分。

BackboneDirectTIR PromptingGRPOReinforce++DAPOARPO
Qwen2.5-3B-Instruct26.125.150.449.750.652.8
Llama3.1-8B-Instruct28.836.351.151.150.455.3
Qwen2.5-7B-Instruct32.031.056.554.954.858.3

更细看 per-task 数字,ARPO 在 Qwen2.5-7B 上把 AIME24 从 direct 的 10.0 拉到 30.0,AIME25 从 10.0 拉到 30.0,HotpotQA 从 12.2 拉到 58.8,2Wiki 从 12.6 拉到 76.1,Bamboogle 从 24.0 拉到 71.5。对于 Llama3.1-8B,ARPO 在 HotpotQA 上到 65.4、2Wiki 到 75.5、Bamboogle 到 73.8,也明显高于 GRPO / DAPO。这里最重要的不是某个单点最优,而是 agentic RL 增益在“数学 + 检索”两端都存在,说明 ARPO 不是只对某类工具任务有效。

一个很有意思的副结论是 TIR Prompting 很弱,甚至经常不如 direct reasoning。论文据此认为仅靠 prompt engineering 很难让模型自发学到更优的工具使用策略,还是需要 RL 去塑造行为分布。

5.2 Deep Search 结果

Figure 6 解读:Figure 6 展示了 ARPO 在 Pass@1 到 Pass@5 上的持续增益。作者特别强调 Qwen3-14B + ARPO 在 Pass@5 上能达到 GAIA 61.2%、HLE 24.0%、xbench-DR 59.0%。这说明 ARPO 学到的不只是“更会赌一次”,而是让采样空间中的有效行为模式更多,因此随着 sample count 增加,收益仍持续显现。

Table 2 的 deep search 主结论可以从几个关键数字看出来:

  • Qwen3-8B + ARPO 在 GAIA 三个 level 上分别到 53.9 / 32.7 / 16.7,显著高于同 backbone 的 GRPO(48.7 / 25.0 / 8.3)和 direct Qwen3-8B(28.1 / 15.4 / 16.7)。
  • Qwen3-14B + ARPO 在 GAIA 三个 level 上到 56.4 / 40.4 / 16.7,高于同 backbone 的 GRPO(51.3 / 34.6 / 0.0)。
  • 论文正文还指出,在 HLE 这类极难 deep search 任务上,GPT-4o 只有 2.6 的平均分,DeepSeek-R1-671B 只有 8.6,而 ARPO 在开源 Qwen3 系列上已经表现出更强的 deep-search 适配能力。

这些数字支撑了作者的核心论点:ARPO 的收益在 deep search 场景尤其明显,因为这里工具交互更长、搜索反馈更嘈杂、局部高熵 step 更多,恰好是它最擅长的场景。

5.3 工具效率与 Browser ablation

Figure 7 解读:Figure 7 直接把“性能提升”和“工具调用成本”放在一起比较。作者的核心结论是:在 Qwen2.5-7B 上,ARPO 用大约一半的工具调用数就超过了 GRPO 的整体准确率。这不是简单的 cost-saving 工程收益,而是说明 selective branching 比 uniform trajectory expansion 更高效,因为它把预算集中投在高价值的不确定区域。

Browser agent 的 ablation 也很重要。Table 3 显示:

  • 对 Qwen3-8B,Snippet only 的 GAIA / HLE / WebWalker 平均只有 23.2,换成 Qwen3-8B Browser 到 26.0,换成更强的 QWQ-32B Browser 到 26.6
  • 对 Qwen3-14B,Snippet only 平均 24.8,Qwen3-14B Browser 29.9,QWQ-32B Browser 39.4

这说明 ARPO 优化的是 reasoning policy,但外部 browser agent 的能力仍是性能上限的一部分;更强的外部检索/浏览器会显著抬高 deep search 上限。

5.4 超参数 scaling

Figure 8 解读:Figure 8 分别分析 entropy value、initial sampling size、global rollout size。它揭示了 ARPO 并非“参数越大越好”,而是存在清晰的平衡点:entropy 作为 branch clue 需要适中,初始 global rollout 与后续 partial rollout 的比例也需要平衡,否则会退化回纯 global sampling 或纯局部分支。

论文给出的结论非常明确:

  • Entropy value:性能随 entropy weight 上升先升后降,在 0.4 左右达到峰值,说明熵信号太弱不够用,太强又会压缩采样多样性。
  • Initial sampling size:在 global rollout size 为 16 时,最佳初始采样数是 8;从 0 增到 8,等价于把 global : partial 比例从 1:15 拉到 1:1;继续增到 16 会明显下降,因为这退化成纯 global sampling。
  • Global rollout size:随着总 rollout size 增加,性能继续提升,说明 ARPO 具有可扩展性。

这些观察和 released 8B 脚本里的 n=16, initial_rollouts=8, entropy_weight=0.2 是呼应的:脚本值不一定正好等于论文 Figure 8 的最优点,但它显然是围绕这组 scaling 结论设计的。

5.5 局限性与总体结论

论文提到或隐含的局限性主要有三类。第一,deep search 评估大量依赖 LLM-as-Judge,虽然这是现阶段常见做法,但不可避免会引入 judge bias。第二,ARPO 的收益高度依赖工具环境质量,特别是 browser agent 能力;外部工具弱时,策略优化空间会被环境质量限制。第三,论文主张的 Advantage Attribution Estimation 在 released code 中没有像 rollout branching 那样以一个显式、独立的 trainer path 暴露出来,因此目前开源复现更容易验证“entropy-aware branching 的价值”,而不是完整复现论文里 soft attribution 的所有细节。

总体而言,ARPO 的结论是成立的:它不是简单把 GRPO 搬到工具任务上,而是针对 tool-call 后的高熵局部交互重构 rollout 预算分配,并辅以针对局部分支的 credit assignment 叙事。实验结果表明,这样的 agentic RL 设计在 13 个 benchmark 上稳定优于 trajectory-level baselines,尤其在 deep search 上表现出更好的性能-成本折中。