Agent Lightning —— 通用智能体优化框架
微软开源了Agent Lightning框架,这是一个连接智能体开发与模型训练的中间层解决方案。该框架采用训练-智能体分离式架构,包含Lightning Server和Client两大核心模块,支持LangChain、AutoGen等主流智能体框架与verl等训练框架的无缝对接。主要特点包括零代码侵入的强化学习、广泛的框架兼容性以及错误监控能力,适用于多智能体协作、大规模知识库交互等场景。
agent-lightning简介
agent lightning 是微软开源的一个 灵活且可扩展的智能体优化框架,旨在解决现有模型训练框架与智能体(Agent)框架之间缺乏兼容性的问题。
它首创了 训练-智能体分离式架构,通过 Lightning Server 与 Lightning Client 两大核心模块,构建轻量级中间层,将 LangChain、AutoGen 等主流智能体开发框架与 verl 等训练框架无缝衔接。借助这种设计,模型优化能力可以以服务的形式赋能所有智能体,大幅降低高性能自适应智能体的开发、迭代和部署门槛。
这种解耦架构让智能体优化和开发彻底分离。开发者无需修改任何现有代码,智能体即可在真实任务环境中自动收集交互数据,并将其输入优化流程。结合强化学习(RL)等方法,智能体能够持续进化,更好地适应特定任务和场景。
目前,Agent Lightning 的核心聚焦于通过强化学习提升智能体的整体性能。同时也在扩展更多优化手段,如监督微调(SFT)、课程学习(CL),以及提示词微调、模型选择等无需训练的方式。不同优化技术可以针对不同模型与应用场景,实现更高效、更精准的效果提升。
项目亮点
零侵入强化学习
无需修改现有的智能体业务逻辑代码,即可将智能体接入 RL 训练,降低了开发成本和复杂度。
广泛的框架兼容性
- 智能体框架支持:兼容 OpenAI Agents SDK、LangChain、AutoGen、LangGraph 等主流开发工具,开发者无需重构现有智能体;
- 训练框架支持:默认集成强化学习框架 verl,未来计划扩展 LLaMA-Factory、DSPy 等后端,适配不同优化场景需求;
错误监控及稳定优化
实时跟踪智能体的执行状态,检测故障模式。在智能体出现异常的情况下保持优化过程的连续性和可靠性。
应用场景
-
在由多个智能体协作完成的复杂任务中,同时优化多个智能体的行为,以提升整体系统的性能和协调能力。
示例:在 Text-to-SQL 系统中,Agent Lightning 同时优化 SQL 生成智能体和 SQL 检查智能体的行为,显著提升了从自然语言生成可执行 SQL 并正确回答问题的整体准确率。
-
在需要与大规模知识库或外部数据源交互的任务中,通过优化智能体的检索策略和生成能力,提高信息利用效率和推理准确性。
示例:在面向维基百科等大规模知识库的检索增强生成(RAG)任务中,Agent Lightning 优化智能体的检索查询生成策略和基于检索结果的推理能力,有效提高了信息利用效率和最终答案的 F1 分数。
-
在任务需要调用外部工具或 API 的场景中,训练智能体更准确地判断何时以及如何使用工具,并将工具输出整合到决策或推理流程中。
示例:在数学问题解答任务中,Agent Lightning 训练智能体更准确地判断何时调用工具,如何调用工具,并将工具返回结果融入推理链,提高了数学问题的解答正确率。
加入 赋范大模型技术社区 ,免费领取【更多大模型Agent实战教程】,期待你的加入!
系统架构
Agent Lightning 将 模型训练与智能体执行完全解耦,形成 训练-智能体分离式架构:
架构组件
Lightning Client
- 部署在用户侧,连接用户的agent
- 任务执行 :从 Server 拉取任务,交由用户的 agent 执行
- 数据采集:在执行过程中记录交互数据 (Traces),包括 状态 → 动作 → 奖励 → 下一个状态 这样的交互信息。
- 数据上报:将采集到的交互数据上报给 Lightning Server,用于后续的优化和训练。
Lightning Server
- 部署于 GPU 服务器或云端,连接优化框架
- 任务分发:client 可以从这里拉取新的任务。
- 模型调用接口:LLM 推理/调用入口,供用户定制的 Agent 发起调用。
- 收集轨迹与报告:上报交互数据给优化框架,用于模型训练。
- 模型更新:接收来自优化框架的 Updated Model,从而不断迭代和改进模型性能。
架构优势
- 开发者友好:无需关注 RL 训练复杂性,在原有的智能体代码中,只需将原来模型调用的接口 替换为 Lightning Server 提供的 API 即可
- 零代码侵入:自动捕获智能体执行过程中的交互数据,无需改变现有业务逻辑
- 资源高效利用:执行与训练可部署在最适合的硬件,实现资源优化和可扩展性
加入 赋范大模型技术社区 ,免费领取【更多大模型Agent实战教程】,期待你的加入!
快速上手
⚠️ 硬件要求:GPU 显存 ≥ 40GB
拉取agent-lightning代码
git clone https://github.com/microsoft/agent-lightning.git
cd agent-lightning
创建并激活虚拟环境
uv venv
source venv/bin/activate
安装核心训练依赖
# 安装基础依赖
uv pip install --no-cache-dir packaging ninja numpy pandas ipython ipykernel gdown wheel setuptools
# 安装pytorch
uv pip install --no-cache-dir torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 --index-url https://download.pytorch.org/whl/cu128
# 安装其他训练组件
uv pip install --no-cache-dir transformers==4.53.3
uv pip install --no-cache-dir flash-attn==2.8.1 --no-build-isolation
uv pip install --no-cache-dir vllm==0.9.2
uv pip install --no-cache-dir verl==0.5.0
# 安装其他依赖
uv pip install --no-cache-dir -e .[dev,agent]
Flash-Attn 安装问题
若 flash-attn 安装失败, 请按照以下步骤手动安装:
1.确认版本:
nvcc --version # 查看 CUDA 版本
例如:
CUDA = 12.x
Torch = 2.7
Python = 3.12
则需下载:
flash_attn-2.8.1+cu12torch2.7cxx11abiTRUE-cp312-cp312-linux_x86_64.whl
2.到Flash-Attention 2.8.1 Releases 手动下载对应版本
3.安装下载的flash-attn:
uv pip install /your/path/flash_attn-2.8.1+cu12torch2.7cxx11abiTRUE-cp312-cp312-linux_x86_64.whl
安装agent-lightning
uv pip install agentlightning
示例
官方在 examples
目录下提供了多个示例,这里演示 examples/spider
这个示例是使用 LangGraph 构建的写-检查-重写循环智能体,具备 SQL 执行功能;
在 Spider 数据集上通过强化学习选择性地优化写和重写。
下载Spider数据集
spider数据集是一个用于文本到SQL任务的数据集。
在此项目中用于:
- 提供大量 自然语言问句 + 数据库 schema + SQL 答案 的训练/评测样例
- 支持智能体在不同数据库上 真实执行 SQL,收集交互反馈
- 通过 强化学习(RL),智能体能逐步学会生成更准确的 SQL
cd examples/spider
# 若没有 gdown
# uv pip install gdown
# 从Google Drive下载Spider数据集
gdown --fuzzy https://drive.google.com/file/d/1oi9J1jZP9TyM35L85CL3qeGWl2jqlnL6/view
# 解压spider数据集到data目录
unzip -q spider-data.zip -d data
# 删除压缩包
rm spider-data.zip
转换数据集格式
将数据集转换为 parquet 格式,方便后续处理和训练。
python spider_eval/convert_dataset.py
启动ray
ray在此示例中,用于分布式任务调度与资源管理。
../../scripts/restart_ray.sh
设置apikey
为了调用 OpenAI 的模型,需要设置 API Key。
在环境变量
->系统变量
中新建 变量名为OPENAI_API_KEY
,变量值值为你的 OpenAI API Keysk-xxx
。
运行agent
运行agent,并告知lightning server的地址
VERL_API_BASE=http://localhost:9999/ python sql_agent.py
启动训练服务器
在另一终端启动训练服务器,开始agent训练。
bash train.sh
加入 赋范大模型技术社区 ,免费领取【更多大模型Agent实战教程】,期待你的加入!
更多推荐
所有评论(0)