📌 项目地址:microsoft/agent-lightning | ⭐ 17,248 颗星 | 🔧 Python | 📜 MIT
微软研究院最近开源了一个叫 Agent Lightning 的项目,GitHub 上 17248 个星,论文挂在 arXiv 上(2508.03680)。它不造新的 Agent 框架,而是给已有的 Agent 系统加一条训练回路——让 Agent 根据跑过的任务轨迹自己改进策略。目标用户是那些已经在用 LangChain、AutoGen、CrewAI 这些框架搭 Agent,想加上优化能力但不想动底层代码的团队。
项目地址:https://github.com/microsoft/agent-lightning
文档:https://microsoft.github.io/agent-lightning/
核心设计:几乎零代码改动,但奖励函数是必须的
项目官方说“ZERO CODE CHANGE”,括号里有个“almost”。这不算骗人,但有条件。
不用改的部分:你的 Agent 逻辑、LLM 调用、工具调用流程。支持 LangChain、OpenAI Agent SDK、AutoGen、CrewAI、微软自己的 Agent Framework,甚至你直接写 Python 调 OpenAI API 也可以。仓库的 examples 目录下放了各种框架的示例代码,我扫了一遍,确实没让你改 Agent 内部结构。
必须写的东西:一个奖励函数。奖励函数告诉你“什么行为是好的”。比如 SQL 写对了得 1 分,写错了得 0 分;任务完成得 10 分,超时得 -5 分。项目说“almost zero code change”的脚注里暗示了这个是必需的。此外还要定义一个触发条件——什么时候收集轨迹做训练?比如每跑完 N 次任务做一次聚合。
对大部分团队来说,写一个奖励函数比从头搭 RL 训练管道要现实得多。奖励函数定义得好坏直接影响最终效果。
三种优化算法,按你的数据情况选
Agent Lightning 支持强化学习、自动提示优化、监督微调。三种不是平替关系,分别适合不同的场景。
强化学习(RL)
基于奖励信号调整 Agent 的决策策略。不需要人工标注数据,只需要一个评分函数(奖励函数)。适合那些“成功标准明确、但行为空间大”的任务。比如让 Agent 写 SQL 并执行,检查结果是否正确。项目有一篇 Medium 文章专门讲这个案例(8/11/2025)。
自动提示优化
系统自动调整 Prompt 的措辞和结构,用同一个 LLM 反复测试效果,选出最优版本。适合不想碰模型微调的团队,尤其适合那些 Prompt 敏感的任务。如果你团队里很多人喜欢手动调 Prompt,那这个东西能省很多时间。
监督微调(SFT)
用人工标注的高质量轨迹直接微调模型的参数。适合手头有大量历史对话记录、且数据质量有保证的团队。比如你已经收集了几万条好的 Agent 行为日志,可以直接用来训练。
从我自己的使用经验看,如果你第一次接触 RL,建议从自动提示优化或 SFT 入手。奖励函数写不好,RL 进去会把 Agent 带偏。
三个工程细节值得注意
1. 轨迹级别聚合(Trajectory Level Aggregation)
训练时不等到每步 LLM 调用都更新权重,而是等一整条任务轨迹跑完后,对轨迹内所有微调步骤做批量聚合。单步信号噪音大,离散更新在 Agent 场景下容易震荡。轨迹级聚合让训练更稳定,通信开销也低。这个特性在 2025 年 12 月 17 日的官方博客里有详细说明。
2. 解决 Retokenization Drift
传统 RL 训练时保存每条消息的 Token ID,但生产推理时重新分词会导致 ID 和实际文本不匹配。离线测试评分高,线上表现掉队。Agent Lightning 通过兼容 OpenAI 的 API 直接返回原始的 Token ID,根除这个偏差。这个坑是 vLLM 团队在 2025 年 10 月 22 日的博文里指出的。
3. 多 Agent 选择性优化
在多 Agent 系统中,状态紧密耦合,全拆开不现实。Agent Lightning 允许只优化其中一个或几个 Agent,其他保持原样。甚至可以用不同的奖励函数优化不同的 Agent。比如你用 AutoGen 搭了一个客服系统,可以只优化负责下单的 Agent,而不要动其他 Agent。
安装与起步
pip install agentlightning
想尝鲜测试版(Nightly build):
pip install --upgrade --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ --pre agentlightning
详细安装指南在文档里:https://microsoft.github.io/agent-lightning/stable/tutorials/installation/
代码示例在仓库的 examples 目录,覆盖了各种框架。建议从那里开始跑,跑通一个例子后再往自己项目里搬。
什么时候该用,什么时候跳过
该用:
- 你有一个在生产环境跑着的 Agent,想加上训练能力但不能大规模重构代码。
- 你的任务有明确的成功标准,能写出准确的奖励函数(比如正确率、完成率、成本等)。
- 你在多个 Agent 框架之间踩坑,需要一个统一的优化后端。
不该用:
- Agent 需要每步实时自适应。Agent Lightning 是离线分阶段优化:先收集轨迹,再做训练,最后更新策略。两阶段之间有延迟,不适合实时场景。
- 你写不出或写不准奖励函数。RL 进来会让 Agent 越来越偏。
- 你只想快速调一个 Prompt 跑一次测试。那个场景用 LangSmith 或提示词调试工具更快。
这个项目方向对,工程实现有几个亮点。建议先读 arXiv 论文(https://arxiv.org/abs/2508.03680)和 vLLM 博文(https://blog.vllm.ai/2025/10/22/agent-lightning.html)。项目有 Discord 社区(https://discord.gg/RYk7CdvDR7),维护者经常在线回答问题。