科学工具
科学工具让世界更美好
让世界更美好

智能体训练框架 Agent Lightning

Agent Lightning 是一个灵活可扩展的智能体训练框架,为现有智能体框架提供无缝的模型训练能力,由一个训练服务器和多个智能体组成,服务器负责管理训练数据、准备样本和提供语言模型(LLM)端点,并收集智能体返回的LLM交互轨迹以优化模型,智能体从服务器获取样本并进行处理。该框架支持与AutoGen、LiteLLM、LangChain等多种主流智能体框架集成,默认集成了AgentOps进行智能体追踪。

Agent Lightning安装

以下是环境搭建和安装的详细流程,文中用/path/to/agentlightning指代包含本README文件的目录。

1、设置环境 推荐创建新的虚拟环境,避免与其他包产生冲突,可使用condavenv,建议使用Python 3.10及更高版本。

2、安装核心依赖 接下来需要安装必要的包:uvPyTorchFlashAttentionvLLM

• 安装uv(部分MCP智能体需要,否则可能出现智能体挂起的情况):

curl -LsSf https://astral.sh/uv/install.sh | sh

• 安装PyTorchFlashAttentionvLLM:以下版本和安装顺序已测试可用。

pip install torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 --index-url https://download.pytorch.org/whl/cu128
pip install flash-attn --no-build-isolation
pip install vllm==0.9.2

3、安装VERL

Agent Lightning需要VERL进行强化学习训练。请从主分支安装最新版本:

git clone https://github.com/volcengine/verl /path/to/your/verl
cd /path/to/your/verl
pip install -e .

4、安装Agent Lightning

完成上述步骤后,就可以安装Agent Lightning了:

cd /path/to/agentlightning
pip install -e .

5、安装可选框架

如果计划使用其他智能体框架,可以用以下命令安装。不需要的话可以跳过这一步。 • AutoGen(建议优先安装):

pip install "autogen-agentchat" "autogen-ext[openai]"

• LiteLLM:

pip install "litellm[proxy]"

• MCP:

pip install mcp

• OpenAI Agents:

pip install openai-agents

• LangChain:

pip install langgraph "langchain[openai]" langchain-community langchain-text-splitters

• SQL相关依赖:

pip install sqlparse nltk

安装过程中若出现依赖冲突无需担心,按照上述顺序安装,冲突通常不影响使用。

Agent Lightning围绕训练服务器和一个或多个智能体构建。

• 服务器负责管理训练数据、为智能体准备样本、提供LLM端点。

• 智能体从服务器获取样本,进行处理(可能包括与LLM交互),然后将结果返回。这些结果(即“轨迹”)是LLM的提示和响应列表。

• 服务器收集这些轨迹,计算损失,用于优化语言模型。

• 安装包含开发依赖的版本:

pip install -e .[dev]

• 提交代码前请运行预提交钩子:

pre-commit install
pre-commit run --all-files --show-diff-on-failure --color=always

示例参考

详细的示例可以查看examples文件夹。

注意事项

AgentOps集成:Agent Lightning默认使用AgentOps进行智能体跟踪。如果自己的代码中已使用AgentOps,需要通过修改训练器的tracer参数禁用框架管理的AgentOps客户端。

调试跟踪:若跟踪出现问题,可以使用tracer.last_trace().visualize("tree_graph")可视化跟踪树。注意该API为实验性,未来可能变更。

启动服务器和智能体:目前训练服务器和智能体客户端必须在不同进程中启动。可以打开两个终端窗口,或让其中一个在后台运行。启动顺序通常不影响使用。

环境变量ray init时的环境变量和工作目录很重要。若遇到“文件未找到”错误,尝试从当前工作目录重启Ray。

处理超时:若智能体端样本处理失败或超时,训练服务器可能挂起。建议限制提示和响应长度,这是最常见的失败原因。

VERL故障:请频繁保存检查点,因为使用vLLM的VERL可能偶尔出现内存不足问题。若VERL发生故障,可以从最后一个检查点恢复训练。