OpenForgeRL:在任意环境中训练 Harness 原生智能体的开源框架 OpenForgeRL: Train Harness-native Agents in Any Environment
用轻量代理与容器编排解耦训练与推理,让任意 harness 和环境直接接标准 RL 训练
前置知识
推理 harness(智能体脚手架)
harness 是包裹在 LLM/VLM 外层的编排系统,如 Claude Code、Codex、OpenClaw,负责管理多轮交互、工具调用、上下文压缩、子智能体调度等,把模型连接到 MCP 服务器、浏览器、桌面等外部系统。模型在 harness 中的实际输入不再是原始交互历史,而是经过 harness 加工的上下文 $H(s_t)$。
本文的核心主张是「模型应该在自己实际部署的 harness 里训练」,因此理解 harness 是什么、它如何接管推理控制权,是理解整篇论文动机与方法设计的前提。
rollout 与 GRPO
rollout 指智能体在环境中完整执行一次任务得到的一条轨迹。GRPO(组相对策略优化)对同一任务采样一组轨迹,用组内平均奖励作基线计算优势,省去价值网络:大致为 $A_i = r_i - \mathrm{mean}(r_1,\ldots,r_G)$。本文用 batch size 8、group size 8 的 GRPO 做所有 RL 训练。
OpenForgeRL 重建出的训练样本最终要喂给 veRL 里的 GRPO,论文的超参数表、奖励设计和训练曲线都围绕这一算法展开。
veRL 等开源 RL 框架的 rollout 假设
veRL、slime 等开源框架支持 PPO/GRPO 与异步分布式训练,但它们假设 trainer 能直接访问模型的 prompt 并全程控制生成,且 rollout 在训练节点本地运行(如沙箱代码执行)。复杂 harness 的有状态、多进程推理和远程容器需求打破了这两个假设。
正是这些假设构成了论文要解决的核心矛盾,理解它们才能明白为什么「代理拦截 + 远程容器」是必要的架构选择。
轨迹重建与稀疏终端奖励折扣
harness 推理产生的是无序的 prompt-response 对集合,OpenForgeRL 在 rollout 结束后把它重建为标准样本 $\tau = (s_0^H, a_0, r_0), \ldots, (s_T^H, a_T, r_T)$,并把只在终局出现的奖励 $r_T$ 按折现公式分摊到每一步:$r_t = \gamma^{T-t} \cdot r_T$,通常取 $\gamma = 1.0$。
这是把「harness 黑盒推理」转成「任何 RL 代码库可消费的标准样本」的关键一步,是全文方法部分的核心公式。
Kubernetes 容器编排
Kubernetes(K8s)是容器编排系统,负责在机器集群上创建、调度、销毁容器 pod 并分配 CPU/内存资源。本文基于 Orchard 框架实现编排器,在微软 Azure 云上为每个 rollout 启动独立容器(如 Claw 任务每 pod 上限 2 CPU / 2 GiB),弹性扩展到数十个并发环境。
harness rollout 必须在带预装环境的容器里跑且无法与 GPU 训练节点共存,K8s 编排器是框架「任意环境」这一半的载体。
SFT 蒸馏(教师模型采样)
先用强教师模型对每个任务采样 $N=3$ 次 rollout,只保留成功轨迹作为监督微调数据。本文 Claw 模型的教师是 MiniMax-M2.5,GUI 模型的教师是 Kimi-K2.5,SFT 完成后再接 RL。这是一种把强模型能力迁移到小模型的标准冷启动配方。
论文所有主结果都是 SFT 与 SFT+RL 两个 checkpoint 对比呈现的,理解蒸馏流程才能读懂训练配方和 RL 增益的来源。
pass^3 与 pass@k 指标
pass@k 表示 k 次尝试中至少一次成功就算成功的比率,衡量能力上限;pass^3(三次全对)表示同一任务三次尝试全部成功才算通过,衡量稳定性和可靠性。两者差距越大说明模型表现越不稳定。
ClawEval 同时报告这两个指标,论文用 pass^3 与 pass@3 的不同增幅来论证 RL 带来的主要是「可靠性」提升,这是结果解读的关键。
研究动机
现代最先进的智能体几乎不再是裸的语言或多模态模型,而是被包裹在日益复杂的推理 harness(如 Claude Code、Codex、OpenClaw)中,由 harness 管理多轮交互、工具调用和上下文,并连接 MCP 服务器、浏览器、桌面等外部系统。近期 agentic 基准上的进步「同样来自 harness 与更强基模」,这让 harness 成为智能体能力的中心。但开源社区想端到端改进这类系统时遇到两个具体障碍:其一,harness 把推理变成有状态、多进程的过程——嵌套工具调用、子智能体、长程上下文管理都不暴露给 trainer,而 veRL、slime 等开源训练栈假设 trainer 直接掌握 prompt 并全程控制生成,无法原生表达这种推理;已有的开源努力(如 OpenClaw-RL 等)只能为训练重写一个简化版 harness,造成训练与部署之间的 mismatch。其二,harness rollout 需要带专用 CPU 和内存的容器化环境,无法大规模与训练节点共存,而大多数开源 RL 框架默认 rollout 就近跑在 trainer 本地(比如沙箱里执行代码)。这两条鸿沟导致专有 harness 系统与社区可训练、可研究的系统差距越拉越大。
本文的目标是本文要构建一个开源框架 OPENFORGE RL,使「任意 harness × 任意环境」都能直接接入 veRL、slime 等标准 RL 代码库做端到端训练:不修改 harness 内部、不修改 RL 框架、消除训练-部署 mismatch,并把 rollout 弹性扩展到云端数千个容器。为验证框架,作者在数据稀缺的领域(日常工具/claw 任务、computer-use、browser-use)自动合成训练任务,仅用几百到几千个任务训练出 OpenForge-Claw(30B-A3B MoE)和 OpenForge-GUI(8B VLM)两个模型族,在六个基准上与同规模开源模型对比。更进一步,因为模型就是在真实部署 harness 里训练的,框架还能支撑此前开源工作无法开展的研究:harness 选择如何影响学习难度、RL 训练到底改变了智能体的哪些行为。
与已有工作不同的是,本文的独特切入是视角转换:与其费力让训练栈理解 harness 的复杂控制流,不如让训练栈只消费两样东西——模型调用记录和终局奖励。具体做法是在 harness 与推理服务器之间插入一个轻量代理(proxy)拦截并记录所有生成请求,配合 Kubernetes 编排器把每个 rollout 放到云端独立容器中运行。这一「代理 + 编排」的最小侵入设计使框架对 harness 和 RL 算法都保持无关。与并发工作 Polar(类似思路但只覆盖 SWE-Bench-Verified 软件工程任务)相比,本文覆盖文本 claw 任务与视觉 GUI 任务共六个基准;与 OpenWebRL 等绑定单一环境的方案相比,它复用了整个现成 harness 生态。此外,论文还把「在真实 harness 中训练」本身当作研究工具,用统一任务和配方系统比较不同 harness 的可学习性与 RL 带来的行为变化,这是此前开源工作做不到的。
核心方法
先说直觉:harness 内部已经在管理多轮交互、工具调用、上下文和子智能体,训练器真正需要的只是每一步模型看到的 prompt、模型生成的响应,以及任务结束时的奖励——至于中间那些轮次是如何被 harness 组织的,训练器完全可以不关心。基于这个直觉,给定一个推理服务器(如 vLLM),OPENFORGE RL 启动两个轻量组件:(1)一个 Kubernetes 编排器(基于 Orchard),在 Azure 等云上创建、管理和删除 rollout 容器 pod;(2)一个包住推理服务器的代理,拦截所有容器内 harness 发出的生成请求并原样记录。形式化上,任务被建模为 MDP $\langle S, A, T, R, \gamma \rangle$,harness 中的每步推理被抽象为 prompt-response 对 $(H(s_t), a_t)$,整条轨迹是一个无序集合 $\tau = \langle (H(s_0), a_0), \ldots, (H(s_T), a_T) \rangle$。rollout 结束后,代理收集终端奖励 $r_T$(通常是任务成功与否)和所有 prompt-response 对,交由轨迹重建模块转成标准训练样本,直接接入 veRL 等现有训练循环。这样支持新 harness 或新环境只需修改沙箱本身,训练侧零改动。
核心创新是把 harness 彻底黑盒化、事后重建轨迹:训练器不要求在 rollout 过程中拥有任何控制权,harness 可以自由运行它自己的任意推理(子智能体、上下文压缩、内置工具集),代理只负责旁路记录。rollout 结束时按公式 (1) 重建样本:$\tau = (s_0^H, a_0, r_0), \ldots, (s_T^H, a_T, r_T)$,其中 $r_t = \gamma^{T-t} \cdot r_T$,通常 $\gamma = 1.0$,即把稀疏的终端奖励原样分摊给轨迹中每一步。用 GRPO 这类组算法优化时,遵循 GiGPO(Feng et al., 2025)的做法,通过比较同组不同轨迹的平均奖励来计算优势。这与已有工作的本质区别在于:先前方案要么为训练重写简化 harness(产生 train-deploy mismatch),要么为特定任务深度魔改训练循环(难维护、难扩展);OPENFORGE RL 让模型在部署时所用的同一个 harness 里训练和采样,训练状态与部署状态天然一致,且对底层 RL 框架保持不可知。
方法步骤详情
完整流程分七个环节。(1)部署:启动 veRL 训练器、vLLM 推理服务器,OPENFORGE RL 层面启动 K8s 编排器和拦截代理。(2)环境实例化:每个 rollout 在自己的远程容器中运行,容器由任务专属 Dockerfile 构建并预装目标 harness——Claw 任务每 pod 上限 2 CPU / 2 GiB,打包到 Azure D128ads v5 节点;computer-use 任务在容器内用 Xvfb 渲染内存虚拟显示并预装改版 Kimi-Agent(4 CPU / 4 GiB);browser-use 任务则由轻量沙箱 pod(2 CPU / 6 GiB)经 Chrome DevTools 协议驱动 Browser-Use 云端的远程 Chromium,最多 48 个 rollout 并发。(3)执行:harness 在容器内多轮调用代理,代理把请求路由到推理引擎并把响应返回,环境执行工具调用产生新观察。(4)终止与超时:不用「限制轮数」(Codex 等根本不暴露轮数概念,且各 harness 对轮的定义不一致),而是给每个 rollout 设宽裕的 wall-clock 超时(每步上限 Claw 900 秒 / computer-use 600 秒 / browser 900 秒),超时即终止并向代理与重建模块返回错误信号,批次继续收集其余 rollout,不会阻塞训练。(5)错误处理:对网络故障、harness 崩溃等与策略无关导致的失败轨迹,遵循 DAPO 把整条轨迹的样本全部丢弃,避免「正确前缀拿到负奖励」的误导信号。(6)训练配方:先 SFT 后 RL——SFT 用教师模型蒸馏(Claw 用 MiniMax-M2.5、GUI 用 Kimi-K2.5,每任务采 $N=3$ 条保留成功者),RL 从 SFT checkpoint 出发用 GRPO(batch 8、group 8,8×B200 单节点,详见表 A1)。(7)数据合成五阶段流水线:Propose(智能体浏览真实资产池起草任务指令,Claw 用 ClawHub 技能 + ZClawBench,computer-use 用 X 搜索 API + AgentNet 22k 指令 + Synthetic-Computer-Use 合成文件,用共享 SQLite 库去重)、Prune(选出 $N$ 个最高质量最多样指令)、Build(构建工具服务器、mock 网站与文件、Dockerfile、评分 verifier 脚本)、Test(用另一个开源模型真实 rollout——Claw 用 MiniMax-M2.5、computer-use 用 Kimi-K2.5)、Refine(检查轨迹与得分、修补环境或改写指令直到通过全部检查);RL 任务保留完整 test-refine 循环保证 verifier 可靠,SFT 任务跳过这两步、改用 GPT-5.4 当 judge 一次性过滤以省成本。
技术新颖性
技术新颖性体现在四个层面。架构上,「推理拦截式解耦」是对「让训练栈原生支持复杂 rollout」这条主流路线的替代:代理把 harness 的有状态多进程推理旁路记录成无状态样本流,因此 veRL、slime 等框架零改动即插即用,框架对 RL 算法保持不可知。工程细节上,用 wall-clock 超时替代不靠谱的轮数上限(解决了 Codex 不暴露轮数、各 harness 轮定义不一的实际问题),并采用 DAPO 式错误轨迹丢弃,这些细节决定了系统在真实复杂环境中的鲁棒性。环境轻量化上,发现 Xvfb 可以在内存中渲染虚拟显示,取代此前 QEMU 跑完整 Ubuntu 虚拟机的重方案,使 computer-use GUI 能并行跑进轻量容器;browser-use 侧集成 Browser-Use 隐身浏览器后,把 IP 与 CAPTCHA 封锁率从 40% 降到接近零。数据上,五阶段合成流水线模仿人类策展任务的流程,带可执行 verifier 的 RL 任务平均 16.1 分钟 / 4.36 美元一个(computer-use 为 21.3 分钟 / 6.12 美元),SFT 任务 5.2 分钟 / 0.86 美元;数据效率尤其突出——MolmoWeb 用超过 20 万任务训练,OpenForge-GUI 仅用约 2.5k 任务就在 Online-Mind2Web 上反超。
实验结果
论文结果分四块。第一,Claw 智能体(表 2):OpenForge-Claw(SFT+RL)在 ClawEval 上取得 31.7(pass^3)与 55.9(pass@3),QwenClawBench 上 33.7(pass@1),MCPAtlas 上 28.1(pass@1),全面超过同规模基线——未训练的骨干 Qwen3-30B-A3B-Thinking 只有 14.3/39.8/21.8/12.4,专精代码的 Qwen3-Coder-30B-A3B 为 30.4/49.7/24.3/19.1;与 SFT-only 相比,RL 把 pass^3 从 21.7 提到 31.7、MCPAtlas 从 23.6 提到 28.1,说明 RL 增益主要体现在可靠性与泛化上。不过与闭源 SOTA 仍有明显差距(Claude Opus 4.6 pass^3 达 70.8)。第二,GUI 智能体(表 3):OpenForge-GUI(SFT+RL)在 OSWorld-Verified 得 37.7、Online-Mind2Web 得 63.0、WebVoyager 得 72.3,且每回合只允许 30 步(对比其他模型的 50–100 步);它超过所有同尺寸专用模型(OpenCUA-7B 28.2、UI-TARS-1.5-7B 27.4/31.3/66.4、MolmoWeb-8B –/35.3/78.2),37.7 的 OSWorld 成绩甚至逼近 235B 参数的 Qwen3-VL(38.1);唯一例外是 WebVoyager 上略低于 MolmoWeb-8B 的 78.2。第三,harness 难度(表 4):同一模型在 ClawEval 上用四种 harness 评估,原生支持自定义工具的 ReACT* 与 ZeroClaw 最好(SFT+RL pass@1 分别 45.1 和 48.5),OpenClaw 只有 20.9 且训练增益平缓(同时消耗长得多的 prompt 和上下文),Codex 介于其间(32.5,但 pass@3 从 18.6 涨到 51.5 增幅惊人)。第四,泛化与行为(表 5、图 5):只在 ZeroClaw 上训练就能迁移到未见过的 OpenClaw(+3.3)和 Codex(+4.6);三 harness 联训全面最佳(对基座分别 +16.0/+9.5/+20.3),连 ZeroClaw 本身都高于单 harness 训练(48.5 vs 46.0)。行为分析显示 RL 把通用 shell 调用占比从 22.6% 降到 13.9%(成功运行中从 13.2% 降到 5.6%),把调用重新分配给专用服务工具,平均轨迹长度从 13.0 降到 12.2,并提升自我验证、工具覆盖、步数效率和格式鲁棒性;但错误恢复(error recovery)即便 RL 后仍是最弱能力。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| ClawEval(日常工具/claw 任务,general 0408 域) | pass^3(三次全部成功,衡量可靠性) | 31.7 | Qwen3-30B-A3B-Thinking(同骨干)14.3;SFT-only 21.7 | 较同骨干 +17.4,较自身 SFT +10.0 |
| ClawEval(general 0408 域) | pass@3(三次至少一次成功) | 55.9 | Qwen3-30B-A3B-Thinking 39.8;Qwen3-Coder-30B-A3B 49.7 | 较同骨干 +16.1 |
| QwenClawBench(真实用户分布的 OpenClaw 任务) | pass@1 | 33.7 | Qwen3-Coder-30B-A3B-Instruct 24.3(同规模最佳) | +9.4 |
| MCPAtlas(真实 MCP 服务器工具调用,89 任务无凭据配置) | pass@1(claim-coverage ≥ 0.75) | 28.1 | Qwen3-32B 22.5(同规模最佳) | +5.6(对自身 SFT +4.5) |
| OSWorld-Verified(真实 Ubuntu 桌面 computer-use) | pass@1 平均成功率(30 步上限) | 37.7 | Qwen3-VL-8B 29.4;UI-TARS-1.5-7B 27.4;OpenCUA-7B 28.2 | 较最佳同尺寸基线 +8.3,逼近 235B 的 Qwen3-VL(38.1) |
| Online-Mind2Web(真实网站 browser-use,300 任务) | pass@1(AgentTrek 协议,o4-mini 评审) | 63.0 | MolmoWeb-8B 35.3(其用 20 万+任务训练);Qwen3-VL-8B 38.7 | 较最强同尺寸基线 +24.3 |
| WebVoyager(真实网站 browser-use,Fara-595 子集 595 任务) | pass@1(GPT-4o 评审) | 72.3 | UI-TARS-1.5-7B 66.4;Qwen3-VL-8B 49.2(MolmoWeb-8B 78.2 除外) | 较 UI-TARS +5.9(但仍低于 MolmoWeb-8B 的 78.2) |
局限与改进
作者承认并分析可见的局限有以下几条。首先,与闭源前沿差距仍然显著:ClawEval pass^3 上 31.7 对 Claude Opus 4.6 的 70.8,OSWorld 上 37.7 对 Gemini 3.1 Pro 的 76.2,小模型 + 小数据的配方远未触及上限。其次,RL 的收益有边界:错误恢复(在命令失败后仍完成任务)即便经过 RL 依旧是最弱能力,作者推测这类能力难以从 RL 单独习得,需要专门数据或训练方法;在 OpenClaw 这类复杂 harness 上训练增益平缓,且其 prompt 与上下文消耗远超其他 harness,训练效率低。第三,评估设置上有缩水:MCPAtlas 实际只用了默认 20 服务器配置下 500 任务中的 89 个;WebVoyager 上不敌 MolmoWeb-8B;browser-use 的 SFT 构建与 RL 评分依赖 GPT-4.1 作为 judge,Online-Mind2Web/WebVoyager 评测又分别依赖 o4-mini 和 GPT-4o,指标受 LLM judge 噪声影响。第四,基础设施上,browser-use 训练依赖商业远程浏览器服务(Browser-Use Cloud),rollout 容器跑在 Azure 上,对没有云资源的团队构成门槛。我自己的观察还有两点:错误轨迹整条丢弃虽然安全,但在这种按美元计费的环境里浪费了大量已花掉的 rollout 成本,且系统性地把困难状态排除在训练分布之外;训练数据规模很小(343/252/900 个 RL 任务),框架在更大任务量和更长训练步数下的扩展性尚未验证。
独立分析的弱点
独立来看,论文有五个值得推敲的弱点。其一,信用分配过于粗糙:奖励是稀疏终端奖励且 $\gamma = 1.0$,轨迹中每一步拿到完全相同的奖励,长轨迹(平均 13 步上下)中关键操作与冗余操作无法区分——改进方向是引入过程奖励模型、步级优势估计或利用 harness 自带的中间信号(如命令退出码)做奖励整形。其二,错误轨迹全丢弃策略在昂贵环境里代价高:每个 RL 任务合成要 4-6 美元,每次 rollout 又消耗真实容器与浏览器资源,失败轨迹蕴含的「如何避免失败」信息被直接扔掉——可以探索部分轨迹的离线利用或失败特定的课程。其三,wall-clock 超时是一刀切:不同任务、不同 harness 的合理耗时差异很大,超时截断既可能杀死本可完成的 rollout,也让批次内任务难度分布不可控——可按 harness 与任务类别自适应校准超时。其四,对长上下文 harness 的训练效率问题被搁置:OpenClaw 增益平缓被归因于上下文过长,但框架并未对上下文压缩、子智能体产生的额外 token 做任何训练侧优化,这意味着在 Claude Code 级别的重型 harness 上成本可能进一步失控。其五,评测与行为分析的统计强度偏弱:Codex 行为雷达图只基于每 checkpoint 100 条轨迹,多个 benchmark 依赖单一 LLM judge,结论(尤其能力维度的细微差异)可能不稳。
未来方向
作者明确提出的方向有两个:为提前终止的部分 rollout 设计更好的信用分配(而非简单丢弃),以及用专门数据或训练方法攻克错误恢复能力。基于本文成果还可以延伸出多条路线:一是跨 harness 课程学习——论文已证明简单 harness 更易学、训练可迁移到复杂 harness,那么「先在 ZeroClaw/ReACT 上练基本功,再微调适配 Codex/OpenClaw」的课程策略值得系统研究;二是把 harness 本身当作可搜索的超参,用 OpenForgeRL 作为评估后端自动优化工具集与控制流配置;三是 harness 原生的步级奖励——harness 能观察到命令成败、文件读写等中间事实,可用来构造密集奖励或验证器,缓解稀疏奖励问题;四是把轨迹重建扩展到子智能体与多智能体结构,目前无序集合的表示可能丢失层级信息;五是扩大 RL 数据规模并引入难度课程,检验几百任务量级之外的 scaling 行为;六是用该框架做更严肃的智能体科学研究,比如在受控任务上量化「harness 对齐度」「上下文长度」「工具数量」对可学习性的因果影响。
复现评估
复现条件总体中等偏上,但开源姿态相当完整。作者声明开源代码、数据与模型(aka.ms/OpenForge-RL),且框架构建在开源组件之上:veRL 作训练后端、Orchard 作编排基础、Kubernetes、Xvfb、Browser-Use(部分商业)。算力方面,策略训练只需单节点 8×B200 GPU;rollout 容器跑在 Azure 的 CPU 节点上(D128ads v5 / D64ads v5 / D128ads v7,每 pod 2–4 CPU、2–6 GiB),这部分用 spot 或小机型成本可控。训练时长:Claw 48 小时、computer-use 36 小时、browser-use 32 小时,属于学术团队可承受的范围。数据成本已给出明细:带 verifier 的 RL 任务 Claw 16.1 分钟 / 4.36 美元、computer-use 21.3 分钟 / 6.12 美元;SFT 任务 5.2 分钟 / 0.86 美元、4.0 分钟 / 1.37 美元——千级任务总合成成本约数千美元。主要障碍有三:依赖多个专有 API(数据流水线用 Opus 4.6、SFT 判分用 GPT-5.4、教师模型 MiniMax-M2.5 与 Kimi-K2.5、多个评测 judge),完整复现需要相应 API 预算;Azure K8s 集群的搭建与运维有工程门槛;browser-use 域还要处理真实网站的反爬与账号问题,且依赖商业远程浏览器服务。对有云资源和 API 预算的团队,复现训练主线是可行的;纯本地、零 API 的复现则需替换 judge 与教师模型,指标可能有出入。
论文图表
一个 computer-use 样例:任务要求在演示文稿第二页添加与前页标题同样式的新标题,模型接收截图后输出思考过程与坐标化的鼠标点击动作(归一化坐标 [0.054, 0.337]),图上用绿色标记叠加了预测点击位置。
直观展示了 GUI 智能体的输入输出格式(纯截图观察 + 归一化坐标动作),帮助读者理解 Xvfb 容器环境与 Kimi-Agent harness 下训练样本长什么样。