概览

  • Harnessed Agentic RL:Microsoft Research Asia 提出了一种训练范式,让部署时使用的同一套智能体运行框架直接参与强化学习,无需在训练框架中重新实现智能体。
  • 轻量化设计:Agent Lightning v1.0 用大约 3,500 行代码实现了完整的智能体强化学习控制平面。
  • 原生支持 Kubernetes:智能体作为标准 Kubernetes 任务运行在自主管理的集群、云端 Kubernetes 或本地基础设施上,无需依赖付费商业沙箱服务。
  • 高数据效率的训练方案:一条端到端编码智能体流水线仅使用基于开源数据集的约 6,000 个训练样本,就将 Qwen3.5-9B 在 SWE-bench Verified 上的 Pass@1 从 41.8% 提升至 56.4%,提高了 14.6 个百分点。

AI 智能体已经从单一模型发展为由模型、工具和执行环境构成的复杂全栈系统。它们的能力越来越依赖于在模型外部进行协调的智能体运行框架。强化学习(RL)是一种让 AI 系统通过试错来学习的方法,其行动受到奖励和惩罚的引导。强化学习可以让这些智能体变得更好,但大多数智能体强化学习系统都要求开发者在训练框架中重新实现智能体。这不仅成本高昂,还意味着受训的智能体与最终部署的智能体并不完全相同。

为了解决这个问题,Microsoft Research Asia 的研究人员提出了 Harnessed Agentic RL 训练范式,并开源了完全重建的 Agent Lightning v1.0(在新标签页中打开)。与最初的 Agent Lightning 相比,v1.0 更注重保持轻量、与真实运行框架集成,以及提供完整、可复现的智能体强化学习训练流水线。

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 构建的端到端流水线仅使用约 6,000 个训练样本,就将其在 SWE-bench Verified 上的 Pass@1 从 41.8% 提升至 56.4%,绝对提升了 14.6 个百分点。

传统智能体强化学习的局限

传统智能体强化学习假定训练框架负责与环境交互的循环。在 ReAct 风格的循环中,模型生成一个动作,环境返回一个观察结果,该结果被追加到上下文中,随后模型生成下一个动作,因此整个采样过程对应一条连续的 token 轨迹。verl、AReaL 和 slime 等早期强化学习系统就是这样构建的,这意味着训练智能体需要在强化学习框架内重新构建其循环。

真实的运行框架早已超出这一假设的范围。mini-SWE-agent、OpenHands、OpenCode、Claude Code 和 Codex 等编码智能体各自拥有自己的上下文管理、工具协议、执行逻辑和依赖,通用智能体系统也是如此。为训练重新构建其中任何一个都成本高昂,而且重建后的智能体行为可能不再与部署的智能体一致。

Agent Lightning 采用了不同的路径:它在智能体和模型之间放置一个大语言模型代理。智能体继续照常运行:只需将原先调用模型 API 的端点指向 Agent Lightning,训练框架就能观察并记录其模型调用。在 v1.0 中,研究人员更进一步,将这一范式正式定义为 Harnessed Agentic RL:部署时使用哪套智能体运行框架,训练时就由哪套框架直接参与强化学习(图 1)。

使用真实运行框架训练面临的四项挑战

Harnessed Agentic RL 与传统智能体强化学习的核心区别在于,与环境交互的循环由智能体运行框架处理,而非由训练框架处理。训练系统只能观察到一系列大语言模型请求和响应对,因此一次采样过程可能被拆分为数量不定的训练样本。这带来了四项关键挑战:

  • 重新分词与样本合并:运行框架以文本形式保存上下文,但强化学习训练需要采样过程中产生的 token ID。再次通过聊天模板和分词器处理文本可能改变 token 的边界,因此相邻调用并不总能合并为一个样本。
  • 优势值计算:重新分词、子智能体和上下文摘要可能将一次采样过程拆分为多个样本。直接在样本层面计算基线和优势值,会导致产生更多样本的采样过程被重复计数,从而改变采样过程层面原有的统计关系。
  • 损失归一化:按样本数量计算平均损失,会赋予产生更多样本的采样过程更高的权重。由于样本数量往往只是运行框架行为的结果,损失归一化也必须避免受到它的扭曲。
  • 训练后端调度:只有在运行框架执行结束后,才能知道样本的数量和长度,而 GPU 数量以及数据并行、张量并行配置通常是固定的。后端必须将可变的工作负载映射到固定的资源上。

播客系列

创想

收听 Microsoft 研究社区的成员讨论推动他们研究的信念、启发他们的经历和思想家,以及他们希望为人类带来的积极影响。

立即收听

在新标签页中打开

用 3,500 行代码构建完整的智能体强化学习控制平面

在系统设计上,Agent Lightning v1.0 将简洁作为首要原则。整个框架约有 3,500 行代码,包含三个核心组件:API 网关、采样控制器和定制训练器(图 2)。

API 网关存储采样轨迹、模型和事件,并充当兼容 OpenAI 的大语言模型代理。它将运行框架发出的每次模型调用关联到对应的采样过程,并记录训练所需的提示词、响应和对数概率。采样控制器以本地进程或标准 Kubernetes 任务的形式启动和管理智能体的执行,使智能体执行与训练器相互独立。基于 verl 构建的定制训练器负责创建采样任务、等待其完成、收集样本,并通过样本适配器组装最终的训练样本。因此,对于现有的智能体运行框架,通常只需将模型端点指向 Agent Lightning 代理,就能快速接入强化学习训练。

同位异步强化学习

不同智能体的采样耗时差异很大。同步强化学习需要等待批次中最慢的智能体,导致 GPU 闲置;完全异步的强化学习虽然能提高利用率,但需要为采样和训练分别配置 GPU 资源池。为此,Agent Lightning v1.0 引入了同位异步强化学习,让采样和模型更新共享同一组 GPU。

系统收集到足够的采样轨迹后,更新便开始:API 网关暂停接受新请求,并等待正在处理的请求完成;更新结束后恢复采样。整个状态转换对外部智能体运行框架透明。在实验中,这种方法相比同步强化学习实现了约 2x 的端到端加速,同时使用的 GPU 少于传统异步强化学习(图 3)。

在 Kubernetes 上运行智能体

收集足够的采样轨迹意味着要同时运行大量智能体,这会消耗可观的 CPU、内存和计算资源。其他 Harnessed Agentic RL 框架通常将这些智能体托管在 Modal Sandbox 或 E2B 等商业沙箱服务上,成本会随着规模扩大而迅速上升。Agent Lightning v1.0 则将它们作为标准 Kubernetes 任务运行,复用现有的自主管理集群、云端 Kubernetes 或本地基础设施(图 4)。这样可以更高效地利用现有计算资源,降低大规模采样的成本,同时让整条流水线保持开源且可复现。

6,000 个训练样本,性能提升 14.6 个百分点

为了测试这一方法,研究人员基于 SWE-smith、mini-SWE-agent 和 Qwen3.5-9B 构建了一套完整的流程,涵盖数据清洗、环境构建、防范奖励投机以及 RL 训练。训练集约有 6,000 个样本,无需大规模算力。仅通过 RL 训练,Qwen3.5-9B 在 SWE-bench Verified 上的得分就从 41.8% 提升至 56.4%,提高了 14.6 个百分点。

编码智能体实验进一步证实了此前对两个挑战的分析:优势值计算和损失归一化。与样本级处理相比,将 rollout 级优势值与 rollout 级归一化结合使用,能获得更高的验证奖励,并在训练期间使策略熵保持得更加稳定(图 5)。

技术报告

GitHub 项目

在新标签页中打开

文章 Agent Lightning v1.0:一个 3,500 行的轻量级智能体 RL 框架,使用真实运行环境训练智能体 首发于 Microsoft Research。