Forge:可扩展的智能体强化学习框架与算法

将强化学习(RL)扩展到复杂的真实世界智能体时,会遭遇一个根本性的“三难困境”:系统吞吐、训练稳定性与智能体灵活性的平衡。这些彼此冲突的约束,长期以来阻碍了大规模 RL 在工业级系统中的落地。
在本文中,我们将揭示:我们如何在内部 RL 框架 Forge 中,以一种整体性的方式解决这“一道不可能三角”——融合灵活的系统架构、算法设计、优化的异步调度,以及极致的训推效率。借助标准化的交互协议,Forge 支持训练任意智能体脚手架(agent scaffold),从而支撑起大规模 RL,最终沉淀为 MiniMax M2.5 模型的突破性能力。
在构建 MiniMax M2.5 的全过程中,我们的 RL 系统穿越了十万级不同的真实世界智能体脚手架与环境。在最长可达 200k 的上下文长度下,系统仍能保持百万级样本/天的处理吞吐,实现奖励的稳定收敛,并带来底层模型能力的真实提升。结合我们的 CISPO 算法与复合奖励框架,M2.5 将高效、可靠的真实世界生产力边界向前推进,践行我们的使命 “Intelligence with Everyone”(让智能惠及每个人)。
- 问题表述
在深入介绍架构设计之前,我们先将智能体 RL 系统的优化目标表述为:最大化有效智能体(A)训练产出(J),其定义为:
\begin{aligned} \max_{\theta} J(\mathcal{\theta}) = & \text{Throughput}(\mathcal{A}) \times \text{Sample Efficiency}(\mathcal{A}) \ \text{s.t.} \quad & \forall \mathcal{A} \in \Omega_{\text{agent}} \quad (\text{Arbitrary Agent}) \ & \mathbb{E}[\text{Update Variance}] < \delta \quad (\text{Stability}) \ & \mathbb{E}[|J^{(T)} - J^*|] < \epsilon \quad (\text{Convergence}) \end{aligned}
maxθJ(θ)=Throughput(A)×Sample Efficiency(A)s.t.∀A∈Ωagent(Arbitrary Agent)E[Update Variance]<δ(Stability)E[∥J(T)−J∗∥]<ϵ(Convergence)\begin{aligned} \max_{\theta} J(\mathcal{\theta}) = & \text{Throughput}(\mathcal{A}) \times \text{Sample Efficiency}(\mathcal{A}) \ \text{s.t.} \quad & \forall \mathcal{A} \in \Omega_{\text{agent}} \quad (\text{Arbitrary Agent}) \ & \mathbb{E}[\text{Update Variance}] < \delta \quad (\text{Stability}) \ & \mathbb{E}[|J^{(T)} - J^*|] < \epsilon \quad (\text{Convergence}) \end{aligned}
其中,System Throughput 指系统每秒处理的 token 原始数量,其瓶颈来自整个 RL 系统的 4 个组成部分:rollout、训练、数据处理与 I/O。Sample Efficiency 指每个样本带来的平均性能提升,受数据分布、数据质量、算法效率以及离策略程度(off-policy-ness)影响。我们用代理指标分别刻画稳定性与收敛性约束,如上式所示。要实现最大的 J,会遭遇三类结构性挑战,下面逐一展开。
1.1 智能体可扩展性与框架灵活性
现有 RL 范式由于两处结构性缺陷,对智能体复杂度形成了“玻璃天花板”:
受限的智能体自主性:标准框架通常将智能体视为白盒函数,并让智能体与训练器共享状态。这种僵化使得复杂认知架构(例如动态上下文管理、多智能体协作)难以建模,从而也阻碍了模型能力在任意黑盒智能体上有效泛化——因为这些框架预设了特定的结构约束。
Token 一致性屏障:现有的 TITO(Token-In-Token-Out)架构迫使智能体与底层 token 逻辑深度耦合。在复杂的上下文管理(CM)下,要在推理抽象(高层逻辑)与训练表征(token 级数据)之间维持严格一致,在计算上代价高到难以承受。
1.2 系统效率与计算冗余
智能体 rollout 的完成时间呈现极端方差:从几秒(简单 API 调用)到数小时(复杂推理链)不等。这会造成调度层面的僵局:
异步控制器:系统面临硬件效率与训练稳定性的关键权衡:严格 FIFO/同步调度会遭遇拖尾效应(Straggler Effect)——单个高延迟任务引发队首阻塞(Head-of-Line, HoL Blocking),导致集群空转;而贪心/FFFO 模式虽能最大化吞吐,却会带来严重的数据分布偏移(Data Distribution Shift)。这种偏移会制造非平稳训练环境——早期由短而“简单”的任务主导,后期则被聚集的“困难”任务主导——从而引发优化不稳定与梯度振荡。
前缀冗余:在智能体场景中,tokenizer 机制与固有的上下文管理天然会产生大量共享相同前缀的请求。这种冗余会在训练中造成显著的计算浪费,并引出独特的工程挑战。
1.3 算法挑战:信用分配与优化稳定性
稀疏奖励与高梯度方差:智能体任务通常具有很长的时域与延迟反馈,一个结果往往依赖于成千上万步动作序列。在 200k 的上下文窗口中,将信用分配到特定 token 或某次工具调用,在数学上非常脆弱。奖励稀疏会使回报计算的信噪比偏低,进而导致高梯度方差,破坏大规模模型训练的稳定性。
对延迟不敏感的优化:传统 RL 目标通常只关注正确性(逐步奖励或结果奖励),而忽略墙钟时间(wall-clock)的执行成本。在真实世界的智能体场景中,完成同一任务往往存在多条有效轨迹,但由于工具执行开销与串行处理等原因,它们在延迟上可能差异巨大。标准范式无法有效激励并行性或高效的工具使用,最终得到“功能正确但实践迟缓”的智能体。
- 系统架构与智能体 RL 范式
为缓解“效率 vs. 离策略程度(Off-Policyness)”之间的权衡并最小化冗余,我们引入以下架构创新。
2.1 RL 系统设计
为了实现真正可扩展的架构,我们不再局限于某个具体实现,而是采用一种更通用的“中间件(Middleware)”设计,从而将智能体的推理逻辑与底层训练基础设施解耦。
我们的 RL 系统由 3 个模块组成:
Agent Side:这一层抽象了通用智能体(包含白盒与黑盒架构)及其运行环境。它编排递归式的环境交互,使智能体成为纯粹的轨迹生产者。通过将环境反馈与系统开销解耦,智能体可以专注于核心业务逻辑(如上下文管理与推理链),对底层训练与推理机制保持无感。
Middleware Abstraction Layer:作为桥梁,这一层在物理上隔离 Agent Side 与 Training/Inference Side,其中包括 Gateway server 与 Data Pool。
Gateway Server:作为标准化通信网关,处理智能体与 LLM 之间的 completion 请求。通过使用通用的标准协议,该服务器有效隔离了实际底层模型的复杂性与智能体的高层行为逻辑。
Data Pool:作为分布式数据存储,Data Pool 以异步方式收集来自智能体的 rollout 轨迹与报告。它充当解耦生成与训练的缓冲区,使用户能够灵活应用数据处理与 batching 策略,以提升训练效率并满足算法需求。
Training and Inference Side:这一层负责重计算,包含 LLM Engine 与 Train Engine。
Rollout Engine:面向高吞吐 token 生成,响应由 Middleware 转发的请求。
Train Engine:从 Data Pool 消费处理后的 token 序列以更新策略;同时与 LLM Engine 保持同步,确保智能体用最新策略分布进行探索。
在离线评测中,我们观察到由脚手架差异导致的显著性能差距。借助 RL 框架的模块化设计,我们可以在不修改智能体内部的前提下,使用大规模脚手架阵列进行训练,从而有效推动模型在多样脚手架(亦即环境)上实现泛化。我们的架构实现了引擎与智能体的完全解耦,保证各类智能体能够无缝接入。迄今为止,我们已集成数百种脚手架类型,以及数千种不同的工具调用格式。
2.2 面向上下文管理(CM)的白盒智能体 RL
对于白盒智能体,完善的脚手架设计与增强使我们能够直接观测并优化模型在特定智能体架构上的表现。在 MiniMax M2.5 的研发中,我们重点解决了以往模型在需要主动上下文管理的长时域任务(例如 DeepSearch)中暴露的若干关键问题:
上下文腐烂(Context Rot)挑战:随着交互轮次增加,中间推理步骤与冗余观测不断累积,会产生“注意力稀释”效应。这些噪声积累会让模型偏离关键信息,即使其仍严格处于绝对上下文窗口限制之内。
推理-训练不匹配:上下文管理在推理阶段确实能有效延长交互时域并提升长上下文场景下的智能体表现,但如果只在推理中使用,会与 RL 训练数据产生严重分布偏移。这种差异迫使模型在运行时突然适应意外的上下文跃迁、并即时处理陌生的长上下文结构,最终反而削弱整体性能。
为解决分布偏移并维持推理保真度,我们将 CM 机制直接纳入 RL 交互闭环,等价地把上下文管理视作驱动状态转移的功能性动作:
CM 驱动的状态转移:我们将 CM 建模为显式的智能体动作,使上下文转移自然地嵌入环境动力学中。从 St 到 St+1 的状态转移隐式包含了上下文切换逻辑,从而把上下文适配直接折叠进模型的训练目标。
自适应推理模式:在该框架下优化策略 π,模型学会内化分布偏移,进而涌现出稳健的推理模式,天然优先关注“状态关键(state-critical)”的 token。
上下文感知的管理策略:在这一范式下,模型被训练为在 RL 生成过程中预判潜在的上下文管理操作与切换。通过主动保留任务关键信息并裁剪无关的上下文噪声,模型在部署于上下文管理型智能体框架时能够显著提升性能。
2.3 黑盒智能体 RL:跨异构脚手架的鲁棒性
在实际部署中,我们相当一部分用户使用的是专有或复杂的智能体架构,它们以“黑盒”形式运行。我们观察到,模型表现往往会随底层智能体脚手架而剧烈波动,因为标准训练范式难以跨不同认知架构泛化。为此,我们通过一项专门的黑盒智能体实验验证了框架能力,确保无论智能体内部是否透明,都能获得一致的优化效果。
无侵入集成与兼容性:Forge 对智能体内部实现细节完全无感。智能体只需将请求路由到 RL 服务 Gateway,框架便会在后台自动完成数据采集与训练。因此,在实际 RL 训练中,Forge 可无缝支持任意上下文操控(如记忆压缩、历史重写),并兼容任何复杂的内部 Agent Loop(例如 Deep Think、多智能体架构)。
多脚手架泛化:通过将训练闭环与智能体内部状态解耦,MiniMax M2.5 能与海量黑盒智能体广泛兼容。这种适配覆盖从高度依赖 Sandbox 与 Model Context Protocol(MCP)环境的代码智能体(例如我们将 OpenCode Agent 完全按黑盒方式训练),到采用激进上下文压缩策略的智能体(如 Truncate BC)。实证结果显示,即便面对完全不透明的黑盒系统,该方法仍能带来一致且稳定的提升。
- 工程优化
3.1 混合调度策略:窗口化 FIFO(Windowed FIFO)
为解决系统吞吐与分布一致性之间的冲突,我们引入 Windowed FIFO。该策略对训练调度器施加滑动约束,作为严格同步排序与贪心异步执行之间的“折中地带”。
其核心逻辑决定了训练调度器如何从全局生成队列中取样。即使一次提交了大量请求(例如生成批大小为 N),调度器也只能看到大小为 W 的可见窗口(例如 W=0.3N)。
受限可见范围:设生成队列为 Q=[T0,T1,...,TN−1],当前队首位于索引 i。训练调度器严格限制只能从 [Ti,Ti+W−1] 区间内抓取已完成的轨迹。
局部“贪心”无序(窗口内):在活动窗口 [Ti,Ti+W−1] 内,调度器可以立即取走任意已完成轨迹。这缓解了队首阻塞(HoL blocking),因为窗口内的快任务无需等待绝对队首任务完成。
全局“严格”阻塞(窗口边界):关键在于,即便队列中索引 j>i+W(窗口外)的任务已经完成——在大生成批中这对简单快任务很常见——调度器也被禁止取走它。
约束实现:窗口只有在队首任务被消费后才会前移(i→i+1)。该机制有效迫使调度器在当前窗口内等待“拖尾者”(复杂、长时域任务),避免训练分布向队列后部的“快而易”样本漂移。
3.2 通过前缀树合并加速智能体轨迹训练
在智能体训练中,数据集通常由大量多轮对话样本构成。从结构上看,这些样本高度重叠。
挑战:传统方法中的冗余
前缀重叠:在朴素的多轮对话中,消息按顺序不断追加。在 tokenizer 一致的前提下,多个共享相同历史的 completion 理论上可以合并。
复杂上下文管理:智能体常采用复杂的上下文管理策略,例如丢弃无关中间结果或进行自我摘要。因此,不同 completion 往往共享大量公共前缀。
朴素方案的局限:传统训练将每个样本视为独立实体,反复重算这些公共前缀。在长上下文场景中,这种计算冗余会造成巨量 TFLOPS 浪费,并严重限制训练吞吐。
前缀树合并(Prefix Tree Merging)
为消除冗余,我们提出前缀树合并方案,将训练过程从“线性处理”转为“树结构”处理。
前缀树合并:针对智能体场景下复杂上下文管理(如图示的“长公共上下文”),只要多个 completion 共享底层前缀,即便后续回复略有差异或属于不同采样分支,也可在样本层面合并成一棵前缀树。
借助注意力原语(如 Magi Attention),我们确保逻辑执行与标准前向计算保持一致。前向计算结束后,根据元数据对前缀树进行拆解,按常规方式计算 loss,从而对下游逻辑零影响。
通过消除冗余的前缀 prefilling,该方案实现了 40 倍训练加速,并显著降低内存开销,以支持更长序列或更大 batch size;同时保证与标准方法严格数学等价,对 loss 计算与指标零影响。
3.3 极致推理加速
我们通过三项架构创新优化生成流水线:
基于 MTP 的推测解码(Speculative Decoding):不同于静态草稿模型,我们使用 Multi-Token Prediction(MTP)头,并通过 Top-K KL loss 持续微调。这确保其与不断演化的 RL 策略对齐,在缓解分布偏移的同时维持高接受率,从而实现显著加速。
异构 PD 解耦(Heterogeneous PD Disaggregation):我们将 Prefill 与 Decode 解耦,消除二者在混合 MoE 调度中的相互干扰,并允许对每个实例采用独立的并行策略,从而同时最大化全局吞吐并优化长时域任务的尾延迟(tail latency)。
全局 L3 KV 缓存池:为避免多轮智能体 RL 中的冗余 prefilling,并在 group-level rollout 中最大化前缀缓存命中率,我们引入一个由 DFS 支撑的全局 L3 Cache。成本感知调度器会动态路由请求,权衡排队延迟与缓存迁移成本,在不压垮实例的前提下最大化缓存局部性。
- 可扩展的智能体 RL 算法
4.1 RL 算法
我们以 CISPO 作为核心算法,并针对长时域智能体的特性做了专门适配。
统一的混合域训练:不同于多阶段强化学习(往往导致跨域负迁移或干扰),我们采用统一训练策略:同时混合 Reasoning、通用 QA 与 Agent 三个域的任务进行训练。这种联合训练缓解了顺序训练中常见的性能退化,并显著增强模型在多样任务上的泛化能力。
4.2 稠密且效率感知的奖励
我们提出一套复合奖励框架,旨在应对超长上下文(最高 200k)带来的信用分配难题,并保证训练稳定性:
过程奖励(Process Reward):为提供稠密反馈,我们针对中间行为(例如惩罚语言混用或特定工具调用错误),而非仅依赖最终结果。
任务完成时间奖励(Task Completion Time Reward):在智能体场景中,完成任务往往存在多条轨迹。总耗时不仅取决于 token 生成,还取决于特定工具执行与子智能体调用所带来的延迟。由于完成时间直接影响真实用户体验,我们将相对完成时间纳入奖励信号,以激励智能体利用并行性,从而加速任务执行。
用于降方差的 Reward-to-go:标准稀疏奖励在长时域任务中常导致高梯度方差。我们采用 Reward-to-go 形式对回报进行归一化,从而有效降低梯度方差、提升信用分配精度,并稳定优化过程。
- 结论
我们成功解决了面向智能体扩展 RL 的“不可能三角”。通过 Forge,我们在实现 RL 系统吞吐突破的同时,确保了对任意智能体脚手架的稳健泛化。将这一灵活架构与稳定的 CISPO 算法结合,我们支撑了 MiniMax M2.5 背后的大规模训练。这种整体性方法突破了以往限制,交付了高效的真实世界智能体能力,并推进我们的使命 “Intelligence with Everyone”(让智能惠及每个人)。





链接:http://x.com/i/article/2022169816556331008