veRL Agent RL 训练框架
面向长程 LLM/VLM 交互任务的多轮强化学习训练扩展。
按维度查看评分与理由
证据显示仓库未提供权限管理、用户确认、数据流透明性、敏感数据处理、依赖安全、外部影响、回滚或来源归属的明确机制。所有信任相关标准均未得到支持,因此评分为0。
自洽性:README声称支持多种模型和环境,但requirements.txt中transformers版本固定为4.51.1,而README安装指南中未明确指定,存在轻微不一致。依赖可用性:requirements.txt列出了依赖,但未提供锁定版本或校验和,且部分依赖(如flash-attn)需要特定构建,可能影响可复现性。失败消息:未提供错误处理或诊断信息,评分为0。
受众与场景:README明确面向LLM/VLM agent训练的研究人员和开发者,提供了多种环境和算法示例。能力边界:README列出了支持的功能和限制,但未详细说明不支持的场景。触发精度:提供了运行脚本,但未明确说明触发条件或参数。环境适配:提供了多种环境的安装指南,但未说明硬件要求或兼容性细节。
信息架构:README结构清晰,包含目录、功能、安装、示例等。安装说明:提供了详细的安装步骤,但部分依赖版本未固定。命名稳定性:项目名称和版本号在README中一致,但未提供版本历史。示例与FAQ:提供了多个示例和FAQ,但未提供常见问题解答。已知限制:README提到部分环境为实验性,但未全面列出限制。许可证:提供了Apache-2.0许可证。版本与变更日志:README有新闻更新,但未提供正式变更日志。维护责任:未明确维护者或贡献指南。
输出可用性:提供了训练脚本和模型,但未提供输出格式或评估指标。边际价值:提供了新的算法GiGPO和多种环境,具有研究价值。成本效益:未提供性能基准或资源需求,难以评估成本效益。
声明可追溯性:README引用了论文和HuggingFace模型,但未提供详细实验配置。跨来源佐证:提供了W&B链接和第三方支持,但未独立验证。事实与推断分离:README区分了结果和推断,但未明确标注。
- 依赖版本未锁定,可能影响可复现性。
- 未提供安全审计或权限管理机制。
- 部分环境安装依赖外部服务(如Google Drive),可能不稳定。
这个 Agent 能做什么,适合哪些场景?
verl-agent 是构建在 veRL 之上的强化学习训练框架扩展,目标是训练能与环境多轮交互的 LLM 和视觉语言模型。它以逐步构造输入的 rollout 方式运行,而不是必须拼接完整交互历史;内存模块和每一步输入内容可由开发者自定义。框架提供并行 Gym 风格环境与组环境,后者可让同组环境在 reset() 时共享初始状态,以支持需要同状态多次 rollout 的训练。仓库提供 GiGPO、GRPO、PPO、DAPO、GSPO、RLOO 和 REINFORCE++ 等训练路径,以及 ALFWorld、WebShop、Search、Sokoban、Gym Cards 和实验性的 AppWorld 环境。训练通过 examples/ 下的 shell 脚本启动,模型端列出了 Qwen 与 LLaMA 系列支持,并提供一个基于 GPT-4o 的提示式代理示例。
训练过程通过 examples/ 中的脚本启动,例如 run_alfworld.sh 会在指定环境中执行 GiGPO 训练。环境经 env.step() 返回反馈,rollout_loop.py 使用 envs.reset(kwargs=gen_batch.non_tensor_batch.pop('env_kwargs', None)) 将任务参数传入环境;代理据此在每一步生成动作。env_manager.py 的 build_text_obs() 会构造当前步骤观察,默认 SimpleMemory 位于 agent_system/memory/memory.py,可替换为选择最近步骤、关键事件、摘要或外部知识的记忆策略。环境提示词可在 agent_system/environments/prompts 中修改;WebShop 示例要求模型将推理放在 <think> 标签中、将可执行动作放在 <action> 标签中。Search 实验还可启动本地 e5 检索服务,并使用处理后的 Search-R1 数据集进行任务 rollout。
- 研究长程文本代理强化学习的团队,可在 ALFWorld 中用 GiGPO、GRPO、PPO、RLOO 或 DAPO 运行多步训练。
- 需要训练电商网页交互代理的研究者,可安装独立的 WebShop 环境并运行对应的 GiGPO、GRPO、PPO、RLOO 或 DAPO 示例。
- 开发视觉语言代理的团队,可在 Sokoban、Gym Cards 等视觉任务中使用 Qwen2.5-VL、Qwen3-VL 等已列出的模型支持。
- 研究检索增强式搜索代理的工程师,可处理 Search-R1 数据、下载本地索引并运行本地 retrieval server 后训练 Search 环境代理。
- 希望比较不同记忆管理策略的开发者,可替换 SimpleMemory,并在每个环境步骤中控制历史、摘要与当前观察的组合方式。
这个 Agent 有哪些优点和局限?
- 逐步构造输入并允许自定义历史管理,适合不希望完整历史随轮次不断膨胀的长程交互训练。
- 组环境在 reset() 时可共享初始状态,直接服务于 GRPO、DAPO 等需要同状态多条轨迹的训练方式。
- 同时覆盖文本与图文任务,且列出了 ALFWorld、WebShop、Search、Sokoban、Gym Cards 和 AppWorld 等多种交互环境。
- 除 GiGPO 外还提供 GRPO、PPO、DAPO、GSPO、RLOO 和 REINFORCE++,便于在同一框架内比较多种 RL 算法。
- 提供 LoRA 路径;文档称 7B 模型训练可使用 2 张 H100 GPU。
- 安装并非单一环境:WebShop 要求 Python 3.10 或更低,而核心安装示例使用 Python 3.12;文档建议每个环境使用独立 Conda 环境。
- Search 需要单独部署本地检索服务、下载索引,并会在每张 GPU 上额外使用约 6GB 显存。
- AppWorld 被明确标记为实验性,兼容性与稳定性风险需要自行验证。
- GPT-4o 提示式代理虽有运行脚本,但未给出 API 凭据、环境变量或具体配置步骤。
- 文档说明 2025-06-03 重大更新后 GiGPO 表现略有变化;复现论文原始结果需使用该更新前的版本。
如何安装或部署这个 Agent?
在仓库根目录创建核心训练环境:
conda create -n verl-agent python==3.12 -y
conda activate verl-agent
pip3 install vllm==0.11.0
pip3 install flash-attn==2.7.4.post1 --no-build-isolation --no-cache-dirpip install -e .
首次运行 ALFWorld 前安装环境依赖:
pip3 install gymnasium==0.29.1
pip3 install stable-baselines3==2.6.0
pip install alfworld
alfworld-download -f然后可执行:
bash examples/gigpo_trainer/run_alfworld.sh不同环境有独立依赖:WebShop 要求 Python 3.10 或更低,Search 需要独立 retriever 环境、faiss-gpu 和本地索引。仓库提供 GPT-4o 提示式代理脚本,但未说明所需 OpenAI 凭据或其配置方法。
如何使用这个 Agent?
完成目标环境安装后,从仓库根目录选择训练脚本执行。GiGPO 的示例包括 bash examples/gigpo_trainer/run_alfworld.sh、run_webshop.sh、run_search.sh 和 run_sokoban.sh;LoRA 示例为 bash examples/gigpo_trainer/run_alfworld_lora.sh。需要同一初始状态的多次 rollout 时,在 verl/trainer/config/ppo_trainer.yaml 中配置 env.rollout.n。若要接入新环境,创建 Gym 风格且支持多进程执行的环境包,添加 prompts 文件,并按 EnvironmentManagerBase 的结构在 env_manager.py 注册。
这个 Agent 与同类方案有什么区别?
相对 veRL,verl-agent 将重点扩展到多轮代理—环境交互与代理 RL 训练。README 将其逐步输入机制与 RAGEN、Search-R1 所述的完整历史拼接方式对比:前者允许每一步自行组织观察和记忆,后者会让上下文随交互轮次增长。