AREX Feed Article
微软研究院介绍 Agent Lightning v1.0:现有 AI agent 无需重建即可接入强化学习训练
10 月 7 日,微软研究院(Microsoft Research)发布一篇,介绍 Agent Lightning v1.0:一套约 3,500 行代码的轻量级框架,用来把现有的 AI agent 接入强化学习(RL)训练。同日,微软研究院的 X 账号 称,Agent Lightning 能把现有 agent 与 RL 训练连接起来,让改进它们无需重建。
微软亚洲研究院(Microsoft Research Asia)的研究者提出了 Harnessed Agentic RL 训练范式:让部署时真正在用的 agent harness(在模型外管理工具、上下文与控制流的运行层)直接参与模型后训练,不必在训练框架里把 agent 重新实现一遍。博客称,v1.0 把重点放在轻量化、对接真实 harness 和完整可复现的训练流水线上。
让部署时在用的 harness 直接进入训练循环
传统 agentic RL 的前提是训练框架自己掌控与环境交互的循环:以 ReAct 式流程为例,模型生成动作,环境返回观察,观察被追加进上下文,模型再生成下一个动作,整条 rollout(执行轨迹)因此映射成一条连续的 token 轨迹。verl、AReaL、slime 等早期系统都按这个假设搭建,训练一个 agent 往往意味着要在 RL 框架里把它的循环重写一遍。
真实的 harness 超出了这个假设:博客点名的编码 agent(mini-SWE-agent、OpenHands、OpenCode、Claude Code、Codex)各自带着自己的上下文管理、工具协议、执行逻辑与依赖;照着重写不仅昂贵,重写出来的 agent 也可能不再等同于实际部署的那个 agent。
Agent Lightning 的做法是在 agent 和模型之间放一个 LLM proxy(代理):把原先调用模型 API 的端点指向它,训练框架就能观察并记录 agent 的每一次模型调用。博客称,对现有 harness 来说,通常只需这一步,就能快速接入 RL 训练。
三个组件与共用 GPU 的调度
博客说 v1.0 把「简单」当作系统设计的第一原则,整套框架由三个组件构成:
- API Gateway 保存 rollout、模型与事件,同时是一个兼容 OpenAI API 的 LLM proxy,把 harness 发出的每一次模型调用与对应的 rollout 关联起来,记录训练所需的 prompt、回复与 log 概率;
- Rollout Controller 启动并管理 agent 的执行,可以是本地进程,也可以是标准 Kubernetes 任务,把 agent 的执行与训练器分开;
- Customized Trainer 构建在 verl 之上,负责发起 rollout、等待完成、收集样本,再经由 sample adapter(样本适配器)组装成最终训练样本。
调度上,v1.0 引入了 Collocated Async RL:rollout 与模型更新共用同一组 GPU。系统收集到足够多的 rollout 后开始更新,API Gateway 暂停接收新请求、等待进行中的请求结束,更新完成后再恢复 rollout,整个状态切换对 harness 透明。博客称,与同步 RL 相比,这一调度带来约 2 倍的端到端加速,占用 GPU 还少于常规的异步 RL。
部署方面,v1.0 原生支持 Kubernetes:agent 直接以标准 Kubernetes 任务运行,不依赖 Modal Sandbox、E2B 这类商业沙箱服务,可复用自管集群、云上 Kubernetes 或本地基础设施。博客称,其他 Harnessed Agentic RL 框架常把 agent 托管在商业沙箱服务上,成本会随规模快速上升。
一个 rollout 被拆成多个样本,随之而来的四个工程难题
Harnessed Agentic RL 与传统方式的核心差别在于:环境交互的循环由 harness 而非训练框架掌控,训练系统只能观察到一串 LLM 请求与回复。这意味着一次 rollout 可能被拆成数量不定的训练样本。博客列出四个由此产生的工程问题:
- 重分词与样本合并:harness 以文本保存上下文,RL 训练却需要 rollout 时实际采样出的 token ID(词元编号);文本再次经过 chat template(对话模板)与分词器会让 token 边界发生偏移,相邻调用并不总能合并成一个样本。
- 优势值计算:重分词、子 agent 与上下文摘要都会把一次 rollout 拆成多个样本;直接在样本层面计算基线与优势值,会让产生样本更多的 rollout 被重复计数,改变原本 rollout 层面的统计关系。
- 损失归一化:按样本数平均损失,会给产生更多样本的 rollout 更高权重;而样本数往往只是 harness 行为的副产物,归一化必须避免被它扭曲。
- 训练后端调度:样本的数量与长度要等 harness 跑完才知道,GPU 数量与数据并行、张量并行配置却是固定的,后端必须把可变负载映射到固定资源上。
配套技术报告《Agent Lightning v1.0: Towards Harnessed Agentic RL》()称,这些问题可能显著影响训练的稳定性与效果。
编码示例:约 6,000 条样本与 rollout 级处理
博客给出的完整示例是一条编码 agent 流水线:基座模型 Qwen3.5-9B,agent 侧使用 mini-SWE-agent,训练数据来自 SWE-smith,流程覆盖数据清洗、环境构建、防 reward hacking(防止模型钻奖励空子)与 RL 训练。训练集约 6,000 条样本,不需要大规模算力。评测在公开基准 SWE-bench Verified 上进行:纯 RL 训练后,模型 Pass@1 从 41.8% 升到 56.4%,绝对提升 14.6 个百分点。
针对优势值计算与损失归一化这两个难题,博客给出了对照结果:相比样本级处理,rollout 级优势值加 rollout 级归一化在 SWE-smith 验证集上取得更高的验证奖励,训练期间策略熵也更稳定。
还记录了一个 9 月新增的示例:对 MoE(混合专家)模型 Qwen3.5-35B-A3B 做纯 RL,只用约 1,800 条训练样本,就把 SWE-bench Verified 从 47.8% 升到 61.6%,绝对提升 13.8 个百分点。
上述数字均出自微软研究院发布的博客、技术报告与仓库。
从 2025 年的原始版到一次完整重写
Agent Lightning 并非全新项目。2025 年 8 月 5 日,一篇题为《Agent Lightning: Train ANY AI Agents with Reinforcement Learning》的论文提交到 ;2025 年 12 月 11 日,微软研究院博客发布了一文,介绍当时的版本。
v1.0 是一次完整重写。GitHub 显示,v1.0.0 于 2026 年 8 月 17 日发布,最新版本 v1.0.2 于 9 月 29 日发布;技术报告于 8 月 18 日提交到 arXiv。10 月 7 日的博客文章介绍了 v1.0 与 Harnessed Agentic RL,署名作者为 Zhiyuan He 与 Yuqing Yang。技术报告还称,最初版本采用解耦架构,通过 LLM 端点代理把任意 agent 接上 RL 训练,这一思路后来被 verl Uni-Agent、AReaL 2.0、slime、Polar 等框架采用。
MIT 开源、文档与示例
代码以 MIT 许可证在 GitHub 开源;截至 10 月 8 日,仓库有 18,579 个 star、1,657 个 fork,早于 v1.0 的旧版本保留在单独的 v0.x 分支。仓库附有文档与一系列示例,覆盖数学推理、检索与编码 agent 等场景;README 给出的安装示例面向 CUDA 13.0 环境,训练侧依托 verl 与 vLLM。
技术报告把 v1.0 定位为研究这四类问题的「实用试验台」(a practical testbed):完整工作流与训练脚本已随代码发布,用于推动 harnessed agentic RL 的可复现研究。