agent-lightning简介

agent lightning logo
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 等后端,适配不同优化场景需求;​

错误监控及稳定优化
实时跟踪智能体的执行状态,检测故障模式。在智能体出现异常的情况下保持优化过程的连续性和可靠性。

应用场景

  1. 在由多个智能体协作完成的复杂任务中,同时优化多个智能体的行为,以提升整体系统的性能和协调能力。

    示例:在 Text-to-SQL 系统中,Agent Lightning 同时优化 SQL 生成智能体和 SQL 检查智能体的行为,显著提升了从自然语言生成可执行 SQL 并正确回答问题的整体准确率。

  2. 在需要与大规模知识库或外部数据源交互的任务中,通过优化智能体的检索策略和生成能力,提高信息利用效率和推理准确性。

    示例:在面向维基百科等大规模知识库的检索增强生成(RAG)任务中,Agent Lightning 优化智能体的检索查询生成策略和基于检索结果的推理能力,有效提高了信息利用效率和最终答案的 F1 分数。

  3. 在任务需要调用外部工具或 API 的场景中,训练智能体更准确地判断何时以及如何使用工具,并将工具输出整合到决策或推理流程中。

    示例:在数学问题解答任务中,Agent Lightning 训练智能体更准确地判断何时调用工具,如何调用工具,并将工具返回结果融入推理链,提高了数学问题的解答正确率。

加入 赋范大模型技术社区 ,免费领取【更多大模型Agent实战教程】,期待你的加入!

系统架构

agent-lightning架构图

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 Key sk-xxx

运行agent

运行agent,并告知lightning server的地址

VERL_API_BASE=http://localhost:9999/ python sql_agent.py
启动训练服务器

在另一终端启动训练服务器,开始agent训练。

bash train.sh

加入 赋范大模型技术社区 ,免费领取【更多大模型Agent实战教程】,期待你的加入!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐