技能是拐杖,练完就扔:R²Orch 用递归自博弈把编排器练到"零技能上岗"
你有没有发现一个挺拧巴的现象——我们给智能体系统塞了一堆 skill 卡片、工具说明书、流程模板,上线时确实好用了,但这些"拐杖"从此就拿不下来了。推理时每个请求都得拖着长长的 skill 上下文,成本翻倍不说,换个场景 skill 库一失效,系统直接打回原形。
更拧巴的是训练侧。用过 GRPO 训智能体的朋友大概率踩过这个坑:一道题 roll 出八条轨迹,全对或者全错,组内优势一算全是零,这批样本白跑了。任务太简单或太难都学不到东西,课程还得人肉挑。想训一个"自己出题、自己变强"的编排器?自博弈框架是有,但 solver 身上挂着的 skill 一撤掉,之前挑好的任务瞬间从"有信号"变成"全错",优势崩塌又回来了。
这周看到的 R²Orch(arXiv:2610.22740)就是冲着这个死结来的,思路我觉得相当漂亮:让出题和撤拐杖互为因果。
核心摘要
R²Orch 提出递归自博弈编排(Recursive Self-Play Orchestration):内循环里 Proposer 给 Director(编排器)出题做自博弈训练,外循环负责把 Director 不再需要的 skill 逐个撤掉,外循环还反过来改写内循环的出题目标。两个关键机制:Recursive Learnability 用"撤掉候选 skill 之后 rollout 结果仍然有分歧"来给任务打分,从源头避开优势崩塌;Skill Withdrawal 把每个 rollout group 变成一次随机对照实验,用贝叶斯后验决定 skill 何时退休。最终在 12 个基准(QA、数学、代码、交互)上全胜六类 baseline,IID 平均分 89.79 对最强 baseline PATS 的 86.00,AIME 2026 上 81.33 对 74.00,而且测试时一个 skill 都不带。这不是又一个 prompt 工程技巧,是一套有理论支撑的闭环训练范式,值得细读。
论文信息
- 标题:R²Orch: Recursive Self-Improvement for Agent Orchestration via Self-Play within a Skill-Internalization Loop
- 作者:Mingda Zhang, Yun Huang, Qiang Huang, Yanjin Li, Rui Qian, Qichao Zhao, Tiesunlong Shen, Na Zhao, Jian Wang, Xiaoying Tang
- 机构:香港中文大学(深圳)、复旦大学、UIUC、清华大学、新加坡国立大学
- 链接:https://arxiv.org/abs/2610.22740 | 代码:https://github.com/beita6969/R2Orch
- 版本:v1 提交于 2026-10-15,v2 于 2026-10-22
🎯 问题动机:三条路线,三个死穴
先交代背景。这里的"编排"指的是用一个可学习的 Director 模型去搭建智能体图(agent graph)——每个节点是一个有角色 prompt 和模型路由的智能体,每条边是一次任务交接,Director 通过一串原子操作(AddAgent、SetPrompt、SetModel、ConsiderRelation、Finish 等)从空图开始把整套多智能体工作流"画"出来,然后交给冻结的 Worker 模型去执行。Director 才是被训练的对象,Worker 全程不动。

图1:外循环(Objective,粉色虚线)给内循环定目标,内循环里 Proposer-Director 自博弈在随机化 rollout group 上跑,产生的证据(Evidence,蓝色虚线)回传给外循环决定撤掉哪个 skill。图下方能看到 rollout group 被分成 Without k(撤掉候选 skill)和 With k 两部分,这正是全文最关键的巧思。
现有工作大致三条路线,作者把它们摆在一起做了张对比图,每个都有自己的死穴。

图2:(a) 学习型编排在人工收集的静态任务池上训练(static curriculum);(b) 自我改进智能体带着 skill 测能力前沿(skill-anchored frontier),skill 一走优势就崩;(c) skill 脚手架用成功率门槛撤引导(success-rate gate),信号噪声大;(d) R²Orch 用下行(目标)和上行(证据)两个通道把内外两个循环扣在一起。
三个死穴拆开看:
死穴一:课程是人手捏的。 学习型编排(AFlow、AgentFlow 这类)在人工收集的任务池上训练;自博弈方法(比如 SESA)倒是会自己出题,但 solver 全程挂着 skill。选题和撤 skill 两件事互不通信——你在"带着拐杖"的状态下调难度,拐杖一撤难度全变。
死穴二:优势崩塌。 GRPO 这类组相对 RL 靠同一任务的 rollout 之间的差异学习,全对或全错就没梯度。这个问题社区早就知道,DAPO 的做法是把崩塌的组扔掉。但自博弈场景更微妙:任务难度是带着 skill 测的,撤掉 skill 后原本"中等难度"的任务直接滑向全错,崩塌卷土重来。
死穴三:评估信号不可靠。 现有 skill 脚手架(PATS、SKILL0、SLIM 这些)按成功率阈值、预设预算或者验证集差距来决定撤不撤 skill。问题在于成功率混在一起了——它同时反映"任务选得怎么样"和"skill 有没有用",一个噪声分数决定一个 skill 的生死,skill 库就这么漂移到"插 skill 还不如不插"的境地。
说实话,这三个问题单独看都有人做过,但把它们看成一个耦合系统的问题,是这篇论文的独到之处:选任务的标准和撤 skill 的证据,其实可以是同一批 rollout。
🧠 方法核心:一个 rollout group,养活两个循环

图3:上半部分是主流程——Proposer 选题,Director 编辑画布生成智能体图,rollout group 被随机分成隐藏候选 skill(Without k)和可见(With k)两部分,GRPO 更新 Director;右上角是 Skill Withdrawal 的决策过程(paired contrast → ledger → 后验 → withdraw/admit)。左下角是 Recursive Learnability 的打分示意,右下角是 Skill Withdrawal 的数学细节。
整个框架的枢纽是一个设计:每个 rollout group 里,大部分 rollout 看不到候选 skill,小部分能看到。形式上,对任务 \(x\) 检索到的 skill 集合 \(K_x\),选一个被测 skill \(k_x\),组内 \(G = n_h + n_v\) 条 rollout 按
分配上下文,且 \(n_h \gt n_v\)。这一下就盘活了整个系统——同一组 rollout,既是 GRPO 的训练数据,又是对 skill 价值的随机对照实验,还是 Proposer 的打分依据。零额外 rollout。
内循环:Director 怎么训
Director 的更新就是 GRPO 的组相对估计,写成留一法梯度的形式:
其中 \(\xi_i\) 是第 \(i\) 条 rollout 的图编辑轨迹,\(u_i\) 是奖励(正确性减去 Worker 成本)。关键不在公式本身,而在于 \(q_x\) 把大部分概率质量放在"没有候选 skill"的上下文上——每一次更新都在教 Director 不依赖这个 skill。skill 还没正式退休,Director 已经在为适应没有它的日子了。这个设计真的很妙,撤退不是突然发生的,是排练了无数遍之后的正式执行。
下行通道:Recursive Learnability
外循环怎么告诉内循环"该出什么题"?作者的推导从 KL 正则化 RL 出发:一步大小为 \(\beta\) 的近端策略更新会把策略朝成功方向倾斜,其对数配分函数在 \(\beta = 0\) 处的曲率恰好是 \(p_K(1 - p_K)\)——成功率的方差,也就是这个任务还能贡献多少学习信号。这个量在 learnability 文献里不新鲜,但 R²Orch 的关键改动是:不在当前上下文上算,而是在撤掉候选 skill 的上下文上算:
其中 \(p^{-} = p_{K_x \setminus k_x}(x)\) 是"没有候选 skill"时的成功概率。这个分数在 \(p^{-} \in \{0, 1\}\) 时归零(全对全错都没信号),在 0.5 处取峰。妙处在于:随着 skill 一个个被撤走,\(K_x \setminus k_x\) 越来越小,这个打分函数自动跟着脚手架往下走,始终瞄准"下一个 Director"的前沿,而不是"今天这个还挂着 skill 的 Director"的前沿。
Proposer 的奖励还包了一层经验贝叶斯:用 Beta 先验把观测到的成功率往数据集的运行均值收缩,样本少的任务不会被一两个偶然成功带偏;组内结果全塌(\(c_x = 1\))时直接罚 \(\lambda_P\);只有可见部分有进展时打 \(\gamma\) 折扣。最后课程是闭式的 Gibbs 分布:
上行通道:Skill Withdrawal
内循环怎么给外循环递证据?因为组里哪些 rollout 隐藏 skill 是随机的,每组就是一个随机区组实验,两部分均值之差
是 skill 因果效应 \(\Delta_k(x) = p_{K_x} - p_{K_x \setminus k}\) 的无偏估计。论文里 Eq. (12) 把这件事说得很透:观测成功率 = 课程项 + \(\frac{n_v}{G}\Delta_k(x)\),Recursive Learnability 会把课程项往 0.5 拉,所以拿成功率当阈值读到的其实是课程而不是 skill——这就是 PATS 那类方法的根本缺陷,paired contrast 把课程项消掉了。
这些 contrast 累积成每个 skill 的贝叶斯 bootstrap 后验 \(\Pi_k\),撤留决策就是贝叶斯决策论:
期望正损失不超过 \(\epsilon\) 就撤;后验显示 \(\Delta \leq 0\) 的概率够低的新 skill 才准入。Thompson 采样决定下一个测哪个 skill——最可能没用的优先测。
到这里闭环完成了:外循环撤 skill → Director 在某些任务上暴露新失败 → 失败蒸馏成新 skill(论文说从"两部分都失败"的组里蒸馏)→ 新 skill 进库等待检验 → Proposer 按新的 \(K_x \setminus k_x\) 重新打分选题。失败蒸馏成 skill,skill 蒸馏进参数,撤退引出新失败。 三轮转化推着 Director 走向零技能部署。
作者还给了个挺干净的会计恒等式(Proposition 1):\(J_{\mathcal{S}_T}(\theta_T) = J_{\mathcal{S}_0}(\theta_0) + \sum_{t \lt T}(\Gamma_t - C_t)\),最终成功率 = 初始成功率 + 内循环收益 \(\Gamma_t\) 减去每次撤 skill 的代价 \(C_t\)。Recursive Learnability 负责做大 \(\Gamma_t\),Skill Withdrawal 负责压小 \(C_t\),分工明确。
📊 实验结果
设置
六个 IID 基准供训练和测试:HotpotQA、NQ-Open、MedQA、AIME(早年题训练、AIME 2026 测试)、MBPP+、ALFWorld;六个 OOD 基准只测不练:TriviaQA、MuSiQue、GPQA、MATH-Hard、SWE-Bench、WebShop。每个测试集 128 题(AIME 2026 为 30 题),五次运行取均值±标准差。Worker 是冻结的 Qwen3.5-9B,所有方法共享 Worker、训练任务和算力预算,R²Orch 全程零 skill 测试。训练开销约 106 个 A100 小时(200 个 cycle)。
Baseline 横跨六类:直接提示(Qwen3.5-9B、DeepSeek-V4-Flash)、骨干训练(SFT、GRPO)、工作流搜索(AFlow)、RL 编排(AgentFlow、FlowSteer)、skill 内化(SKILL0、PATS)、自博弈+技能演化(SESA、MetaSkill)。这个 baseline 阵容覆盖得相当全。
主实验:12 个基准全胜
| 方法 | HotpotQA EM | NQ-Open EM | MedQA Acc | AIME 2026 | MBPP+ | ALFWorld SR | IID 均分 |
|---|---|---|---|---|---|---|---|
| Qwen3.5-9B | 57.81 | 23.59 | 70.94 | 48.67 | 78.59 | 47.19 | 61.35 |
| DeepSeek-V4-Flash | 71.25 | 38.44 | 84.38 | 49.33 | 84.69 | 60.16 | 69.64 |
| SFT | 63.28 | 25.78 | 73.59 | 34.67 | 78.28 | 40.94 | 56.87 |
| GRPO | 69.22 | 24.53 | 77.03 | 34.00 | 82.19 | 50.94 | 61.04 |
| AFlow | 87.66 | 76.56 | 89.22 | 52.00 | 85.31 | 73.44 | 74.99 |
| AgentFlow | 86.25 | 81.41 | 88.44 | 61.33 | 85.63 | 76.09 | 77.87 |
| FlowSteer | 87.97 | 83.91 | 90.94 | 67.33 | 88.91 | 82.19 | 82.34 |
| SKILL0 | 87.34 | 82.97 | 89.53 | 64.67 | 87.97 | 83.44 | 81.40 |
| PATS | 89.06 | 84.22 | 91.41 | 74.00 | 90.63 | 87.97 | 86.00 |
| SESA | 88.13 | 83.28 | 88.75 | 68.00 | 88.44 | 81.09 | 81.57 |
| MetaSkill | 87.03 | 82.50 | 88.44 | 55.33 | 86.25 | 79.06 | 77.27 |
| R²Orch | 91.09 | 86.09 | 94.06 | 81.33 | 93.13 | 90.63 | 89.79 |
表1(IID 部分,五次运行均值 %)。OOD 部分 R²Orch 均分 78.79,第二名 PATS 76.13,同样全胜。
几个值得停一秒的数字:
训骨干几乎没用,编排才是杠杆。 Qwen3.5-9B 直接提示 61.35,SFT 反而掉到 56.87,GRPO 也只有 61.04;而同样冻结 Worker、只训练编排层的 R²Orch 干到 89.79。28 个点的差距全部来自"怎么组织 Worker",而不是 Worker 本身。顺带说一句,直接提示的 DeepSeek-V4-Flash(69.64)比自家 Qwen3.5-9B 高 8 个点,但 R²Orch 用更弱的 Qwen3.5-9B 做 Worker 照样反超 20 个点——组织方式碾压模型差距,这个结论对工程选型很有杀伤力。
AIME 2026 是拉开差距的地方。 最强 baseline PATS 拿到 74.00,R²Orch 81.33,差 7.3 个点。数学竞赛题上 skill 脚手架最容易失效,因为套路化 skill 对新题泛化差,R²Orch 把 skill 内化进参数反而更稳。
OOD 侧同样全胜:TriviaQA 95.31、GPQA 86.56、MATH-Hard 94.69、SWE-Bench 42.81(PATS 40.16)、WebShop 91.09(PATS 87.97)。注意 R²Orch 在这些 OOD 数据集上零训练、零 skill。
消融:每个组件都在干活
| 变体 | HotpotQA | MedQA | AIME | MBPP+ | ALFWorld | WebShop |
|---|---|---|---|---|---|---|
| 完整 R²Orch | 91.09 | 94.06 | 81.33 | 93.13 | 90.63 | 91.09 |
| 仅 GRPO(去自博弈) | 86.09 | 88.44 | 59.33 | 86.88 | 73.44 | 71.72 |
| 无 skill 脚手架 | 86.88 | 89.22 | 64.00 | 88.13 | 77.81 | 76.09 |
| 自博弈(均匀选题) | 90.16 | 92.34 | 66.67 | 90.47 | 86.88 | 87.03 |
| 失败奖励(替代 RL 目标) | 87.97 | 90.47 | 64.00 | 90.00 | 84.06 | 83.13 |
| 成功率阈值(PATS 规则) | 90.00 | 91.88 | 74.67 | 90.31 | 87.81 | 87.66 |
| 固定脚手架(不撤 skill) | 88.13 | 90.47 | 66.67 | 88.75 | 77.81 | 76.09 |
表2 节选(零 skill 测试,%)。完整表还包含 DAPO、SKILL0、SLIM 等变体,均低于完整版。
两个数据最扎眼。去掉自博弈只剩 GRPO,AIME 从 81.33 崩到 59.33,掉了 22 个点——没有课程调控,难题上全是崩塌的组。把撤退规则换成 PATS 式的成功率阈值,AIME 从 81.33 掉到 74.67,正好坐实了论文对 Eq. (12) 的分析:成功率阈值读到的是课程不是 skill。
Proposer 目标对比:出题标准是胜负手
作者单独对比了六种出题目标(其余组件全部固定):
| 目标 | HotpotQA | MedQA | AIME | ALFWorld |
|---|---|---|---|---|
| 均匀采样 | 90.16 | 92.34 | 66.67 | 86.88 |
| DAPO 动态采样 | 88.13 | 92.50 | 68.67 | 87.50 |
| GRESO 选择性 rollout | 88.44 | 91.56 | 68.00 | 85.78 |
| 当前脚手架 learnability(SFL) | 90.47 | 92.03 | 70.67 | 86.88 |
| Solve-rate 奖励(Absolute Zero) | 90.78 | 92.34 | 77.33 | 88.13 |
| Uncertainty 奖励(R-Zero) | 90.31 | 92.50 | 70.00 | 87.34 |
| Recursive Learnability | 91.09 | 94.06 | 81.33 | 90.63 |
"在带 skill 上下文上测 learnability"(SFL)在 AIME 上比 Recursive Learnability 低 10.7 个点——这个对比直接验证了论文的核心论点:技能锚定的前沿是假的,skill 一撤就塌。自博弈社区这两年很火的 Absolute Zero(solve-rate 奖励)和 R-Zero(uncertainty 奖励)也都被压在下面。还有个有意思的佐证:中等成功率任务产生混合结果组的频率是 \(p=0\) 或 \(p=1\) 任务的约四倍,说明 Recursive Learnability 选中的确实是"还有东西可学"的任务。
零 skill 与骨干迁移
训练动力学上有个漂亮的现象:随着 skill 被撤,零 skill 准确率在中途反超了带 skill 的准确率——skill 在正式退休前就已经没用了,撤退只是走个手续。12 次撤退的后验期望损失全部不超过 0.019,撤退前后 seed 卡片对 held-out 准确率不再有帮助(95% 置信区间)。
迁移实验更让人印象深刻:用 Qwen3.5-9B Worker 训出来的 Director,不换权重直接指挥六个其他骨干,全部提升,且越弱的骨干涨得越多,不同骨干间的 IID 差距从 25.7 个点收窄到 6.4 个点。编排图把规划和检查的能力补给了弱模型——这暗示 Director 学到的是某种模型无关的"组织智慧",这个性质如果真成立,价值比刷分大得多。
🤔 我的判断
这篇论文最值钱的地方,我认为不是某个具体数字,而是它指出了一个被广泛忽视的耦合:在带 skill 的系统里,"任务难度"是个伪概念——难度取决于你挂不挂 skill,挂哪个 skill。之前自博弈和 skill 内化两条线各自发展,就是因为没人把这个耦合拆开。R²Orch 用一组随机化 rollout 同时解决选题和撤退,把两个问题变成同一个随机对照实验的两个读数,这个抽象层次的提升是真功夫。
批判性地说几点。其一,初始 skill 是人工针对每个数据集定制的,作者在 Limitations 里承认了——也就是说这套系统不是从零开始的,"自动长出第一批 skill"仍然是开放问题,离真正的全自动自改进还有距离。其二,全部实验都建立在 Qwen3.5-9B 这一个 Worker 骨干上训练(迁移实验只换测试侧),Director 本身多大、是否也是 9B,主文没有特别醒目地交代,跨 Director 规模的结论未知。其三,106 A100 小时的训练成本不算便宜,对想复现的小团队是个门槛。其四,12 次撤退、每个数据集三张 seed 卡片这个量级,说明 skill 库还很小,skill 库大到几百上千个时后验决策的稳定性如何,论文没有覆盖。
还有一个我没完全想清楚的地方:\(n_h \gt n_v\) 说明大部分 rollout 看不到候选 skill,那"带着全部 skill 的完整能力"在训练中其实很少被采样到——这会不会导致 Director 从来没学会"如何充分利用 skill",只学会了"不依赖 skill"?零 skill 部署场景下这无所谓,但如果你的场景就是想带着 skill 上线,这个训练分布可能不是最优的。
和同期工作比,Absolute Zero、R-Zero 解决了"自己出题",SESA、MetaSkill 解决了"自己沉淀经验",R²Orch 是头一个把"出题"和"经验退休"焊成一个闭环的。它不是某个模块的微创新,是训练范式的重组。
工程上如果你在做多智能体系统,我的建议是:哪怕不照搬整套框架,paired contrast 这个评估 skill 价值的方法可以直接偷——别再拿成功率阈值决定 skill 生死了,在 rollout group 里随机藏一个 skill 做个 A/B,成本是零,信号干净得多。
收尾
R²Orch 指向的方向挺值得琢磨:未来的智能体系统,prompt 里塞的东西应该越来越少,参数里沉淀的东西应该越来越多——skill 只是训练期的脚手架,部署时全部拆掉。如果说前两年大家比的是"谁的脚手架搭得高",这篇论文问的是"拆完脚手架楼还站不站"。
不过还有个更本质的问题悬着:这套循环目前仍依赖人工种子 skill 和人工选定的任务分布 \(\rho_0\),"第一个 skill 从哪来"的冷启动问题如果也被自动化了,那才真是递归自改进的完全体。我等着看下一步。
觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我