
一眼看去
- 利用代理式强化学习:Microsoft Research Asia 提出了一种训练范式,其中在部署中使用的相同代理直接参与强化学习过程,无需在训练框架内重新实现该代理。
- 设计上轻量:Agent Lightning v1.0 通过大约 3,500 行代码实现了完整的智能体强化学习控制框架。
- 原生 Kubernetes 支持:代理在自管理的集群、云端的 Kubernetes 或本地基础设施上作为标准的 Kubernetes 作业运行,无需依赖付费的商业沙箱服务。
- 数据高效训练方法:一个端到端的编码代理流程使得 Qwen3.5-9B 在 SWE-bench Verified 测试上的 Pass@1 得分从 41.8% 提升到了 56.4%,提升了 14.6 个百分点,且仅使用了约 6,000 个训练样本,这些样本来自开源数据集。
AI代理已经从单个模型发展成为由模型、工具和执行环境构成的复杂全栈系统。它们的能力越来越依赖于从模型外部来协调这些系统的代理框架。强化学习是一种通过试错来学习的方法,其行动会受到奖励和惩罚的引导。 RL 可以提升那些智能体性能,但大多数智能体 RL 系统要求开发人员在训练框架中重新实现智能体。这成本较高,且意味着被训练的智能体与最终部署的智能体并不完全相同。
为了解决这一问题,Microsoft Research Asia 的研究人员提出了 Harnessed Agentic RL 训练范式,并开源了完全重新构建的 Agent Lightning v1.0(在新标签页中打开)。与原始版本相比,Agent Lightning v1.0 更注重轻量化,更注重与真实环境的交互,以及完整的、可复现的代理 RL 训练流程。
Agent Lightning v1.0 基于 Harnessed Agentic RL 重新构建,并带来了关键改进:
- 轻量级:整个框架包含约 3,500 行代码。Agent Lightning v1.0 在足够简洁易懂的代码中实现了完整的 Harnessed Agentic RL 系统,便于理解、修改和扩展。
- 在真实代理框架上的训练:在 Agent Lightning v1.0 中,代理通过大型语言模型(LLM)代理与模型进行交互,现有框架代码保持不变。
- 原生 Kubernetes 支持:代理直接作为 Kubernetes 作业运行,无需使用外部商业沙箱服务。无论是自管理集群还是本地基础设施,都能实现大规模部署。
- 一个完整的编码代理训练示例:基于 Qwen3.5-9B 构建的端到端流程使 Pass@1 在 SWE-bench Verified 上的得分从 41.8% 提升到了 56.4%,绝对提升幅度为 14.6 个百分点,仅使用了约 6,000 个训练样本。
传统代理式强化学习的限制
传统的代理式强化学习假设训练框架拥有与环境的交互循环。在 ReAct 风格의循环中,模型生成一个动作,环境返回一个观测值,该观测值被添加到上下文中,然后模型再生成下一个动作,因此整个流程可以映射为一条连续的令牌轨迹。早期的强化学习系统如 verl、AReaL 和 slime 都是采用这种方式构建的,这意味着训练代理需要在其内部重建该循环。
真正的控制架构已经不再符合那种假设。诸如 mini-SWE-agent、OpenHands、OpenCode、Claude Code 和 Codex 这样的编码代理,以及通用代理系统,都拥有各自独立的上下文管理、工具协议、执行逻辑和依赖关系。重新构建一个用于训练的代理非常昂贵,而且重建后的代理可能不再像已部署的代理那样运行。
Lightning Agent选择了另一种方式。它在 Agent 和模型之间设置了 LLM 代理。Agent 仍然像以前一样运行:只需将之前调用模型 API 的端点指向 Lightning Agent,那么训练框架就能观察到并记录其模型调用行为。 在 v1.0 版本中,研究人员进一步将这一范式正式定义为“利用型代理强化学习”:在部署过程中使用的任何代理都直接参与训练阶段的强化学习过程(图 1)。

使用真实挽具训练中的四个挑战
Harnessed Agentic RL与传统 agentic RL之间的核心差异在于,环境交互循环由代理 harness 负责处理,而非训练框架。训练系统只能观察到一系列 LLM 请求与响应对,因此单次测试过程可能被划分为不同数量的训练样本。这带来了四个主要挑战:
- 重新令牌化与样本合并:Harness 会将上下文保留为文本形式,但强化学习训练则需要在滚动过程中采样的令牌 ID。再次将文本通过聊天模板和分词器处理可能会改变令牌边界,因此相邻的调用并不总是能合并为一个样本。
- 优势计算:重新标记、子代理和上下文总结可以将一次发布拆分为多个样本。在样本级别直接计算基线值和优势值会导致产生更多样本的发布被重复计数,从而改变发布级别的原始统计关系。
- 损失归一化:通过样本数量对损失进行平均,可以给予产生更多样本的部署更大的权重。由于样本数量通常只是 harness 行为的产物,因此损失归一化也必须避免被其扭曲。
- 后端调度训练:样本数量和长度只有在测试完成后才能确定,而 GPU 数量及数据/张量并行配置通常都是固定的。后端必须将可变的工作负载映射到固定资源上。
Spotlight:微软研究通讯
微软研究通讯
今天订阅吧使用 3,500 行代码构建完整的代理强化学习控制平面
在系统设计中,Agent Lightning v1.0 将简单性作为其首要原则。整个框架包含约 3,500 行代码,由三个核心组件构成:API Gateway、Rollout Controller 和 Customized Trainer(图 2)。
API网关存储了部署、模型及事件信息,同时作为与 OpenAI 兼容的 LLM 代理。它将工具包中的每一次模型调用与相应的部署关联起来,并记录训练所需的提示语、响应内容以及日志概率值。部署控制器负责启动和管理智能体的执行过程,既可以通过本地进程实现,也可以通过标准的 Kubernetes 作业完成,从而将智能体的执行与训练过程分开。 基于 verl 构建的定制训练器能够执行部署操作,等待任务完成,收集样本,并通过样本适配器将最终训练样本整合起来。因此,对于现有的代理框架,只需将模型端点指向 Agent Lightning 代理即可快速实现强化学习训练。

合并异步强化学习
各代理的部署时间差异很大。同步强化学习会等待批次中最慢的代理,导致 GPU 处于空闲状态;而完全异步强化学习则能提高利用率,但需要独立的 GPU 池用于部署和训练。作为回应,Agent Lightning v1.0 引入了共位异步强化学习,使得部署和模型更新能够共享相同的 GPU 资源。
当系统收集到足够的部署数据后,更新过程便开始:API Gateway 停止接受新请求,并等待正在进行的请求完成,之后在更新结束后再恢复部署。整个状态转换过程对外部代理框架是透明的。实验表明,这种方法相比同步 RL 能实现约 2 倍的端到端速度提升,且使用的 GPU 数量也少于传统异步 RL(图 3)。

在 Kubernetes 上运行代理
收集足够的部署量意味着同时运行大量代理,这会消耗大量的 CPU、内存和计算资源。其他被利用的代理式强化学习框架通常将这些代理托管在 Modal Sandbox 或 E2B 等商业沙箱服务上,随着规模扩大,成本会迅速上升。相比之下,Agent Lightning v1.0 则通过标准的 Kubernetes 作业来运行这些代理,从而复用现有的自我管理的集群、云 Kubernetes 或本地基础设施(见图 4)。 现有的计算资源被更高效地利用,大规模部署的成本更低,且整个流程系统仍为开源且可复现。

6,000个训练样本,性能提升14.6点
为了测试该方法,研究人员在 SWE-smith、mini-SWE-agent 和 Qwen3.5-9B 上构建了一个完整的流程,包括数据清洗、环境构建、奖励优化措施以及强化学习训练。训练集包含约 6,000 个样本,不需要大规模计算资源。仅通过强化学习训练,Qwen3.5-9B 在 SWE-bench Verified 上的准确率从 41.8% 提升到了 56.4%,提升了 14.6 个百分点。
编码代理的进一步实验再次证实了之前对两个挑战的分析:优势计算与损失归一化。与样本级处理相比,部署级优势结合部署级归一化能够获得更高的验证奖励,并在训练过程中使策略熵更稳定(图 5)。

该文章 Agent Lightning v1.0:一个包含 3,500 行代码的轻量级代理式强化学习框架,用于训练具有真实控制装置的代理 最初发表于 Microsoft Research。
