Forge: 可扩展的 Agent 强化学习框架与算法

把强化学习推到真实世界的 Agent 上,会撞到一个三角约束:系统吞吐、训练稳定性、Agent 灵活性三者互相拉扯,长期阻碍着大规模 RL 在工业级系统中的落地。
本文介绍寡人内部 RL 框架 Forge 如何打破这个三角:从灵活的系统架构、面向长时程 Agent 的算法、尊重训练分布的异步调度,到极致的训练与推理加速。借助标准化的交互协议,Forge 能在大规模上训练任意 Agent 脚手架(scaffold),这也是 MiniMax M2.5 模型能力跃迁的基础。
在 MiniMax M2.5 的训练过程中,Forge 接入了超过十万种真实 Agent 脚手架和环境。在最长 200k 上下文、日处理数百万样本量级的负载下,系统保持稳定的奖励收敛,模型底座能力也持续提升。结合 CISPO 算法与复合奖励设计,M2.5 把高效、可靠的真实生产力推到了新边界,把我们 Intelligence with Everyone 的使命又往前推了一步。
1. 问题定义
讨论架构之前,先界定目标。Agent RL 系统的目标是最大化 Effective Agent Training Yield(J):
其中 系统吞吐(Throughput) 是每秒处理的原始 token 数,瓶颈来自 rollout、training、data processing、I/O 四部分。样本效率(Sample Efficiency) 是单个样本带来的平均收益,取决于数据分布、数据质量、算法效率与 off-policy 程度。约束项分别对应稳定性与收敛性的代理指标。最大化 J 面前横着三类结构性挑战,以下逐一展开。
1.1 Agent 扩展性与框架灵活性
现行 RL 范式给 Agent 复杂度盖了一层玻璃天花板,根源有两个:
受限的 Agent 自治。主流框架把 Agent 当成白盒函数,Agent 与 Trainer 共享状态。这种刚性让复杂认知架构难以表达 —— 比如动态的上下文管理、多 Agent 协作 —— 也使得训练得到的能力难以泛化到不遵循这些假设的黑盒 Agent 上。
Token 一致性壁垒。现有的 token-in / token-out(TITO)架构,把 Agent 与底层 token 逻辑深度耦合。一旦引入复杂的上下文管理(CM),要求推理侧的高层抽象与训练侧的 token 级表示严格一致,代价高得难以接受。
1.2 系统效率与计算冗余
Agent rollout 的完成时间极度发散 —— 简单 API 调用是秒级,复杂推理链路是小时级。这造成调度死锁:
异步控制器。硬件效率和训练稳定性之间存在尖锐取舍。严格的 FIFO / 同步调度会暴露 straggler 效应:一个慢任务造成队头阻塞(HoL Blocking),整个集群空转。Greedy / FFFO 模式恢复了吞吐,但代价是严重的分布偏移 —— 训练前期被大量短而容易的任务主导,后期则被堆积的难任务主导。非平稳的训练环境导致优化不稳定、梯度震荡。
前缀冗余。在 Agent 场景下,Tokenizer 机制与原生的上下文管理共同作用,让大量请求自然带有相同的前缀。训练时这些前缀被反复计算,带来巨大算力浪费和独有的工程难题。
1.3 算法挑战:Credit 分配与优化稳定性
稀疏奖励与高梯度方差。Agent 任务往往是长时程、延迟反馈,一个最终结果取决于成千上万步动作。要在 200k 上下文里精确地把 Credit 分配到某个 token 或工具调用上,在数学上非常脆弱。回报估计的低信噪比会带来高方差梯度,使大规模模型的训练失稳。
忽视延迟的优化目标。传统 RL 目标只盯正确性 —— step-wise 或 outcome reward —— 完全忽略 wall-clock 成本。真实 Agent 场景里往往多条轨迹都正确,但因工具执行和串行处理的开销,延迟天差地别。如果没有针对并行和高效工具使用的激励,得到的就是“答对但很慢”的 Agent。
2. 系统架构与 Agent RL 范式
为了缓解“效率 vs off-policy”的取舍并消除冗余,我们做了以下架构选择。
2.1 RL 系统设计
我们没有把系统绑死在某种具体实现上,而是采用通用化的 Middleware 设计,把 Agent 的推理逻辑与底层训练基础设施解耦。系统由三大模块组成:

Agent Side。这一层抽象 General Agent —— 同时覆盖白盒与黑盒脚手架 —— 以及其运行环境。它负责递归式的环境交互,让 Agent 表现为纯粹的轨迹生产者。把环境反馈与系统开销隔离开,Agent 就能专心做自己的核心逻辑(上下文管理、推理链),与底层训练/推理实现无关。
Middleware 抽象层。作为桥接,这一层把 Agent Side 与 Training/Inference Side 物理隔离,包含 Gateway 服务和 Data Pool。
- Gateway Server:标准化的通信网关,处理 Agent 与 LLM 之间的 completion 请求。借助通用协议,把底层模型的复杂性从 Agent 的高层行为逻辑中剥离。
- Data Pool:分布式数据存储,异步收集 Agent 的 rollout 轨迹与上报。它作为生成与训练之间的缓冲层,让用户能灵活地组织数据处理与 batching,服务训练效率和算法实验。
Training and Inference Side。承担重计算,包括 LLM(Rollout)Engine 与 Train Engine。
- Rollout Engine:专注高吞吐 token 生成,响应 Middleware 转发过来的请求。
- Train Engine:消费 Data Pool 处理后的 token 序列,更新策略;与 Rollout Engine 保持同步,确保 Agent 在最新策略分布下进行探索。
离线评估中,我们观察到性能差异往往来自脚手架本身。借助模块化框架,我们可以在不修改 Agent 内部的前提下,用大量不同脚手架进行训练,从而让模型在脚手架(即环境)之间泛化。整体上引擎与 Agent 完全解耦,新 Agent 接入是机械化操作。我们已经接入了上百种脚手架类型、上千种工具调用格式。
2.2 白盒 Agent RL:上下文管理(CM)
对白盒 Agent,我们能通过完整的脚手架设计与增强,直接观察并优化模型在特定 Agent 架构下的表现。MiniMax M2.5 的开发,集中处理了以往模型在需要主动上下文管理的长时程任务(例如 DeepSearch)上的几个老大难问题:
Context Rot。交互轮数累计上去,中间推理和冗余观察堆积,产生注意力稀释效应。即便严格落在绝对上下文窗口内,模型也会丢掉关键信息的焦点。
推理-训练失配。上下文管理确实能扩展交互时程、提升 Agent 长上下文表现,但只在推理阶段使用时,会与 RL 训练数据产生严重分布偏移。模型被迫在线适应陌生的上下文切换和长上下文结构,最终拖垮整体表现。
为了消除这一分布偏移、保住推理保真度,我们把 CM 机制直接嵌入 RL 交互循环 —— 把上下文管理当作驱动状态转移的功能性动作:
CM 驱动的状态转移。CM 是显式的 Agent 动作,上下文切换自然嵌在环境动力学里。从 S_t 到 S_{t+1} 的状态转移已经隐式包含了上下文切换逻辑,这样上下文适应就直接折进训练目标里。
自适应推理模式。在这一框架下优化策略 π,模型会内化分布偏移,涌现出优先关注“状态关键” token 的稳健推理模式。
上下文感知的管理策略。模型在 RL 生成过程中学会预判上下文管理操作与切换,主动保留任务关键信息、剪掉无关噪声,部署在上下文管理 Agent 框架内时收益显著。
2.3 黑盒 Agent RL:跨异构脚手架的鲁棒性
现实部署里,相当一部分用户使用专有或复杂的 Agent 架构,在我们看来是“黑盒”。我们观察到,模型性能往往因底层脚手架而剧烈起伏,因为标准训练范式难以跨认知架构泛化。为此我们设计了专门的黑盒 Agent 实验,验证无论 Agent 内部多么不透明,优化都能保持一致。
非侵入式接入与兼容性。Forge 完全不关心 Agent 的内部实现。Agent 只需把请求路由到 RL 服务 Gateway,框架在背后处理数据收集与训练。也因此,Forge 在真实 RL 训练中能支持任意上下文操作(记忆压缩、历史改写),以及任意复杂的内部 Agent Loop(Deep Think、多 Agent 架构)。
多脚手架泛化。把训练循环与 Agent 内部状态解耦,MiniMax M2.5 与大量黑盒 Agent 拥有了广泛兼容性。覆盖范围从重度依赖 Sandbox 与 MCP 环境的代码型 Agent —— 比如完全以黑盒方式训练我们的 OpenCode Agent —— 到采用激进上下文压缩策略(如 Truncate BC)的 Agent。实验显示,即便面对完全不透明的系统,提升依然稳定一致。

3. 工程优化
3.1 混合调度策略:Windowed FIFO
为了平衡 系统吞吐 与 分布一致性,我们设计了 Windowed FIFO —— 对训练调度器加一个滑动窗口约束,作为严格同步与贪婪异步之间的折中。
核心逻辑控制调度器从全局生成队列拉样本的方式。即便有一大批请求(生成批量大小 N)同时在跑,调度器只能看到一个窗口 W(例如 W = 0.3N)。
可见范围受限。生成队列记为 Q = [T_0, T_1, …, T_{N-1}],当前头部为 i。调度器只能从切片 [T_i, T_{i+W-1}] 中拉已完成的轨迹。
窗口内“贪婪”乱序。在 [T_i, T_{i+W-1}] 内,调度器可以立刻取走任意已完成的轨迹。这避免了队头阻塞:窗口内的快任务无需等待绝对第一个任务跑完。
窗口边界严格阻塞。即便某个 j > i+W 的任务(在窗口之外)已经完成 —— 在大批量生成中,简单短任务很容易出现这种情况 —— 调度器也不允许去拉它。
滑动约束。窗口只在队列头部任务被消耗后才前移(i → i+1)。这迫使调度器在当前窗口内等待“stragglers”(复杂、长时程任务),防止训练分布向队列后段那些“又快又容易”的样本漂移。

3.2 用 Prefix Tree Merging 加速 Agent 轨迹训练
Agent 训练数据集通常是大段的多轮对话样本,结构上高度重叠。
朴素方法的冗余
前缀重叠。朴素多轮对话里,消息按顺序拼接。在一致的 Tokenizer 下,共享同一历史的多个 completion 在理论上是可以合并的。
复杂上下文管理。Agent 往往采用复杂的上下文管理策略:抛弃不相关的中间结果、自总结等。结果就是不同的 completion 经常共享大量公共前缀。
朴素方法的局限。传统训练方法把每个样本当成独立实体,反复计算这些公共前缀。在长上下文场景下,这种冗余浪费海量 TFLOPS,严重压制训练吞吐。

Prefix Tree Merging
为了消除这种冗余,我们把训练过程从“线性处理”改造成“树状结构”。
Prefix Tree Merge。针对 Agent 场景的复杂上下文管理(对应上图中的“长公共上下文”),只要多个 completion 共享底层前缀,即便它们后续响应略有不同、甚至来自不同采样分支,都可以在样本级合并为单棵前缀树。
借助 Magi Attention 等注意力原语,我们让逻辑执行与标准前向传播完全一致。前向后,前缀树根据 metadata 解构以正常计算 loss,对下游逻辑零侵入。
通过消除冗余前缀 prefill,这套方案实现了 40 倍训练加速,显著降低内存压力以支持更长序列或更大 batch size,同时与标准方法在数学上严格等价,对 loss 计算和指标零影响。
3.3 极致推理加速
在生成流水线上做了三处架构创新:
基于 MTP 的投机解码。不用静态草稿模型,而是用 Multi-Token Prediction(MTP) 头,通过 Top-K KL loss 持续微调。这让草稿模型与不断演进的 RL 策略保持对齐,在分布漂移下维持高接受率与显著加速。
异构 PD 解耦。把 Prefill 与 Decode 解耦,消除混合 MoE 调度下的 PD 互相干扰,并允许两侧各自独立采用最优并行策略,同时最大化全局吞吐与长时程任务的尾延迟。
全局 L3 KV Cache Pool。为避免多轮 Agent RL 里反复 prefill、并配合 group 级 rollout 把前缀缓存命中率推到极致,我们引入了基于 DFS 的全局 L3 缓存。一个 cost-aware 调度器在排队延迟与缓存迁移成本之间动态权衡,把缓存局部性最大化的同时避免单实例过载。
4. 可扩展的 Agent RL 算法
4.1 RL 算法
我们以 CISPO 为核心算法,针对长时程 Agent 的特性进行适配。
统一的混合域训练。多阶段 RL 容易在不同域之间产生负迁移或干扰,我们采取反向策略,把 Reasoning、General QA、Agent 三类任务混合在同一次训练中。这种联合训练消除了串行训练常见的性能退化,显著提升模型在多样化任务上的泛化能力。
其中:
4.2 稠密且感知效率的奖励
为应对超长上下文(最长 200k)下的 Credit 分配难题、同时保住训练稳定性,我们设计了复合奖励框架:
Process Reward(过程奖励)。为提供稠密反馈,我们针对中间行为给奖励 —— 例如惩罚语言混用或特定工具调用错误 —— 而不是只看最终结果。
Task Completion Time Reward(任务完成时间奖励)。在 Agent 场景下,完成同一任务存在多条轨迹,总时长不仅取决于 token 生成,还受工具执行和 sub-agent 调用延迟影响。完成时间直接关系到用户体验,所以我们把相对完成时间作为奖励信号纳入,激励 Agent 利用并行、加速执行。
Reward-to-go(回报-到-未来)以降方差。稀疏奖励在长时程任务里会产生高梯度方差。我们采用 Reward-to-go 形式归一化回报,降低梯度方差,提升 Credit 分配精度,稳定优化过程。
5. 结论
借助 Forge,我们成功化解了“Agent RL 扩展不可能三角”:在 RL 系统吞吐上取得突破,同时在任意 Agent 脚手架上保持鲁棒泛化。把这套灵活架构与稳定的 CISPO 算法结合,撑起了 MiniMax M2.5 背后的大规模训练。这一整体方案突破了过去的约束,带来高效、可用于真实场景的 Agent 能力,把我们 Intelligence with Everyone 的使命继续向前推进。
原文链接: Forge: Scalable Agent RL Framework and Algorithm(Hugging Face)