ClawGym II: Exploring Black-Box RL on Agent Harness
Huatong Song, Fei Bai, Ming Yang, Renyuan Li, Jia Deng, Jujie He, Zhange Zhang, Daixuan Cheng, Yan Xing, Qi Yun, Xuxing Chen, Danyang Li, Feng Chang, Chuan Hao, Ran Tao, Jian Yang, Bryan Dai, Wayne Xin Zhao, Mingjie Tang, Ji-Rong Wen
cs.CL, cs.AI, cs.LG
2026-08-18
人大高瓴团队证明可以直接在不透明的成熟 agent harness(Claude Code、OpenClaw)里做 RL:沙箱并发跑 rollout、服务代理截获模型调用重建成前缀树、PPO 与 GRPO 都能在树上稳定优化,Qwen3-30A3B 的 Pass@1 在两个 harness 下分别涨 9.98 与 14.81 分。
Claude Code、Codex、OpenClaw 这类 agent harness 已经是长程任务的操作系统层:系统提示、工具编排、上下文管理、重试恢复打包成一个运行时。模型在里面的表现很大程度上取决于有没有针对 harness 训过。但用 RL 训一个穿过 harness 的模型有三个硬骨头:harness 内部控制流不透明,单机 rollout 体系搭不起来;黑盒执行吐出的是碎片化、带分叉、带冗余的模型调用记录,不是干净的交互轨迹;训练引擎与推理引擎是两套数值环境,不一致会把梯度带偏。
主流做法是绕开,自己写一个透明的 agent loop 再训。问题是训出来的模型认这个自建 loop,换到真实 harness 上要打折扣。这篇的立场相反:harness 就是部署环境,那就直接在 harness 里训。
框架把执行与优化切开。基础设施层,每个任务的初始工作区和所选 harness 一起封装进临时沙箱,起 rollout 时按需供给、结束即销毁,互不干扰,可以大规模并发;外部能力(搜索、任务工具)经 MCP 服务器挂进沙箱。策略优化层,harness 保持原生逻辑当不透明的 rollout 引擎,训练侧只在模型服务边界放一个代理,harness 的每次模型调用都从代理走。代理调当前策略生成回复,按 harness 期望的协议返回,同时记下输入 token、生成 token、采样 log 概率。任务结束由验证器评最终工作区,给 rollout 级奖励。
碎片调用重建成前缀树:每次 rollout 的调用挂到积累历史构成其最长前缀的节点上,比对子调用输入与父节点历史还能还原中间的非模型内容(工具输出等)。叶子过滤做三件事:剔除推理服务器重试或 harness 重新生成造成的死叶子;分支过多的 rollout 整条丢弃,防止坏信号进梯度;子 agent 与压缩轨迹排除在外,它们的角色与主任务轨迹不同,广播同一终端奖励会把信用分配搅浑。树上优化:PPO 与 GRPO 都改造到多轨迹结构上,同一 rollout 的所有轨迹共享终端奖励,共享前缀的 token 只计一次,防止多分支 rollout 权重虚高。
训练推理一致性用两招。token 进 token 出纪律:推理引擎生成的 token 直接嫁接到前缀树上作为唯一训练数据,harness 拿到的结构化文本只是这些 token 的解码视图,永不回编码进训练轨迹,harness 再怎么重排格式都污染不了 token 记录。再加 token 级重要性采样修正,用截断阈值压住推理引擎与训练引擎重算概率之间的离群比值。工程兜底包括超时强杀、沙箱故障整条丢弃、伪流式解析(生成时缓冲 token、发合成 SSE 保活、整轮结束后一次性解析,消除增量解析把合法工具调用截断的事故)、轨迹落盘稳定化等待。
两个结构迥异的 harness 上验证:OpenClaw(通用助理)与 Claude Code(长程编码终端)。Qwen3-30A3B 底座经黑盒 RL 后,ClawGym-Bench 的 Pass@1 分别涨 9.98 与 14.81 分,PinchBench 外部基准同步上涨,训练在 200 到 400 步内保持稳定。
| 模型(Claude Code 为 harness) | PinchBench | ClawGym-Bench 平均 |
| Qwen3-30A3B 底座 | 54.14 | 37.06 |
| Qwen3-235A23B | 62.47 | 45.59 |
| ClawII-CC-30A3B(本文) | 71.42 | 51.87 |
注意 30 亿激活参数的模型训完反超 235B MoE 底座 6 个点。混合 harness 训练(同一任务分别配 OpenClaw 与 Claude Code 成对,批内随机混排,按任务-harness 对分组算优势)与单 harness 模型持平或略好,没有不稳定。PPO 与 GRPO 都收敛,PPO 熵动态更平滑。扩展到 JobBench(多格式专业工作流)与 OfficeQA(大文档库答案中心推理)同样涨。冷启动轻量 SFT 不是必需,但能让 OpenClaw 下的训练奖励起点更高、熵更稳。
一个有趣的对照:自建白盒 agent loop 里训的模型在自家 loop 里拿到 59.90,超过黑盒训的 51.37,但迁到没见过的 OpenClaw 上只有 50.33,低于直接在 OpenClaw 里训的 62.62。白盒训练能学到一部分通用的 agentic 能力,harness 特有的交互模式还是得在真 harness 里学。
这条路线把「在部署环境里训练」从口号变成可复制的工程方案。对模型厂,harness 适配能力可以直接用目标 harness 的真实交互来训,不再依赖自建 loop 的近似;沙箱加服务代理加前缀树的组合对任何把模型调用当唯一观测点的黑盒系统都成立,迁移成本主要在基础设施。混合 harness 训练的结论(不冲突、不退化)意味着多 harness 数据可以合流训练一个通用模型。
子 agent 与上下文压缩轨迹被整体排除在优化外,作者自己列为未来工作,而这恰恰是成熟 harness 处理长程任务的核心机制,等于只训了主线程。PPO 对分叉轨迹做了简化处理(各轨迹独立做 GAE、无跨分支信用传播),长程下的方差问题被承认但没解决。训练数据来自 ClawGym-SynData 合成任务,评测里 PinchBench 与训练分布同源,真实工作负载上的泛化没有直接证据。OpenClaw 分支带冷启动、Claude Code 分支不带,两组不完全可比,论文把部分熵差异归因于此,属于自我坦白。评测用 GPT-5.4 做 rubric judge,裁判模型的偏好会渗进分数。Compute 与沙箱规模论文只在方法层描述,复现成本未知。