Microsoft Research

Agent Lightning v1.0:一个包含3,500行代码的轻量级代理强化学习框架,用于使用真实环境对代理进行训练

使用强化学习训练 AI 代理可能具有挑战性,因为它们的工具、上下文和决策过程都由复杂的框架管理。Agent Lightning 可以将现有代理与强化学习训练相结合,从而无需重新构建即可轻松改进它们。关于 Agent Lightning v1.0:一个包含 3,500 行代码的轻量级代理式强化学习框架用于训练具有实际功能的代理的报道首次出现在 Microsoft Research 上。

System architecture diagram. On the left, agents with harnesses — mini-SWE-agent, OpenHands, and OpenClaw — run on a Kubernetes cluster. They connect to three components: an API Gateway containing a Rollout API and an LLM API Proxy, a Rollout Controller containing a local reconciler and a Kubernetes reconciler, and a Customized Trainer containing a sample adapter and monitoring. These connect in turn to an inference engine and a training engine holding the model.
配图来源 · Microsoft Research
System architecture diagram. On the left, agents with harnesses — mini-SWE-agent, OpenHands, and OpenClaw — run on a Kubernetes cluster. They connect to three components: an API Gateway containing a Rollout API and an LLM API Proxy, a Rollout Controller containing a local reconciler and a Kubernetes reconciler, and a Customized Trainer containing a sample adapter and monitoring. These connect in turn to an inference engine and a training engine holding the model.

一眼看去

  • 利用代理式强化学习: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)。

Figure 1: Side-by-side comparison of two training loops. In Agentic RL, the environment exchanges actions and observations with a tokenizer, which passes action and observation tokens to the policy model. In Harnessed Agentic RL, an agent harness handling context and orchestration sits between the environment and an OpenAI-like API, which exchanges input and output tokens with the policy model.
图 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 代理即可快速实现强化学习训练。

Figure 2: System architecture diagram. On the left, agents with harnesses — mini-SWE-agent, OpenHands, and OpenClaw — run on a Kubernetes cluster. They connect to three components: an API Gateway containing a Rollout API and an LLM API Proxy, a Rollout Controller containing a local reconciler and a Kubernetes reconciler, and a Customized Trainer containing a sample adapter and monitoring. These connect in turn to an inference engine and a training engine holding the model.
图 2. Agent Lightning v1.0 系统架构,展示了 API 网关、部署控制器以及定制训练器。

合并异步强化学习

各代理的部署时间差异很大。同步强化学习会等待批次中最慢的代理,导致 GPU 处于空闲状态;而完全异步强化学习则能提高利用率,但需要独立的 GPU 池用于部署和训练。作为回应,Agent Lightning v1.0 引入了共位异步强化学习,使得部署和模型更新能够共享相同的 GPU 资源。

当系统收集到足够的部署数据后,更新过程便开始:API Gateway 停止接受新请求,并等待正在进行的请求完成,之后在更新结束后再恢复部署。整个状态转换过程对外部代理框架是透明的。实验表明,这种方法相比同步 RL 能实现约 2 倍的端到端速度提升,且使用的 GPU 数量也少于传统异步 RL(图 3)。

Figure 3: Three GPU scheduling timelines. Synchronous RL uses four GPUs at low efficiency, with long idle gaps before a single update block. Collocated Async RL uses the same four GPUs at high efficiency, interleaving full and partial rollouts with update blocks. Asynchronous RL reaches high efficiency but requires eight GPUs. Bars are colored for full rollout, partial rollout, and update.
图 3. 同步强化学习、异步强化学习与共位异步强化学习的比较。共位异步强化学习能够在使用更少的 GPU 的同时提高利用率。

在 Kubernetes 上运行代理

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

Figure 4: Flow diagram. An API Gateway holds three rollouts, two queueing and one running. The Rollout Controller polls the gateway and uses a Kubernetes reconciler to create jobs on a Kubernetes cluster, and a local reconciler to watch and list local processes. Status updates flow back to the gateway.
图 4. Agent Lightning v1.0 中的 Rollout Controller 提供原生 Kubernetes 支持,能够直接将代理作为标准的 Kubernetes 作业运行。

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)。

Figure 5: Two line charts plotting 200 training steps. On the left, validation reward: rollout-level advantage combined with rollout-level normalization reaches the highest reward at about 0.37, above rollout-level advantage alone and sample-level advantage. On the right, policy entropy: rollout-level advantage alone climbs steeply to about 0.65, while the combined method stays lower and steadier.
图 5. Qwen3.5-9B在SWE-smith验证集上的通过率与策略熵值。
技术报告 GitHub 项目

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

原始出处

Microsoft Research

内容说明

原始发布及相关权利归来源方。

机器翻译 · 请以原文为准