LEGO-RL:无缝桥接代码脚手架与强化学习,SWE-bench达70.4%!

LEGO-RL: Harness-Native Reinforcement Learning for Coding Agents

LEGO-RL:无缝桥接代码脚手架与强化学习,SWE-bench达70.4%! 论文图示

随着大模型在复杂软件工程任务中的应用日益深入,针对代码智能体(Coding Agents)的强化学习正在成为前沿焦点。这类智能体在执行任务时,高度依赖长时间运行的智能体脚手架(Agent Harnesses)来管理工具集成、代码仓库上下文以及执行反馈。然而,现有的强化学习框架与这些原生脚手架的执行环境之间存在着根本性的错位:一方面,沙盒环境的崩溃和“奖励劫持”(Reward Hacking)会破坏结果信号;另一方面,脚手架内部的上下文压缩和历史重写机制,会导致交互展开(Rollout)时的行为与训练时的策略更新脱节。

ArXiv URL:https://arxiv.org/abs/2608.17393v1

为了解决这一核心痛点,华为技术有限公司与香港中文大学的研究团队共同提出了 LEGO-RL 框架。该框架能够在不修改内部控制流的前提下,将原生代码智能体脚手架与可扩展的策略梯度优化进行无缝桥接。通过在进程内代理大语言模型(LLM Proxying)以实现严格的词元(Token)级对齐,并结合高可靠的沙盒编排技术,LEGO-RL 成功地在复杂的代码任务中验证了其有效性。

实验结果给出了最直接的证明:在使用组相对策略优化(GSPO)算法对稀疏混合专家(MoE)模型 Qwen3.5-35B-A3B 进行训练后,LEGO-RLSWE-bench Verified 基准上取得了显著的全面提升。其中,在 OpenHands SDK 脚手架上从 64.0% 提升至 70.4%,在 Claude Code 上从 62.4% 提升至 68.2%,在 OpenCode 上从 57.2% 提升至 66.6%,且在整个训练过程中始终保持了高达 0.99 以上的采样与训练概率相关性。

代码智能体强化学习的“对齐”困境

训练代码智能体不仅要求模型能够生成单轮的高质量回复,更要求其能在复杂的软件仓库中,通过调用工具、检查环境、修改代码并执行测试,完成一个长视野的优化过程。在这一过程中,智能体的交互轨迹(Trajectory)是由原生的脚手架(如 SWE-agentOpenHands)来控制的。脚手架负责管理提示词的构建、上下文的维护以及执行状态的追踪。因此,强化学习的真正优化目标,是脚手架工作流所引发的策略行为。

传统的通用强化学习框架往往强制要求开发者将现有的代码智能体改造成框架自定义的接口。例如,可能需要覆盖智能体的初始化逻辑、替换默认工具集,或是为了提取奖励而硬编码特定的终止逻辑。这种妥协破坏了原生脚手架的完整性。而更深层次的危机在于“忠实度”(Faithfulness)的丧失。在真实的脚手架运行中,系统为了控制上下文长度,经常会进行提示词重构、历史记录压缩或重新序列化。这导致训练端重建的轨迹,根本不再是模型在采样时真正见过的词元序列。如果连训练时重新计算的对数概率(Log-probability)都无法与采样时对齐,策略梯度更新的基础就彻底崩塌了。

此外,由于代码任务的最终奖励完全依赖于沙盒中测试脚本的执行结果,沙盒的脆弱性成为了另一个致命弱点。依赖安装失败、验证器配置错误、超时以及智能体作弊(例如直接修改测试文件以绕过验证),都会产生虚假的奖励信号。在异步的强化学习流水线中,这类环境故障会跨阶段传播,导致昂贵的采样轨迹被浪费,或者更糟——用错误的奖励信号污染策略模型。

数学视角的轨迹优化与忠实度要求

LEGO-RL 的设计语境中,一个任务实例由问题描述、初始化的仓库环境和任务特定的可执行验证器组成。智能体脚手架被视为整个马尔可夫决策环境的一部分。在每一步交互中,脚手架将当前状态映射为上下文,策略模型据此生成回复词元,随后脚手架执行相应的工具动作。

框架优化的核心目标是最大化期望的验证器奖励。在具体实现上,LEGO-RL 采用了组相对优势估计(Group-relative advantage estimation),并结合了序列级替代目标 GSPO。其目标函数的核心思想是,为每个任务采样一组轨迹,计算出相对于该组平均表现的优势值,并对无效轨迹(如基础设施崩溃导致的失败)分配零权重,防止其参与梯度计算。

\[\mathcal{J}_{\mathrm{GSPO}}(\theta) =\mathbb{E}\left[\frac{1}{G}\sum_{i=1}^{G}w(\tau_{i})\,\min\!\Big(\sigma_{i}(\theta)\hat{A}_{i},\;\mathrm{clip}\big(\sigma_{i}(\theta),1-\epsilon_{\mathrm{low}},1+\epsilon_{\mathrm{high}}\big)\hat{A}_{i}\Big)\right]\]

要使上述基于概率比率的优化成立,必须满足严格的“忠实度要求”。因为真实的脚手架在两次模型调用之间可能会重写历史记录,所以单纯依靠事后拼接的文本是无法还原真实的生成概率的。LEGO-RL 强调,训练端在给定相同模型权重的情况下,重新计算出的每一个词元的对数概率 $\ell^{\mathrm{train}}{i,(t,j)}(\theta{k^{\prime}})$,必须在数值容差范围内完美等同于采样时记录的对数概率 $\ell^{\mathrm{roll}}_{i,(t,j)}$。这一要求不仅意味着词元 ID 和掩码必须绝对一致,对于稀疏混合专家模型而言,还要求训练时的专家路由决策必须与采样时完全重合。

LEGO-RL 训练基础设施的核心架构

为了在不侵入脚手架逻辑的前提下实现上述要求,LEGO-RL 构建了一套独特的基础设施,其核心主要依赖于进程内代理、可靠的沙盒执行环境以及异步的流水线调度。

Figure 1: Overview of the Lego-RL training infrastructure.

首先,LEGO-RL 引入了“进程内代理”(In-Process LLM Proxy)机制。每一个由脚手架发出的模型调用,都会先经过这个与采样引擎同机部署的代理层。代理层直接在模型服务边界捕获精确的词元 ID、对数概率、回复掩码以及生成元数据。当脚手架不可避免地进行了历史重写或压缩时,LEGO-RL 能够在消息(Message)粒度上对连续的上下文进行对齐。系统提示词、用户指令和工具结果必须完全匹配;工具调用则通过其稳定的标识符和函数名进行关联。对于被脚手架修改过的历史内容,系统仅将其视为条件上下文,绝不将其混入策略生成的词元掩码中。通过这种方式,即便脚手架对外部呈现的文本面目全非,底层优化的概率计算依然能够保持绝对的忠实。针对 MoE 模型,代理还会记录下每次生成的路由决策,并在训练阶段进行严格的回放重演。

其次,为了保障执行与奖励信号的可靠性,LEGO-RL 重新设计了沙盒编排逻辑。由于环境启动开销巨大,系统采用了支持按需拉取镜像块的技术,避免了全量镜像复制带来的延迟。针对困扰行业的“奖励劫持”问题(即智能体通过非常规手段使得测试通过),LEGO-RL 在沙盒内部署了严格的安全防御:网络访问受到特权 Sidecar 的限制,智能体无法篡改网络规则;在执行期间隐藏仓库历史,只有在最终验证时才将其恢复;测试依赖被硬编码打包在任务镜像中,彻底消除了外部网络波动导致的误判。这种分阶段的防御机制确保了所有获得正向奖励的轨迹,都是真正解决了代码问题的有效策略。

在整体调度上,针对代码任务交互周期长且具有严重长尾效应的特点,系统采用了完全异步的采样生成机制。采样与优化解耦,新的交互会在旧的结束后立即启动。任何由于环境崩溃导致的轨迹都会在进入优化器前被精准过滤,但保留其占位以维持批次一致性。

闭环操作工作流与训练可观测性

代码智能体的强化学习不仅仅是一个算法问题,更是一个涉及大量长周期诊断的系统工程。为此,LEGO-RL 提供了一套完整的闭环操作工作流,将数据准备、运行验证、训练执行与实时观测结合在一起。

Figure 2: Closed-loop operational workflow of Lego-RL.

在整个闭环中,最引人注目的是其提供的智能体插件与实时可视化界面(Live UI)。在过去,当模型的训练指标出现剧烈波动时,研究人员往往难以定位是因为策略崩坏,还是因为某个特定环境依赖失效。LEGO-RL 的监控系统通过将验证器结果与终止状态、具体的交互轨迹以及工具使用模式进行绑定,打破了这种黑盒状态。

研究人员可以直接在监控视图中观察不同阶段耗时的分布,识别奖励变化的来源,并通过单实例维度的任务网格,直观地审查模型解决率的变化。更为关键的是,监控系统实时跟踪并展示了批次内样本的奖励方差,以及采样-训练概率的一致性曲线。这种将高层次的强化学习指标与底层代码编辑行为深度绑定的能力,极大降低了复杂智能体系统的调试门槛,构成了该框架实现高效迭代的重要基石。

实验结论:为什么忠实度与沙盒如此重要?

论文的实验部分不仅是对 LEGO-RL 有效性的验证,更是对“原生脚手架强化学习”这一技术路线的有力背书。在使用 Qwen3.5-35B-A3B 模型进行的大规模训练中,LEGO-RL 展现了极强的泛化能力。

在不改变 OpenHands SDKClaude Code 或是 OpenCode 任何内部工作流的条件下,强化学习训练均带来了显著的性能跃升。在难度极高的 SWE-bench Verified 测试集上,OpenHands 脚手架下模型的解决率绝对提升了 6.4 个百分点(达到 70.4%),这一数据直观地证明了通过强化学习长期优化代码智能体在复杂代码仓库中的决策路径是完全可行的。

更值得关注的是其底层的概率相关性指标。实验数据显示,在整个异步训练周期中,采样端捕获的对数概率与训练端重新计算的对数概率之间的相关性始终维持在 0.99 以上。这一极高的一致性表明,LEGO-RL 的进程内代理和历史重写对齐机制,真正挡住了脚手架逻辑对训练梯度的破坏。模型在训练时更新的,确确实实是它在与环境交互时做出的真实选择,而非被系统扭曲后的伪造数据。同时,基于强隔离沙盒的错误过滤机制,成功确保了即使在并行采样的长尾失败极多的情况下,无效梯度的注入依然被降到了最低。

LEGO-RL 的出现,标志着代码智能体强化学习的范式正在从“玩具级别的定制环境”向“生产级别的原生系统”演进。它用详实的数据与系统设计证明了,我们不需要为了迎合算法框架而去阉割优秀的工程脚手架;相反,通过精密的代理对齐与强健的沙盒隔离,完全可以在保留最原汁原味的智能体工作流的同时,榨取出策略梯度优化的全部潜力。这为未来更复杂的多智能体协作、超长上下文工程任务的自主进化,铺平了坚实的基础设施道路。