论文精读

精读:给 agent 换一层外壳再训一次——Harness Scaling 的因子化执行空间与正交选点

把 agent 的执行外壳拆成 system prompt、工具接口、观察格式、上下文管理、工作流五个因子各三种写法,用强度 2 正交表从 243 个配置里选 18 个做训练。Qwen3-4B 在留出配置上从 37.33 涨到 52.78,但拆账后可见:增益的四分之三来自「每个因子的每种写法都见过」这一阶覆盖,配置数量本身在噪声内,而 30B 那组真正的结果是换配置时的掉分从 11.70 压到 1.03——这是鲁棒性,不是能力。

论文: Harness Scaling for Generalizable Agentic Reinforcement Learning
作者: Fei Bai, Huatong Song, Chuan Hao, 等
arXiv: 2610.29458
智能体强化学习 执行外壳 正交设计 组合泛化 GRPO PPO 训练分布 跨外壳迁移

1 论文概览

本文是 arXiv:2610.29458(cs.LG;v1 2026-10-21 09:15:50 UTC;Fei Bai、Huatong Song、Chuan Hao、Ran Tao、Jian Yang、Bryan Dai、Wayne Xin Zhao、Ji-Rong Wen,IQuest Research × 中国人民大学高瓴人工智能学院 × 北京航空航天大学)。本专栏此前四十六期问过挑哪些 token、挑哪些轨迹、信用按哪套口径记账、信号被消费时旧了多少、数据分布离基座多远、整条响应有没有资格参与这次更新、策略容量会不会被优化动力学耗光、教师分布里哪些位置允许比较、事后经验除了改行为还能不能改行动之前的那次预测、参考模型的 KL 该从哪条边进组相对更新、教师的意见从哪条通道进 RL、off-policy 校正的记账区间有多长、裁剪区间那两个端点由什么决定、干预落在流水线的哪一环、逐步信用从哪个模型里来、一个已经报出来的增益该怎么拆账、这些信号最终以什么形状落到参数上、结局空间该分成几档、同一笔优势在响应内部怎么分、教师交出来的那笔位移里哪些前缀有资格进损失、这笔信用在更新里当斜率还是当终点、一次迭代该对齐到任务的哪一格;这一期问的是同一道题被套进不同的执行外壳之后,训练分布该不该把这些外壳也算进去——前面那些期数都在改信号本身,本篇一行损失函数没改,改的是策略与工具之间那一层。

一句话总结:把 agent 的执行外壳拆成 system prompt(SS)、工具接口(TT)、观察格式(OO)、上下文管理(CC)、工作流(WW)五个因子,每个因子造三种写法,得到 35=2433^5=243 种完整配置;用强度 2 的正交表从中选出 18 个构成训练集,使每个因子的每种写法各出现 6 次、任意两个因子的 9 种组合各出现 2 次;训练时每道题随机锚定一个配置,再配上汉明距离最近的另一个配置,两配置在两个连续训练步上各用一次。Qwen3-4B-Instruct 在 ClawGym-Bench 的 18 个留出配置上从 37.33 涨到 52.78,在 Claude Code 上从 38.96 涨到 45.37;信息量更大的是 30B 那组——策略在自己训练用的 base 配置上从 59.82 变成 59.63(掉 0.19),换到留出配置却从掉 11.70 分变成只掉 1.03 分。

核心问题:agentic RL 的默认做法是把策略放进一套固定的 harness 里做优化,工具名、system prompt、上下文压缩策略、工作流约束全都不变。这套做法的隐患在于奖励信号一次奖励了两件事——把题做对,以及把这套特定的运行时用顺手:

“existing approaches typically optimize the policy through a single fixed harness. While effective within the training harness, such optimization may encourage specialization to a particular execution configuration and weaken transfer across harnesses.”(§1)

论文把「换外壳就掉点」当成一类独立的失效,不当作评测噪声。

主要贡献:

  1. 把 harness 的多样性显式建构成一个可枚举的因子空间 H=S×T×O×C×W\mathcal{H}=\mathcal{S}\times\mathcal{T}\times\mathcal{O}\times\mathcal{C}\times\mathcal{W},并把它定位成与任务扩展、环境扩展并列的第三条扩展轴——前两条扩展的是「解什么题」和「在哪解题」,这一条扩展的是「怎么执行」。
  2. 用强度 2 的正交设计(strength-2 orthogonal design)从 243 个配置里选 18 个,把组合爆炸压成一份可控的训练集,代价是只保留一阶(每个因子的每种写法)与二阶(任意两因子的所有组合)平衡,三阶及以上组合留作留出集。
  3. 提出全局-局部两段式训练组织:锚点配置在 18 个里均匀采样保证全局覆盖,同一任务的另一个配置取汉明距离最近的那个,提供受控的局部变化。
  4. 给出两层泛化协议:空间内组合泛化(in-space,18 个留出配置)与空间外迁移(out-of-space,Claude Code 与 OpenClaw 两个黑盒产品级外壳)。
  5. 开放了分解好的 harness 组件实现与训练配置表——附录 A 的 Table 5 给出五个因子的全部十五种写法,附录 B 的 Table 6 给出 18 个训练配置的完整编码。

2 方法详解

架构与方法概述

整套方法分三步,RL 目标函数本身是标准的 token 级裁剪策略梯度(式 7),GRPO 与 PPO 套用同一份流程:

L(θ)=1NB∑(x,h,τ)∈B∑t=1∣τ∣Mtmin⁡(ρt(θ)At, clip(ρt(θ),1−ϵ,1+ϵ)At)\mathcal{L}(\theta)=\frac{1}{N_{\mathcal{B}}}\sum_{(x,h,\tau)\in\mathcal{B}}\sum_{t=1}^{|\tau|}M_t\min\big(\rho_t(\theta)A_t,\ \mathrm{clip}(\rho_t(\theta),1-\epsilon,1+\epsilon)A_t\big)

改动只发生在「(x,h,τ)(x,h,\tau) 这个三元组是怎么采出来的」:hh 不再是一个常量,而是从 Htr\mathcal{H}_{\mathrm{tr}} 里按结构化规则抽出来的随机变量。

第一步是造空间。 每个因子 FF 从 base 写法 F(0)F^{(0)} 出发,经变换 τF(ℓ)\tau_F^{(\ell)} 得到 F(ℓ)=τF(ℓ)(F(0))F^{(\ell)}=\tau_F^{(\ell)}(F^{(0)}),ℓ∈{0,1,2}\ell\in\{0,1,2\}。变换由 Opus-4.7 生成,约束是只动目标因子,其余四个因子在任务语义、环境行为、功能上保持不变。附录 Table 5 给出全部十五种写法,几个有代表性的:工具接口从原始工具名(execute_bash、file_editor)到语义别名加干扰工具,再到不透明标识符加干扰工具(词面线索基本被抹掉);上下文管理从全量保留到 LLM 摘要式压缩(留最近 5 轮),再到更激进的压缩(留最近 3 轮,摘要外置到辅助文件);工作流从自由执行到必须先出计划,再到计划加每三步一次进度核验。

第二步是选点。 全空间 243 个配置,用强度 2 正交表选 18 个。约束条件写得很干净:设 MM 个因子各 LL 种写法、每种两两组合出现 λ\lambda 次,则

N=λL2,N≥1+M(L−1)N=\lambda L^2,\qquad N\ge 1+M(L-1)

后者是 Rao 下界。代入 M=5M=5、L=3L=3 得 N=9λN=9\lambda 且 N≥11N\ge 11,NN 必须是 9 的倍数,最小可行解 N=18N=18(λ=2\lambda=2)。于是每个因子的每种写法在训练集中恰好出现 6 次,任意两个因子的 9 种组合恰好各出现 2 次。

第三步是配对。 每道题 xx 先均匀采样一个锚点 hx∼Unif(Htr)h_x\sim\mathrm{Unif}(\mathcal{H}_{\mathrm{tr}}),再从 Htr∖{hx}\mathcal{H}_{\mathrm{tr}}\setminus\{h_x\} 里取汉明距离最小的 K−1=1K-1=1 个,构成 Hx\mathcal{H}_x。这 KK 个配置在 KK 个连续训练步上依次使用。

关键创新点

把 harness 当成「可设计的实验因素」而不是「给定的运行环境」。 这一步转换的价值最大:一旦 harness 是因子,选哪些配置进训练就变成一个经典的实验设计问题,可以借用 1947 年 Rao 的正交表工具,不用靠人工试错。论文对「为什么不干脆全跑」的回答也是实验设计式的:

“exhaustive training can introduce substantial redundancy under a fixed budget.”(§3.2)

一阶与二阶分开平衡。 只做一阶平衡(每个因子的每种写法出现次数相同)并不控制不同因子之间怎么配对,论文追加了强度 2 约束:

“Component balance alone does not control how realizations from different components are combined. We therefore additionally balance all pairwise combinations.”(§3.2.1)

全局覆盖与局部变化用两个不同的随机源承担。 锚点均匀采样负责让不同任务散布到训练空间各处,最近邻配对负责让同一任务看到结构相近但不同的配置。这个设计让它区别于「随机撒一堆配置」,也区别于「每个任务随机配一个」。

与基线方法的区别

对照的四条基线是:未训练基座、single-harness RL(固定在 hbase=(S(0),T(0),O(0),C(0),W(0))h_{\text{base}}=(S^{(0)},T^{(0)},O^{(0)},C^{(0)},W^{(0)}))、黑盒 SFT(在 OpenClaw 上采 12,800 条轨迹做 3 轮 SFT)、黑盒 RL(在 OpenClaw 上做 300 步在线 GRPO)。预算是对齐的:黑盒 RL 是 300 步 × 128 rollouts,GRPO 侧的 Harness Scaling 是 300 步 × 16 题 × 8 rollouts,两边都是 38,400 条轨迹级曝光;黑盒 SFT 是 12,800 × 3 epoch ≈ 38,400。这条对齐做得很扎实,是本文最经得起查的一处实验设计。

与「优化 harness 本身」那条线(harness 搜索、自演化、从失败轨迹里编辑 harness)相比,本文固定 harness 不动,只改策略;与「在复杂黑盒 harness 里训策略」那条线相比,本文用一堆自己造的、可枚举的白盒变体替代了那个单一黑盒。

3 实验结果

主要指标

三个基准、两个骨干、两个算法、两种评估设置,共 24 个 (Scaling − Single) 单元:

骨干 / 算法基准In-Space:Single → ScalingClaude Code:Single → Scaling
4B / GRPOClawGym-Bench37.33 → 52.7838.96 → 45.37
4B / GRPOJobBench-Easy10.24 → 13.555.79 → 14.83
4B / GRPOPinchBench45.60 → 56.2440.95 → 51.47
4B / PPOClawGym-Bench43.78 → 49.0740.75 → 44.36
4B / PPOJobBench-Easy12.63 → 13.169.68 → 13.39
4B / PPOPinchBench48.86 → 53.7547.74 → 47.82
30B / GRPOClawGym-Bench48.12 → 58.6046.02 → 49.62
30B / GRPOJobBench-Easy14.79 → 15.4810.05 → 14.20
30B / GRPOPinchBench54.51 → 58.9850.25 → 59.78
30B / PPOClawGym-Bench44.23 → 48.2945.17 → 48.83
30B / PPOJobBench-Easy13.98 → 17.5612.11 → 18.90
30B / PPOPinchBench50.54 → 57.5951.85 → 60.18

24 个单元全部为正,二项检验双侧 p=2×2−24≈1.2×10−7p=2\times 2^{-24}\approx1.2\times10^{-7}。方向这件事可信。幅度是另一回事:最小一格是 4B/PPO/PinchBench/Claude Code 的 +0.08,最大一格是 4B/GRPO/ClawGym/In-Space 的 +15.45,相差近 200 倍。全文没有报任何误差棒(Pass@1 是三次独立评测的平均),单格幅度不可定价。

与 SOTA 的对比

Table 2 是与黑盒路线在 Claude Code 上的正面比较:4B 上 Harness Scaling 平均 37.22,黑盒 SFT 35.08,黑盒 RL 33.38;30B 上 41.20 对 38.08 与 36.28。附录 Table 9 在 OpenClaw 上重复了一遍,4B 是 36.07 对 32.02,30B 是 41.20 对 36.66。两个外部黑盒、两个模型规模,趋势一致。

Table 4 是本文信息密度最高的一张表,也是被正文读法低估的一张。30B/GRPO 在 ClawGym-Bench 上:

方法base 配置In-SpaceClaude Code
Single-Harness RL59.8248.1246.02
Harness Scaling59.6358.6049.62
Δ\Delta−0.19+10.48+3.60

Δ\Delta 行引导读者读「+10.48 的泛化增益」。把同一张表按行读,得到的是另一个数:Single-Harness RL 从自己的训练配置换到留出配置要掉 11.70 分,Harness Scaling 只掉 1.03 分;在两者都训练过的 base 配置上,Scaling 还低了 0.19。

消融实验的关键发现

配置数量的贡献接近于零,选点方式才是。 §4.3 报了「3 个 harness 提供一阶覆盖」这一行。把正文给的增量加回去:ClawGym-Bench 是 37.33 → 48.76(In-Space +11.43)、38.96 → 43.80(Claude Code +4.84),PinchBench 是 45.60 → 49.04(+3.44)、40.95 → 48.81(+7.86)。Table 3 的 Random-18(同样 18 个配置、同样预算、随机选)是 ClawGym 47.90、PinchBench 51.28。三个数并排:

  • ClawGym In-Space:3 个结构化 48.76 > 随机 18 个 47.90
  • PinchBench In-Space:3 个结构化 49.04 < 随机 18 个 51.28

符号相反。从 3 个加到 18 个,在 ClawGym 上是 −0.86、在 PinchBench 上是 +2.24,都落在噪声量级。换成同规模对照就干净了:Ours 减 Random-18 在 ClawGym 上是 +4.88/+2.59(In-Space/Claude Code)、在 PinchBench 上是 +4.96/+2.73,四项全正。按份额算:3 个配置的一阶覆盖拿走了 ClawGym-In-Space 增益的 74.0%、ClawGym-Claude Code 的 75.5%、PinchBench-Claude Code 的 74.7%,PinchBench-In-Space 是 32.3%。四格里三格的四分之三增益,来自「让策略见过每个因子的每种写法」,这部分完全不需要组合外推。

K 的扫描把两件事绑在了一起。 Table 10:Single 37.33/38.96,K=1 48.21/43.17,Repeat-2(同任务同配置连训两步)49.76/43.60,K=2 52.78/45.37,K=4 49.56/41.99(ClawGym,In-Space/Claude Code)。总训练步数固定 300,于是 K=1 看到 4,800 个不同任务、K=2 看到 2,400 个、K=4 看到 1,200 个——K 越大,独特任务数越少。K=2 最好、K=4 掉回去,可读作「harness 多样性饱和」,也可读作「任务多样性被砍到 1,200 之后的代价」。两个解释共用同一组数据,本文没把它们分开。干净的那一格是 K=2 减 Repeat-2(两者独特任务数都是 2,400,只差换不换 harness):ClawGym +3.02/+1.77、PinchBench +5.90/+2.83,四项全正。也就是说,论文着力设计的「同一任务跨相近配置」这一步,净贡献约占总增益的 20%;K=1(同一任务只在一个配置上出现,多样性完全靠任务之间摊开)已经拿走 70%。

full-243 那条臂测的不是组织方式。 论文用「全 243 个配置在固定预算下不如 18 个」来论证组织比数量重要:

“Notably, the full-space setting is trained on all harness configurations, including those used for white-box evaluation, yet still performs worse than the structured 18-harness set.”(§4.3)

预算固定时,243 个配置每个分到约 158 条轨迹,18 个配置每个分到约 2,133 条,相差 13.5 倍。这条臂一次改变了「每配置样本量」与「配置数」,读不出组织方式的独立贡献。论文自己把它降格为压力测试,处理是诚实的。

单配置基线的选择空间没有被用满。 §4.2 只用一句话带过敏感性实验:

“The advantage also persists when Single-Harness RL is trained on three additional fixed harnesses selected solely by their structural positions in Htr\mathcal{H}_{\mathrm{tr}}.”(§4.2)

附录 Table 11 摊开是这样的(Qwen3-4B/GRPO,三基准平均):hbase=(0,0,0,0,0)h_{\text{base}}=(0,0,0,0,0) 得 31.06/28.57,h1=(1,1,1,2,2)h_1=(1,1,1,2,2) 得 35.79/36.11,h2=(2,1,2,1,0)h_2=(2,1,2,1,0) 得 33.52/33.11,h3=(2,2,1,0,1)h_3=(2,2,1,0,1) 得 35.15/32.72,Harness Scaling 得 40.86/37.22。主表用的 hbaseh_{\text{base}} 是四个候选里最弱的一个。换成最强的 h1h_1,In-Space 上的 +9.80 变成 +5.07,Claude Code 上的 +8.65 变成 +1.11。定性上「仍然成立」成立,定量上 Claude Code 那一列几乎归零——而 out-of-space 迁移恰恰是本文最看重的主张。

4 个人分析

亮点

把「外壳」从常量变成可设计的随机变量,这一步转换是对的。 换工具名就掉点、加了上下文压缩就掉点,这类现象做 agent 的人多少撞过,通常被当作评测抖动或工程细节。本文把它命名成一类失效,并且给出了一个可以枚举、可以平衡、可以留出验证的形式化空间。这个形式化本身比任何一个数字都值钱。

正交表选点是可复用、可迁移的工具。 强度 2 正交设计是 1947 年的老工具,用在这里刚好对上问题结构:五个因子、各三水平、预算只够 18 个点。Rao 下界那两行推导(附录 B.1 的 Proposition B.1)虽然简单,却把「18」这个数字从拍脑袋变成了唯一可行解。任何需要做多因子训练数据配比的人都可以直接抄这一节。

留出集与训练集做到了边际分布一致。 我按 Table 6 与 Table 8 逐条核对过:训练集 18 个配置里,十个因子对各自覆盖全部 9 种组合、每种恰好 2 次,每个因子的每种写法恰好 6 次,与附录 B.1 的声称完全一致;评估集 18 个配置的边际分布同样是 6/6/6,与训练集零重叠。评估集选取不依赖模型表现(附录 C.2 明确写了这一条),三基准、两模型、两算法共用同一份留出集。这几处实验卫生做得很干净。

Table 4 是全文最好的一张表,尽管正文没按最好的方式读它。 「换配置掉 11.70」对比「换配置掉 1.03」,这个数字把本文的贡献说清楚了:它不是让模型在任何一个给定配置上更强——base 配置上还低了 0.19——而是把策略对执行配置的敏感度压下去。这一点在 24 个单元里还有旁证:Single-Harness RL 相对未训练基座有两格是负的(4B/GRPO/JobBench/Claude Code 是 −0.99,30B/GRPO/PinchBench/Claude Code 是 −1.23),Harness Scaling 相对基座 24 格全正。在强外壳上,单配置训出来的 RL 策略会输给没训过的基座,这个现象此前没人量化过。

局限性

留出集在二阶意义上零新颖,这一点削弱了「组合泛化」的读法。 我把评估集 18 个配置的全部 180 个二阶投影(18×(52)18\times\binom{5}{2})逐条回查训练集,0 条未被覆盖——强度 2 正交设计恰好覆盖了任意两因子的全部 32=93^2=9 种组合。评估集与训练集的边际分布也完全相同。所谓「unseen complete combinations」实际测的是三阶及以上的交互。再细一层:评估集 18 个配置到训练集的最小汉明距离,8 个是 1、10 个是 2,有 8 个留出配置只差一个因子就能在训练集里找到。按距离 1 与距离 2 分成两组分别报分,就能直接量出外推难度的梯度,本文没做这个分组。

「局部变化」在 18 配置子集里根本不是单因子变化。 §3.1.1 用「adjacent configurations differ in exactly one component」定义了 Hamming 图上相邻的概念,那是全图 H(5,3)H(5,3) 的性质,不是 18 个训练配置子集的性质。我算过训练集内部的 (182)=153\binom{18}{2}=153 个配对,距离分布是 d=2d=2 有 12 对、d=3d=3 有 54 对、d=4d=4 有 81 对、d=5d=5 有 6 对——没有一个配对的距离是 1,每个配置的最近邻距离恒为 2。locality-aware 取 K−1=1K-1=1 个最近配置时,那条边的实际汉明距离恒为 2,是双因子一起变,不是论文叙事里的单因子受控变化。

Random-18 没有匹配边际平衡,「结构化选择重要」这条结论只能落到一半。 Table 3 的 Random-18 只说是「a random set of the same size」,没说是否做了边际平衡。若未做,随机 18 个配置里某些因子的某种写法出现次数会偏离 6,那么 Ours 减 Random-18 的 +4.9 点的成因可能是二阶(pairwise)平衡,也可能只是一阶(边际)平衡。区分两者只需要一条臂:边际平衡但不做 pairwise 平衡的随机 18 个(拉丁超立方型抽样即可)。缺了这一条,「强度 2 正交设计」的贡献还没有被单独定价。

因子的正交性是假设,不是被验证的事实。 五个因子的十五种写法由 Opus-4.7 生成,论文写「explicitly constrains non-target components to remain unchanged」,但没有任何检验。看 Table 5 的具体内容,正交性值得怀疑:工具接口的两个变体各自一次改了「工具命名」与「加入干扰工具」两件事;工作流变体 II 一次加了「计划」与「每三步核验」。每个因子内部已经捆绑了不止一个变化。可加性(改 TT 的效应与改 CC 的效应是否可加)全文没有一张表验过,而强度 2 正交设计的全部效力都建立在低阶交互可分离之上。

GRPO 与 PPO 的增益差 1.7 倍,指向一个未被讨论的替代解释。 12 个 GRPO 单元平均 +7.36,12 个 PPO 单元平均 +4.30;拆开看,In-Space 是 7.51 对 4.23、Claude Code 是 7.21 对 4.36,比值稳定在 1.65–1.77。两者的配置差里最显眼的一条是每步任务数:GRPO 是 16 题 × 8 rollouts,PPO 是 128 题 × 1 rollout。每步独特任务数多 8 倍,Harness Scaling 的增益就降到约 0.58 倍。 这与「harness 多样性在补偿小批量下的任务多样性不足」这一解释吻合,也顺带解释了 K=4 为什么掉回去。论文把一致性写成「persists across RL algorithms」,没有把这个 1.7 倍的幅度差当成线索。检验很便宜:把 GRPO 的 prompt batch 从 16 提到 128,若增益掉到 PPO 的水平,本文的 scaling dimension 就要改写为「任务多样性的替代品」。

成本没有报。 训练用了 16 张(4B)或 32 张(30B)H20、跑 300 步,但没有 wall-clock、GPU-hour 或与基线的算力对比。Table 2 里 Harness Scaling 对黑盒 SFT 的优势只有 +2.14(4B)与 +3.12(30B)——黑盒 SFT 是离线采集 12,800 条轨迹做三轮微调,成本量级与在 18 个配置上做在线 RL 不可比。工程上要不要上这套方案取决于这个比值,本文没给。

对大模型领域的影响

第一层落在评测。 现在主流的 agent 评测基本是「一套 harness、一个分数」。本文 30B/GRPO 那组数据说明:换一套执行配置,同一个 checkpoint 的分数能从 59.82 掉到 48.12。任何在单一 harness 上报告的 agent 分数,都应该被理解为该 harness 上的条件分数。 论文给出的做法是定 18 个留出配置取平均,这个成本(18 倍评测)对多数团队偏高,退一步的做法是至少报出最容易掉分的两个因子上的分数——从 Table 5 看,工具接口的不透明化与上下文的激进压缩大概率是那两个。

第二层落在模型与系统的边界。 近一年 agent 能力的提升有相当一部分来自 harness 工程而非权重更新。本文的结论是这条路有上限:把策略放进一套越做越复杂的黑盒里训,得到的是对那一套的特化。用一堆简单、可枚举、白盒的变体去训,反而比在复杂黑盒里训更能迁移到别的复杂黑盒。这条对「要不要把训练绑到某个产品级框架上」的决策有直接影响。

第三层落在训练分布的构造方式。 过去两年 agentic RL 的扩展注意力几乎全在「题目从哪来」和「环境从哪来」。本文给出第三条轴,成本结构很不一样:造 15 种 harness 写法是一次性投入(本文用 Opus-4.7 生成),之后选点靠正交表,不需要新题、不需要新环境、不需要新奖励。对题源枯竭但算力还有余量的团队,这是性价比最高的一条轴。

第四层是它与监督信号那条主线的关系。 本专栏此前四十六期改的全是信号本身。本文一行目标函数没改,拿到的增益(ClawGym In-Space +15.45)落在同一量级。这提示两件事:此前各期报出的增益里有多少是在单一 harness 上测出来的,需要按跨 harness 口径复核;信号侧的改动与配置侧的多样性存在交互——一条更好的信用分配规则在跨 harness 训练下还成不成立,本文没有涉及。

5 实践启示

可以借鉴的技术

  1. 五因子分解清单可直接抄。 system prompt、工具接口、观察格式、上下文管理、工作流——这五个维度覆盖了绝大多数 agent 框架的可变部分。做内部 agent 训练时,先按这五维列一份自己的变体表,再决定训练配比。
  2. 正交表选点是低成本高回报的一步。 五个因子各三水平,18 个点就够;五个因子各两水平,Rao 下界给 N≥6N\ge6、N=4λN=4\lambda,8 个点即可。比起随机撒点或全量跑,这是本文最容易直接搬走的部分。附录 B.1 的推导可以照搬来算自己场景下的 NN。
  3. 先做一阶覆盖,别急着扩数量。 消融显示 3 个配置就能拿到四分之三的增益(四个单元里三个),从 3 个加到 18 个的效应在噪声内。资源有限时,优先保证「每个因子的每种写法都见过」,再考虑二阶平衡。
  4. 同一任务跨配置的配对有效,但要配 Repeat 对照。 K=2 减 Repeat-2 的四项全正(+3.02/+1.77、+5.90/+2.83)说明换 harness 本身有净贡献;不加 Repeat 对照,这份增益会和「同一任务多训一步」混在一起。做 K 的扫描时务必固定独特任务数,否则 K 与任务多样性纠缠。
  5. 留出集要做到边际分布与训练集一致、选取不依赖模型表现。 这两条本文都做到了,值得照抄。反过来说,如果自己的留出集是按「哪些配置难」挑的,测出来的就不是泛化。
  6. 报「换配置掉多少」,不要只报「留出集多少分」。 Table 4 的行内读法(−11.70 对 −1.03)比 Δ\Delta 行(+10.48)更能说明方法的性质,也更难被 baseline 的强弱操纵。

潜在应用场景

  • 内部 agent 平台的一次训练、多处部署。 同一个策略要接入不同的工具编排层、不同的上下文预算、不同的前端提示模板,正是本文设定的场景。
  • 模型厂商的后训练阶段。 卖出去的模型会被用户塞进各式各样的框架里,出厂前用一批白盒变体做跨配置鲁棒性训练,比针对某一个流行框架调优更稳。
  • 评测基线加固。 把 18 个留出配置(或其中最容易掉分的子集)做成公开的 harness 鲁棒性套件,用来区分「模型真的会做」与「模型会用它熟悉的那套工具」。
  • 数据工程侧的变体自动生成。 用强模型批量生成 harness 变体、再用正交表选点,这套流程可以直接接到现有的 agentic RL 数据流水线上,不需要新题源。

需要留意的前提:本文的全部证据都在 workspace 类任务(ClawGym-Task 训练,ClawGym-Bench / JobBench-Easy / PinchBench 评测)与两个代码类黑盒产品上。五个因子的具体写法(不透明工具名、上下文压缩、计划优先)都偏「信息处理与流程约束」这一类,没有覆盖「工具集合本身变了」「环境反馈的分布变了」这类更硬的迁移。把结论搬到开放域 agent 之前,先确认自己那套系统里「换外壳」主要换的是什么——如果换的是工具能力而非工具呈现方式,本文的因子分解就不完全适用。

参考文献

  1. Fei Bai, Huatong Song, Chuan Hao, Ran Tao, Jian Yang, Bryan Dai, Wayne Xin Zhao, Ji-Rong Wen. “Harness Scaling for Generalizable Agentic Reinforcement Learning.” arXiv:2610.29458 (cs.LG), v1, 2026-10-21.
  2. C. R. Rao. “Factorial experiments derivable from combinatorial arrangements of arrays.” Supplement to the Journal of the Royal Statistical Society 9(1): 128–139, 1947.
  3. A. S. Hedayat, N. J. A. Sloane, J. Stufken. Orthogonal Arrays: Theory and Applications. Springer, 1999.
  4. F. Bai, H. Song, S. Sun, D. Cheng, et al. “ClawGym: A Scalable Framework for Building Effective Claw Agents.” arXiv:2604.26904.
  5. H. Song, F. Bai, M. Yang, R. Li, et al. “ClawGym II: Exploring Black-Box RL on Agent Harness.” arXiv:2608.16798.
  6. J. Schulman, F. Wolski, P. Dhariwal, A. Radford, O. Klimov. “Proximal Policy Optimization Algorithms.” arXiv:1707.06347.
  7. Z. Shao, P. Wang, Q. Zhu, R. Xu, et al. “DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models.” arXiv:2402.03300.
  8. G. Sheng, C. Zhang, Z. Ye, et al. “HybridFlow: A Flexible and Efficient RLHF Framework.” EuroSys 2025.
  9. J. Yang, C. E. Jimenez, A. Wettig, K. Lieret, S. Yao, K. Narasimhan, O. Press. “SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering.” arXiv:2405.15793.

相关精读