问题:Agent RL 的基础设施瓶颈
用 RL 训练 agent 越来越主流,但一个被忽视的系统问题是:你怎么把一个现成的 agent 框架(Claude Code、Codex、Qwen Code)接进 RL 训练管线?
传统做法是让 agent 适配 RL 框架——把 agent 的逻辑重写进框架的环境 API 里。这意味着每换一个 harness 就得写一套新的集成代码,而且重写过程中容易丢失原始执行路径里的训练信号(比如特殊的 context compaction、subagent spawn)。
NVIDIA 的 Polar 直接绕过了这个问题。
核心设计:模型 API 代理
Polar 的关键洞察:不需要改造 agent,只需要在 LLM API 边界 上架一个代理(proxy)。
具体做法:让 agent 正常运行,只是把它的模型 API base URL 指向 Polar 的 gateway。Gateway 对每个 LLM 请求做四件事:
- 识别 provider:根据请求路径和 header 区分 Anthropic / OpenAI / Google API 格式
- 归一化请求:转换成 OpenAI Chat Completions 格式发给本地推理服务器,同时加上 logprobs 等训练所需字段
- 记录 token 级数据:存储 prompt/response token IDs、log probabilities、finish reason
- 返回 provider 格式:把响应转回 agent 期望的格式(包括对 SSE streaming 的合成支持)
Agent 完全不知道被观察了。harness 内部的 context compaction、subagent spawn、tool schema ——这些原本需要特殊处理的信号,都自动被完整捕获。
轨迹重建:per-request vs prefix merging
捕获到的 LLM 调用需要组装成可训练的轨迹。Polar 提供两种策略:
per-request(保守):每个 LLM 调用就是一个独立 trace。无损但碎片化——一个编码任务可能产生几百条短 trace。
prefix merging(推荐):通过 token prefix 匹配自动把多轮对话合并成长 trace。关键规则:只有当新请求的 prompt 是前一个请求 prompt 的精确前缀时才合并;遇到 context compaction 或 subagent spawn 则自然断链。合并后只把行为策略采样的 assistant token 标记为可训练,harness 插入的 interstitial token 标记为 mask。
效果:trace 数量从 1185 降到 218(5.4× 压缩),wall-clock 从 189.5 分钟降到 35.2 分钟,rollout GPU 利用率从 20.4% 提升到 87.7%。
异步流水线
长程 agent rollout 混合了多种耗时操作:运行时启动、依赖安装、agent 执行、评估器运行、patch 应用。Polar 用阶段隔离的 worker pool 管理这些成本:
- INIT pool:启动容器、安装依赖(CPU 密集)
- READY buffer:预热好的运行时排队等待
- RUNNING pool:执行 agent(GPU 密集)
- POSTRUN pool:构建轨迹、运行评估、清理资源
评估器运行时所需的新容器在 agent 执行期间就开始预热。超时的 session 仍会进入 POSTRUN 以恢复部分 trace。
实验结果
SWE-Bench Verified:同一个 Qwen3.5-4B 基座,用简单 GRPO + Polar 在四个 coding harness 上训练:
| Harness | 基座 | Polar RL | 增益 |
|---|---|---|---|
| Codex | 3.8% | 26.4% | +22.6 |
| Claude Code | 29.8% | 34.6% | +4.8 |
| Pi | 34.2% | 40.4% | +6.2 |
| Qwen Code | 34.6% | 35.2% | +0.6 |
Codex 上 22.6 点增益最显著——因为 Codex 的 action protocol 对 Qwen 模型完全陌生,RL 有大量改进空间。Qwen Code 作为 native harness 增益最小(0.6),因为基座已经对齐。
离线 SFT 数据生成
用 Qwen3.5-122B + Pi harness 对 1638 个 SWE-Gym 实例生成 SFT 数据,504 条通过验证(30.8% 接受率),平均每条轨迹 104 轮对话、51 个 assistant turn。已开源 Apache-2.0 许可。
工程意义
Polar 的价值不在算法创新,而在系统设计哲学的转变:把 agent 的测试时环境当作 RL 系统的一等公民,而不是需要移植进 trainer 的实现细节。
这对 OpenClaw 类项目有直接参考意义——不需要为每个 agent 写环境适配代码,只需要在模型 API 层做代理捕获。rollout、训练、推理三者解耦,各自独立扩展。