R²Orch:自博弈能把智能体编排练进参数,起点技能库仍要手工搭

速览

一、技能库撤空后成绩不降:R²Orch 主张编排能力可以搬进参数

R²Orch 要证明的是一件事:一个模型的编排能力可以从外部技能库搬进参数,部署时上下文里一张技能卡都不带,成绩仍然不降。它的证据形态是「撤空后不降」,而不是「带着技能时分数更高」。零技能条件下,六个 IID 基准平均 89.79±1.01,六个 OOD 基准平均 78.79±0.17;同协议下最强的基线 PATS 是 86.00±0.95 与 76.13±0.42。作者称十二个基准全面领先,另有十二次技能撤除全部通过判据,撤除时的后验期望损失至多 0.019 R²Orch. 只用 Qwen3.5-9B Workers 训出的 Director 还能免重训迁到另外六个 backbone,backbone 之间的 IID 成绩跨度从 25.7 分收窄到 6.4 分 R²Orch.

技能在论文里的粒度是一张技能卡,内容接近一段提示模板,写明某类子流程该怎么做,训练期挂在编排器旁边按需检索。编排器叫 Director,它面对的是 agent graph:节点是带角色提示与模型路由的 agent,边是 agent 之间的交接,Director 从一张空图开始,用八个原子编辑动作一步步搭出工作流,每一步先验证再应用。八个动作是加 agent、设提示、换模型、设层级、考虑关系、删 agent、设输出、结束。

这套内外双循环由内层的自博弈和外层的技能撤除组成,容易被读成普通的 meta-learning 或双层优化,差别在于外层改了什么。它不改学习率,不改初始化,改的是 Director 每一步读到的上下文里有没有那张技能卡。训练终点因此是一个「上下文里没有技能」的 Director,而不是一个超参更好的 Director。

图注:上半蓝色外循环把技能从 Many Skills 撤到 Zero Skills,下半粉色内循环是 Proposer 与 Director 在 rollout group 上的自博弈,组内分成 Without k 三条与 With k 两条;两条虚线分别向下指向 Recursive Learnability、向上指向 Skill Withdrawal。图中数值为画图示例 R²Orch.

这两条虚线是全文的骨架:向下那条决定内循环练什么,向上那条把撤除证据交回来。

二、三条痛点其实是一个环:选任务与撤技能互不通气,撤完就坍缩

论文列的三条痛点不是三个独立缺陷,而是同一个环上的三个位置。手工课程让任务池固定,坍缩让撤技能后训练停摆,成功率阈值又在被课程污染的信号上做判断,三者互相加固。

坍缩有多硬,有一组可读的数字。一篇专门诊断它的论文提出 ACR,定义是一个 batch 内奖励标准差低于 $10^{-6}$ 的组所占比例。在 245 个配置上,前 100 步的平均 ACR 与 MATH-500 最终准确率相关 $r=-0.785$,线性拟合 $R^2=0.617$,也就是早期 ACR 能解释最终表现约 62% 的方差;GRPO 训练中有 28% 到 45% 的批次完全坍缩。这些结果来自二值奖励加确定性验证器、数学推理任务的设置,该文并未在 agent 编排任务上验证 ACR.

坍缩麻烦的地方在于它对 loss 曲线不可见。同一任务的一组 rollout 全对或全错时,组内奖励没有差异,优势归零,这一组对梯度贡献为零,曲线却照常平稳。于是撤掉技能的直接后果常常不是分数当场掉下来,而是训练悄悄停摆。

把三件事串起来看,环就出来了。任务池由人预先收集且固定,这是手工课程。自博弈虽然自己选题,但解题的 solver 一直带着技能检索,它把任务维持在自己「带技能」时的能力前沿上。一旦撤掉某张卡,这些任务就滑向全错,坍缩复发。而要判断某张卡该不该留,手上只有成功率,可成功率里混着任务难度变化和技能效果两件事。选任务与撤技能互不通气,撤完就坍缩,坍缩又让唯一的评估信号更不可信。

已有对策大多落在环的同一侧。DAPO 的 dynamic sampling 把全对或全错的组整组丢掉,再继续采样补齐 batch;过滤发生在采样之后,被丢掉的那批 rollout 算力已经花掉了 DAPO.

图注:四格并排。(a) 人预先收集的固定任务池,(b) 在带技能的上下文里量能力前沿,(c) 由成功率闸门决定脚手架去留,(d) R²Orch 把两条循环接起来,并在零技能处标出曲线保持。红叉是范式示意,不是对具体工作的定量否定 R²Orch.

R²Orch 的解法不是在三处各打一个补丁,而是让选任务与撤技能共用同一批样本。

三、同一个 rollout group 兼作训练批次、出题依据和技能对照实验

全篇的枢纽是一层共享数据结构:每个任务采 $G=5$ 条 rollout,其中 3 条读「去掉候选技能 k」的上下文,2 条读完整上下文。分配是随机的,官方实现里用 sha256(seed, cycle, task_id) 做确定性洗牌,取前三个槽位作隐藏臂 R2Orch repo.

这五个样本因此同时是三样东西。对 Director,它是一个 GRPO batch。对 Proposer,隐藏那三条的成功率 $p^-$ 直接就是出题奖励的输入。对技能 k,隐藏组与可见组的均值差就是一次配对对照。一次采样,三处消费。

GRPO 在这里不需要 critic。它用同一 prompt 下一组输出的平均奖励当 baseline,一条 rollout 的更新方向由它在组内的相对名次决定 DeepSeekMath. R²Orch 的改动是让「组」的成员不再共享同一上下文,三条无技能、两条有技能。

这也解释了论文里那句「内化发生在撤除之前」。采样分布把五分之三的概率质量放在去掉 k 的上下文上,多数更新其实已经在训练一个没有该技能的 Director。等外循环正式把卡撤掉时,模型已经在这个条件下练过很多轮。这不是修辞,是采样分布直接给出的结果。

举个具体例子。设隐藏三条里一条成功,$p^-=1/3$。可见两条全成功,$p^+=1$。差值 $z=1-1/3=2/3$,这就是这一组对「k 值多少分」的一次观测。它没有重跑任何 rollout,只是把同一批样本换了个分法。

图注:上半是同一个 rollout group 被拆成 Without k 与 With k 两列,并同时驱动两条循环;左下把可学性定义在隐藏候选技能的上下文上,右下按配对对比的后验决定撤除、保留或暂缓。图中数值为画图示例 R²Orch.

这也是为什么撤除不需要额外采样:对照臂本来就在训练批次里。

四、撤技能反而更强,因为可学性被定义在「撤掉之后」的上下文上

向下的通道决定内循环练什么,向上的通道收撤除证据,两者共用同一套组内随机分配,不是两个技巧。前者把 $4p(1-p)$ 喂给出题器,后者把均值差喂给撤除决策,同一个采样同时回答了练什么和还能撤什么。

向下的通道是一个 KL 倾斜的目标。给策略按奖励的指数权重重新加权,对数配分函数 $\log Z_K$ 在 $\beta=0$ 处展开,一阶项系数是成功率 $p$,二阶项正比于 $p(1-p)$。一阶项是斜率,二阶项是曲率,而一步在 KL 预算内换来的成功率增益正比于 $p(1-p)$。所以「这一步能学到多少」在数学上就是结果方差。把这个曲率定义在候选技能被隐藏的上下文上,得到

$$\ell_{\text{rec}} = 4p^-(1-p^-)$$

它同时等于组内优势平方和的期望乘一个常数。这个量在 $p^-=0$ 和 $p^-=1$ 处为零,在二分之一处最大。形状正是想要的:整组全错没有梯度,不该奖励;整组全对也没有梯度,同样不该奖励;只有撤掉卡之后结果还在分化,才说明这个任务还能继续教东西。于是出题偏好会跟着脚手架一路降到零技能,而不是停在带技能的前沿上。

讲解:撤掉技能后,什么题还值得练

论文还报告,零技能条件下的准确率在训练中途反超了带技能的版本,这就是「撤技能反而更强」在实验里的落点 R²Orch. Absolute Zero 的出题奖励建立在当前 solver 的成功率之上,R²Orch 把同一类量重新定义在抽掉候选技能之后的上下文上 Absolute Zero.

向上的通道是一个配对差值。$z_x$ 是可见组均值减隐藏组均值。隐藏子集是在组内随机抽的,因此每个 rollout group 相当于一个随机区组,这个差值对技能的真实收益 $\Delta_k$ 无偏。随机区组的结构和随机对照试验一样:一个 rollout group 就是一个区组,「处理」是隐藏候选技能,「对照」是保留它,同一组内随机分配再配对相减。区别在于分配对象不是人,而是同一任务下的五条 rollout,一个区组只贡献一个差值。

成功率不能直接当判据,原因可以写成一行分解:

$$\mathbb{E}[\bar{y}\mid x,k_x=k] = p_{K_x\setminus k}(x) + \frac{n_v}{G}\Delta_k(x)$$

右边第一项是课程项,第二项才是技能项。Recursive Learnability 又刻意把课程项往二分之一拉,于是卡在成功率上的阈值读到的其实是课程,不是技能。

讲解:成功率看不出技能值多少

PATS 就是这类判据的一个完整实现。技能作为训练期脚手架注入,控制器按任务类型级成功率的指数移动平均,在扩充、修订、压缩、强制裁剪四种模式里选一种,部署时丢弃脚手架 PATS. 它的所有 rollout 在组内共享同一份脚手架快照,没有「有技能 / 无技能」的配对臂,从结构上就读不出单张卡的效应。

图注:左侧 SKILLS 层经 Inject Skills 注入 Base Model,中部控制链由证据构建器、控制器与四种编辑模式组成,右侧经 GRPO 得到部署用的无技能模型。所有 rollout 共享同一份脚手架快照,组内没有配对臂 PATS.

有了无偏的 $z_x$,剩下的问题只是样本够不够。R²Orch 给每张卡记一本账,用 Bayesian bootstrap 汇总成后验,再用贝叶斯决策分三种结果:样本量达到 12 且期望正收益不超过 $\epsilon=0.02$ 就撤除,后验显示技能确有正收益就接纳,样本不足则暂缓。$\epsilon$、$\alpha$、样本下限都是作者选定的阈值,不是理论推出的必然值 R²Orch.

决策链是一条单向流程,从随机分臂走到撤除、接纳或暂缓。

这套判据有一个容易被忽略的实现细节。官方配置里留着 reinstate_quantile=0.05 和 audit_share=0.3,前者允许已撤技能在证据转正后重新接纳,后者让一部分任务去复测退役的卡 R2Orch repo. 也就是说,代码里的技能集并不是严格单调归零。

五、十二个基准全胜只证明了内化可行,没证明零技能是唯一终点

论文的实验能证明的是「在作者这套设置下,零技能条件也能领先」,不能证明零技能是唯一合理的终点,也没有解决起点要人手工铺技能这件事。

主表要读成同协议横向对比,不是排行榜。所有方法共享冻结 Workers、训练任务与算力预算,R²Orch 在零技能条件下测试,每个测试集 128 条,AIME 2026 只有 30 条。

方法IID 均值OOD 均值
R²Orch89.79 ± 1.0178.79 ± 0.17
PATS86.00 ± 0.9576.13 ± 0.42
SESA81.57 ± 1.3173.44 ± 0.53
SKILL081.40 ± 1.6573.36 ± 0.47
Qwen3.5-9B61.35 ± 0.8449.84 ± 0.29

消融表读成一棵树,每一组对应正文的一条主张。去掉整个双循环后退回 GRPO only,AIME 只有 59.33;把出题目标换成「当前脚手架上的可学性」,AIME 70.67;把撤除判据换成成功率阈值或预设预算,ALFWorld 都低于完整模型。完整模型是 AIME 81.33、ALFWorld 90.63、WebShop 91.09。

组别替换项AIMEALFWorldWebShop
编排只用 GRPO59.3373.4471.72
可学性在带技能的脚手架上量可学性70.6786.8885.94
撤除成功率阈值74.6787.8187.66
撤除预设预算70.6786.0985.00
撤除validation gap72.6788.2889.22
完整模型无81.3390.6391.09

数字要连同统计口径一起读。除 AIME 2026 为 30 条外,其余每个测试集 128 条,五轮均值落在 $k/640$ 的网格上;十二个基准测试合计 1,438 条,其中 IID 670 条、OOD 768 条,不是 1,536 条 R2Orch repo. IID 均值上的标准差约 1 分,而完整模型相对最强基线的 IID 优势是 3.79 分。消融的落差集中在 AIME,完整模型比成功率阈值高 6.66 分,比预设预算高 10.66 分,而 ALFWorld 与 WebShop 上的差距在成功率阈值组分别为 2.82 和 3.43 分,预设预算组则为 4.54 和 6.09 分,这个分布比排名本身更有信息量。

边界可以用一篇反向工作来标。SLIM 观察到,当活跃技能集在训练中归零后,验证成功率从 92.2% 掉到 76.6%,它自己最终学到的是一个非空的 21 个技能集 SLIM. 这说明「最优技能集归零」是一个需要检验的假设,R²Orch 把它当成部署目标是可以的,当成唯一终点则没有证据。

图注:三面板依次为按任务检索可见技能、用留一验证估计单个技能的边际贡献、再按保留、退役、扩充三种操作更新活跃技能集。它展示的是另一种终点形态,技能集稳定在一个非空边界上 SLIM.

增量也要放对位置。SESA 已经把自博弈、失败蒸馏成技能、技能库反哺题目分布做成闭环,并且同样报告免技能部署可行 SESA. 所以 R²Orch 的贡献不能停在「能不能不带技能库」,它落在估计与决策机制上:把技能效果变成组内随机配对对比,再用后验决定去留。

作者自己写下的局限只有一条,也正好是标题里那个代价。初始技能是逐数据集手工定制的,后续的撤除、修订、蒸馏都建立在这批种子卡上,为新领域自动获得初始技能仍是开放问题。换句话说,它证明了技能可以撤掉,但没有证明技能可以不靠人先放进去。

想深入可以读原文:R²Orch: Recursive Self-Improvement for Agent Orchestration via Self-Play within a Skill-Internalization Loop,arXiv:2610.22740。

参考文献

  1. R²Orch: Recursive Self-Improvement for Agent Orchestration via Self-Play within a Skill-Internalization Loop. https://arxiv.org/abs/2610.22740
  2. DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models. https://arxiv.org/abs/2402.03300
  3. Advantage Collapse in Group Relative Policy Optimization: Diagnosis and Mitigation. https://arxiv.org/abs/2605.21125
  4. Absolute Zero: Reinforced Self-play Reasoning with Zero Data. https://arxiv.org/abs/2505.03335
  5. R-Zero: Self-Evolving Reasoning LLM from Zero Data. https://arxiv.org/abs/2508.05004
  6. SKILL0: In-Context Agentic Reinforcement Learning for Skill Internalization. https://arxiv.org/abs/2604.02268
  7. PATS: Policy-Aware Training Scaffolding for Agentic Reinforcement Learning. https://arxiv.org/abs/2607.21419
  8. SESA: Self-Play Meets Skill Evolution: Self-Evolving Search Agents that Pose, Solve, and Remember. https://arxiv.org/abs/2607.29468
  9. DAPO: An Open-Source LLM Reinforcement Learning System at Scale. https://arxiv.org/abs/2503.14476
  10. Dynamic Skill Lifecycle Management for Agentic Reinforcement Learning. https://arxiv.org/abs/2605.10923
  11. beita6969/R2Orch: official code release, configs and datasets. https://github.com/beita6969/R2Orch
R²Orch:自博弈能把智能体编排练进参数,起点技能库仍要手工搭