RAGEN
用StarPO强化学习框架训练LLM reasoning agents,解决多轮交互环境中的长程决策
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用StarPO强化学习框架训练LLM reasoning agents,解决多轮交互环境中的长程决策
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:一个人类客服需要同时处理数十个来自不同用户的复杂咨询——不仅要记住对话历史,还要在每一次回复中做出最优选择,同时根据对方的反馈动态调整策略。这正是RAGEN(Reasoning AGENT)想要解决的问题,只不过主角从人类换成了大语言模型(LLM)。
图1:RAGEN项目Logo
2024-2025年,LLM领域见证了RLHF(基于人类反馈的强化学习)的巨大成功——DeepSeek-R1、OpenAI o1/o3系列相继证明了通过强化学习可以显著提升模型的推理能力。但这些成功主要停留在静态任务上,比如做数学题、写代码。一旦让LLM作为一个交互式agent在真实环境中连续行动(比如在购物网站搜索商品、在游戏中闯关),情况就变得完全不同:
环境是随机的——同样的输入可能得到不同的反馈; 决策链很长——一个错误的选择可能在多步之后才显现后果; 奖励信号稀疏且延迟——模型可能要执行几十步才能知道这次决策是好是坏。
这些特性让传统的RL算法在LLM agent训练中频繁失效。RAGEN正是西北大学MLL实验室为系统性地研究这一问题而开发的框架。
图2:RAGEN系统概览——Rollout与Update两阶段交替训练
RAGEN的核心是StarPO(State-Thinking-Actions-Reward Policy Optimization)算法,这是一个专为LLM agent设计的策略优化框架。与传统RL只关注「行动-奖励」不同,StarPO显式建模了agent的推理过程(Thinking),将训练流程分为两个交替进行的阶段:
Rollout阶段(推演):LLM agent在环境中连续行动。每一步中,模型首先生成一段「内部推理」(CoT chain-of-thought),然后基于推理选择动作,环境返回奖励和下一状态。这个过程产生完整的轨迹数据(state-thinking-action-reward序列)。
Update阶段(更新):利用Rollout收集到的轨迹数据,通过策略梯度方法更新LLM的权重,使其更倾向于产生高奖励的推理模式和行动策略。
这种设计让RAGEN能精细控制推理过程——研究者可以实验不同的推理长度、不同的奖励分配策略,甚至可以对比「有推理」vs「无推理」的agent表现差异。
RAGEN的另一个重要贡献是通过大规模诊断实验发现了LLM agent RL训练中的一个核心问题:Echo Trap(回声陷阱)。
具体表现为:在训练过程中,agent的reward曲线会出现异常的「悬崖」——reward在某一时刻突然急剧下降,同时梯度出现尖峰。这通常是因为agent在训练中过度拟合了某些特定的轨迹模式,一旦遇到未曾见过的环境反馈就彻底崩溃。RAGEN通过StarPO-S(Stabilized版本)引入了轨迹过滤、Critic网络引入和梯度稳定化技术来对抗这个问题。
图3:RAGEN主实验结果——与多个基线方法的性能对比
图4:消融实验——推理过程(Thinking)对agent性能的影响
图5:Echo Trap诊断可视化——reward cliff与梯度尖峰现象
RAGEN的代码库采用了高度模块化的设计:
ragen/env/:环境模拟器,支持Sokoban、webshop、Lean math等多种交互环境,与Gymnasium生态兼容。ragen/llm_agent/:LLM推理封装,支持vLLM后端(支持PagedAttention和连续批处理)和OpenAI兼容API,可对接任何HuggingFace Transformers模型。ragen/trainer/:StarPO算法的核心实现,包括rollout收集、GAE/PPO策略更新、reward normalization等。ragen/workers/:分布式训练worker,基于Ray框架实现多GPU并行训练。verl/:集成alibaba/ROLL作为底层RL训练库,提供高效的分布式策略优化实现。train.py:统一训练入口,读取config/下的YAML配置文件,支持Hydra多任务管理。这种架构让研究者可以自由替换环境、模型、RL算法组件,非常适合作为LLM agent RL训练的研究基准。
RAGEN基于以下关键依赖构建:
| 组件 | 技术选型 | 作用 |
|---|---|---|
| 推理引擎 | vLLM 0.8.2 | 高效LLM推理,支持连续批处理 |
| 深度学习框架 | PyTorch + Transformers | 模型加载与训练 |
| 分布式训练 | Ray >= 2.10 + Tensordict | 多GPU并行rollout和梯度更新 |
| RL算法库 | ROLL (alibaba) | 底层PPO/GRPO实现 |
| 配置管理 | Hydra Core | 多实验配置管理 |
| 实验追踪 | Weights & Biases (wandb) | 可视化训练曲线 |
| 环境模拟 | Gymnasium + Gym-Sokoban | 标准RL环境集成 |
适合:有RL和LLM基础的研究者,具备多GPU训练环境,能接受从头配置依赖栈的工程工作。RAGEN提供了完整的训练脚本和预训练配置,可以快速复现论文结果。
不适合:纯应用开发者、无GPU资源的用户、想一键部署API服务的场景。RAGEN是研究框架而非产品,没有Web UI,没有API服务,专注于训练流程本身。
安装方式为标准的 pip install -e .(或带extras:pip install -e ".[webshop]"),需要Python 3.10+,官方推荐conda环境。
1. Echo Trap尚未完全解决:虽然StarPO-S显著缓解了这一问题,但在某些高随机性环境中,reward cliff仍然存在,说明现有方法仍有改进空间。
2. 计算资源门槛高:vLLM推理本身就需要大量VRAM,加上Ray分布式训练,至少需要多卡24GB+的GPU集群,这对于个人研究者来说门槛较高。
3. 环境覆盖面有限:当前RAGEN主要在Sokoban、webshop等相对简单的环境中验证,在真实复杂环境(如真实网站、开放世界游戏)中的表现尚待验证。
4. 缺乏开箱即用的推理服务:没有提供预训练好的agent模型权重,用户必须自己从头训练。
RAGEN的出现在LLM agent研究领域填补了一个重要空白。在它之前,大多数LLM RL研究都聚焦于数学、代码等有明确正确答案的静态任务;而RAGEN率先系统性地研究了交互式、随机性、多轮决策场景下的LLM agent训练问题。
StarPO框架的提出也值得关注——它将「Thinking」(推理过程)显式纳入RL优化循环,为后续研究「如何让agent在行动前更谨慎地思考」提供了统一的实验平台。
随着RAGEN-2版本的发布,项目进一步引入了基于**条件熵(Conditional Entropy)和互信息(Mutual Information)**的agent行为诊断框架,将agent行为划分为四种推理机制,为理解LLM agent的自我演化提供了更精细的理论工具。