如何给一个已经上线的 Agent 补上强化学习?常规答案是推倒重来:把业务逻辑重写进 RL 训练框架,重新定义环境、重写 rollout、重新调试。微软亚洲研究院 2025 年 8 月开源的 Agent Lightning 给出另一个答案:Agent 一行代码不改,训练系统伪装成它背后的 LLM API。一年后的 2026 年 8 月,完全重构的 v1.0 发布,技术报告给出了迄今最硬的成绩单——Qwen3.5-9B 编码 Agent 在 SWE-bench Verified 上从 41.8% 提升到 56.4%,只用 6000 个训练样本。截至 2026-10-08,这个 MIT 许可的项目在 GitHub 上有 1.86 万 star,它的「训练-执行分离」范式已被 verl、slime、AReaL 等主流 RL 框架反向采纳。本文拆解它的架构、算法、成绩单与争议。
一年磨一剑:从论文到 v1.0
先把时间线摆清楚。2025 年 8 月 4 日,Agent Lightning 以 v0.1 开源,次日放出配套论文《Agent Lightning: Train ANY AI Agents with Reinforcement Learning》(arXiv:2508.03680);2026 年 8 月 17 日,v1.0.0 发布,官方称之为完全重构版,并提交技术报告《Towards Harnessed Agentic RL》(arXiv:2608.17528);2026 年 9 月 29 日的 v1.0.2 又补上了 MoE 训练、CISPO 算法与多模态支持。
项目自述最有辨识度的一条是代码规模:核心框架约 3500 行。对照动辄数十万行的 verl、OpenRLHF 这类重型训练栈,这是刻意的定位选择——官方把「简单性当作第一原则」,Agent Lightning 不做训练本身的重活,只解决一个此前没人认真解决的问题:让任意现成的 Agent harness(工具、提示词、上下文管理、控制流原封不动)接进 RL 训练循环。
核心思想:训练与执行彻底解耦
原论文把这套思路叫「训练-智能体分离」(Training-Agent Disaggregation)。关键洞察是:Agent 的 RL 训练里,最吃算力的是 LLM 生成,最灵活多变的是应用逻辑,两者根本不该绑在一起。于是框架分成两端:
flowchart LR
subgraph Agent 侧
A1[LangChain / AutoGen / OpenAI Agents SDK] --> A2[工具调用与业务逻辑照常运行]
end
subgraph 训练侧
B1[Lightning Server 控制器] --> B2[verl + vLLM 训练后端]
end
A2 -- 拦截 LLM 请求-响应对,上报轨迹与奖励 --> B1
B1 -- 返回当前策略的生成结果 --> A2
Agent 侧看到的是一个 OpenAI 风格的 API 端点——训练期间,Agent 发出的每次模型调用都被 Lightning Server 代理,请求-响应对自动成为训练数据;Agent 该调工具调工具、该重试重试,完全不知道自己在「被训练」。数据捕获靠 OpenTelemetry 埋点或轻量端点追踪,官方口径是「几乎零代码修改」(HN 评论者提醒过:README 的小字里写的是 almost)。
v1.0 把这套范式升级为「Harnessed Agentic RL」,架构拆成三个组件:Trainer(跑 verl 加 vLLM 的训练后端)、API Gateway(代理请求并捕获数据)、Rollout Controller(在本地或 Kubernetes Job 里运行 Agent,原生支持 K8s,不再依赖外部沙箱服务)。v1.0 技术报告同时坦白了分离式设计的五个工程难点:重新分词、样本合并、优势计算、损失归一化与后端调度——这些正是「训练系统看不见 Agent 内部」所要付出的代价。
信用分配:LightningRL 与中间奖励
多步 Agent 的 RL 有个老大难:一次任务几十次模型调用,最终成功或失败,功劳算给哪一步?Agent Lightning 的形式化叫 LightningRL——把 Agent 执行拆成单次 LLM 调用粒度的 transition(输入、输出、奖励),同一任务的 transitions 归为一组。
v1 的处理朴素得近乎反直觉:默认每个 action 的价值相同,都等于最终回报。论文明确说这是最简假设,学习价值函数等更精细的策略留作未来工作。在此之上,优势估计沿用 GRPO 风格的分组统计——同一任务多次采样,组内对比算优势,兼容 GRPO、PPO、REINFORCE++ 等无价值函数方法;v1.0.2 又加入了 CISPO 算法。
比算法更能打的其实是一个工程设计:AIR(Automatic Intermediate Rewarding)。Agent 的监控信号——工具调用的返回状态、检索是否命中——被自动转成中间奖励,缓解多步任务的稀疏奖励问题。这意味着接入了可观测性系统的 Agent,等于免费拿到一套奖励塑形管线。
为什么「每步功劳均分」这么粗糙的假设也能工作?关键在 GRPO 式分组帮它兜了底:同一任务采样多条轨迹,成功的组整体优势为正、失败的为负,任务内的运气成分在组间对比里被抵消大半——细粒度信用分配要解决的「这步是否关键」,在统计意义上退化为「这条轨迹是否成功」。代价是样本效率与任务解耦:每步都关键但成功率稳定的任务,均分假设会稀释信号。v1.0.2 新增的 CISPO 算法(出自 release notes,源码细节以官方文档为准)正是对策略更新环节的改进,说明团队清楚这些边界。
成绩单:SWE-bench 上的两组硬数字
原论文在三个任务上验证了通用性:LangChain 做 Text-to-SQL(Spider 数据集)、OpenAI Agents SDK 做 RAG 问答(MuSiQue 加全量维基百科检索)、AutoGen 做数学工具调用(Calc-X)——三大主流框架都以近乎零修改接入,但原论文只给了训练曲线,没有可信的精确百分比,网上流传的数字不可靠。
真正值得引用的是 v1.0 技术报告的两组数字:Qwen3.5-9B 编码 Agent 在 SWE-bench Verified 上 41.8% 提到 56.4%,绝对提升 14.6 分,训练数据仅 6000 条样本;v1.0.2 补充的 MoE 成绩是 Qwen3.5-35B-A3B 从 47.8% 到 61.6%,只用 1800 条样本(CISPO 算法加 R3 routing)。官方同时开源了从数据清洗、reward hacking 防护到训练脚本的完整流程。
样本效率是这里最值得注意的信息:6000 条轨迹就把 9B 模型拉高近 15 个点,说明经过验证的真实 harness 数据比合成数据金贵得多——这也正是「用真实 harness 训练」这条路线的立论基础。
和谁比:Agent 训练工具版图
把 Agent Lightning 放进赛道坐标系,它「轻量接入层」的定位才清晰:
| 项目 | 主导方 | 定位 | 与 Agent Lightning 的关系 |
|---|---|---|---|
| verl | 字节跳动 | 高性能全功能 RL 训练栈 | Agent Lightning 的训练后端;其 Uni-Agent 反向采纳了分离范式 |
| OpenRLHF | 开源社区 | 经典重型 RLHF 框架 | 同类重型栈,无 Agent harness 抽象 |
| slime | 智谱 | 面向 RL scaling 的后训练框架 | 分离范式采纳者 |
| AReaL 2.0 | 蚂蚁 / 清华 | 异步实时 Agentic RL 系统 | 分离范式采纳者 |
| OpenEnv | Meta + Hugging Face | Gymnasium 风格的标准化执行环境 | 互补:管环境互操作,不管训练 |
| NeMo RL / NeMo Gym | NVIDIA | 1B 到万亿级模型的后训练库与环境层 | 重型通用栈 |
| Tinker | Thinking Machines Lab | 托管训练 API | 商业化路线(注意:这家是 Mira Murati 的公司,不是 OpenAI) |
| OpenAI RFT | OpenAI | 仅限自家模型的强化微调 API | 闭源托管路线 |
一句话总结分工:verl 们解决「怎么训得快」,OpenEnv 们解决「环境怎么标准化」,Agent Lightning 解决「已有 Agent 怎么零成本参与训练」——三者拼起来才是完整的 Agent 后训练栈。
值得一提的是接入方式正在变得「无感」。v1.0.1 起官方提供面向 Claude Code、Codex、Copilot 的 Agent Lightning Skill,意味着连「以 CLI 编码智能体为生产力工具」的开发者,都能以技能包形式把日常 Agent 接进训练侧;Rollout Controller 的 Kubernetes 原生支持,则把「训练时跑几百个 Agent 副本采集轨迹」变成一次 K8s Job 配置,而不是一套沙箱服务的运维工程。对团队来说,接入成本从「训练工程师改造业务代码」降到了「平台工程师写一份部署清单」,这是这条路线能走出研究院的直接原因。
社区的冷与热
技术理念得到的认可相当高——连 verl、slime、AReaL 这些「竞品」都采纳了它的分离范式。但 Hacker News 两轮讨论(2025 年 10 月主帖 98 分、2026 年 8 月 v1.0 帖 55 分)里的批评同样具体:
- 对 verl 的脆弱依赖是最扎的一条评论:有开发者直言这是「建在 verl 上的脆弱积木」,因为 verl 几乎每个提交都带破坏性变更。GitHub issue 区的实际情况印证了这点:verl 0.7.x 内嵌 vLLM 无法加载自定义 tool parser 插件(issue #592)等集成摩擦是 open issue 里最大的一类。
- README 风格争议:emoji 密集、被疑 LLM 代写;还有人讽刺它「自称简洁第一原则,代码 3500 行」。
- 复现缺口:issue #495、#511 请求开源论文对应的 EMPO² checkpoint,截至 2026-10-08 未获满足。
- 训练稳定性:探索坍缩(Agent 收敛到固定策略不再尝试新行为,issue #490)这类 RL 固有问题同样存在。
公平地说,这些都是前沿开源项目的常见病,不算致命;但想拿它跑生产的团队,应当把「verl 版本锁定」当成第一件要做的事。
为什么重要:Agent 后训练的范式信号
放在更大的图景里,Agent Lightning 的意义不在框架本身,而在它推动的范式收敛:Agent 的后训练,正在从「把世界简化成 Gym 环境」转向「让真实 harness 直接参与训练」。
微软自家已经在同一方向上布了一个矩阵:rStar2-Agent 用 Agentic RL 把 14B 模型推到 AIME 前沿水平(arXiv:2508.20722)、Agent World Model 自动合成上千个训练环境(arXiv:2602.10090)。行业侧,2026 年的讨论焦点已经从「用什么算法」转向「训练环境从哪来」——当真实任务数据不够用时,字节 Agent-World、ScaleEnv 等环境合成项目与 Agent Lightning 这类真实 harness 接入层,恰好构成了「合成环境 + 真实场景」的两翼。2026 年 9 月的一篇赛道综述还点出了新隐忧:Agent 会在训练中过拟合特定行动模式,在真实环境里一触即碎——这也反过来支持「用真实 harness、真实工具链训练」的路线:环境越真,过拟合的代价越小。
对开发者,现在的行动建议很直接:如果你的 Agent 已经接了 OpenTelemetry 这类可观测性埋点,用 Agent Lightning 试水 RL 后训练的迁移成本,是历史上最低的时点——代价是接受它对 verl 生态的依赖,以及 3500 行代码背后必然的糙边。
参考资料
- microsoft/agent-lightning(GitHub):仓库、README、Releases(v1.0.0 2026-08-17 / v1.0.2 2026-09-29),18.6k star 为 2026-10-08 快照。
- Agent Lightning: Train ANY AI Agents with Reinforcement Learning(arXiv:2508.03680):原论文,训练-智能体分离架构与 LightningRL/AIR 机制。
- Agent Lightning v1.0: Towards Harnessed Agentic RL(arXiv:2608.17528):v1.0 技术报告,SWE-bench Verified 41.8% 到 56.4% 的出处。
- HN:Agent Lightning: Train agents with RL(2025-10):社区好评与批评的一手记录。
- rStar2-Agent(arXiv:2508.20722):微软 Agentic RL 路线的另一块拼图。
- Agent World Model(arXiv:2602.10090):训练环境自动合成方向,与本文主题构成「环境侧」对照。
读者留言
COMMENTS 暂无还没有留言,来说第一句?