AgentJet: A Flexible Swarm Training Framework for Agentic Reinforcement Learning
AgentJet: A Flexible Swarm Training Framework for Agentic Reinforcement Learning
发表时间: 2026-06 · arXiv:2606.04484 (Alibaba Tongyi EconML)
原文: https://arxiv.org/abs/2606.04484
作者/机构: Qingxu Fu∗, Boyin Liu, Shuchang Tao, Zhaoyang Liu, Bolin Ding (Tongyi Lab, Alibaba Group)
A1 主要贡献
本文介绍了AgentJet,一个为大型语言模型(LLM)智能体强化学习设计的分布式群体训练框架。该框架旨在解决现有通用RLHF框架和智能体原生RL框架在训练过程中遇到的运行时脆弱性、调试摩擦、多模型约束、上下文冗余和环境锁定等挑战。研究的核心目标是创建一个灵活、可扩展且容错的架构,以支持日益复杂的智能体训练需求。
AgentJet的主要贡献如下:
-
群体架构(Swarm Architecture):提出了一种创新的客户端-服务器范式,将智能体运行时与模型训练基础设施完全解耦。群体服务器节点(优化器节点)在GPU集群上托管和训练模型,而群体客户端节点(采样节点)在任意设备上执行智能体工作流。这种架构实现了容错训练(客户端故障不中断训练)、热插拔调试(可在线修改智能体代码)、异构多模型强化学习(同时训练多个不同模型)以及多任务鸡尾酒式训练(隔离不同任务的运行时环境)。此外,该架构引入了时间线合并算法,通过整合冗余上下文,将训练速度提升了1.5至10倍。
-
群体训练能力(Swarm Training Capabilities):展示了群体架构所支持的两种高级工作流。一是“氛围训练”(vibe training),其中AI编码助手能根据自然语言规范生成完整的训练代码,极大地降低了RL任务的工程开销。二是在多种智能体任务上进行了基准评估,验证了框架在共享参数多智能体训练、非共享参数多智能体训练以及多任务鸡尾酒式训练中的有效性。
-
自动化研究流水线(Automated Research Pipelines):构建了一个全自主的AI研究系统。该系统以一个研究课题为输入,能够自主地规划、执行和分析持续数天的大规模实验活动。通过六个独立的案例研究(涵盖超参数优化、模型规模比较和LoRA配置分析),验证了该系统能够在无人干预的情况下,复现RL研究者的关键探索性工作流程。
A2 相关工作
2.1 针对LLM的强化学习框架
LLM智能体的快速发展催生了丰富的RL训练框架生态,我们将其分为通用RLHF系统和智能体原生RL系统两大类。
通用RLHF框架。OpenRLHF 【13, OpenRLHF: An easy-to-use, scalable and high-performance RLHF framework. 2024. arXiv】开创了一种基于Ray【22, Ray: A distributed framework for emerging AI applications. 2018. USENIX OSDI】 + vLLM【16, Efficient memory management for large language model serving with PagedAttention. 2023. SOSP】的分布式架构,通过混合引擎调度在GPU集群上协调actor、reward、reference和critic模型。veRL (HybridFlow)【31, HybridFlow: A flexible and efficient RLHF framework. 2024. arXiv】引入了一种混合单控制器/多控制器编程模型,将RL控制流与计算流解耦,在PPO【29, Proximal policy optimization algorithms. 2017. arXiv】、GRPO【30, DeepSeekMath: Pushing the limits of mathematical reasoning in open language models. 2024. arXiv】等算法上实现了业界领先的吞吐量。这些框架在扩展推理型RL方面发挥了重要作用;然而,它们主要为单轮或短时交互设计,并假设训练-推理环境是紧密耦合的。
智能体原生RL框架。新一波框架应运而生,以满足智能体训练的特定需求。MiniMax的Forge【20, Forge: Scalable agent RL framework and algorithm. 2026. Hugging Face Blog】引入了一个中间件抽象层,将智能体视为黑盒,其LLM请求通过服务网关路由,并将上下文管理作为RL循环中的一个显式智能体动作来缓解上下文退化。由清华大学和蚂蚁集团联合开发的AReaL【6, AReaL: A large-scale asynchronous reinforcement learning system for language reasoning. 2025. arXiv】开创了完全异步的训练-推理解耦,实现了3-5倍的加速;其v1.0版本引入了Proxy Worker中间件,使任何智能体只需更改一个API端点即可连接到RL训练。微软研究院的Agent Lightning【19, Agent lightning: Train ANY AI agents with reinforcement learning. 2025. arXiv】将智能体经验转换为状态-动作-奖励转换,实现了对现有框架的低侵入式集成。OpenTinker【46, OpenTinker: Separating concerns in agentic reinforcement learning. 2026. arXiv】通过强化学习即服务(RLaaS)架构和用于多智能体训练的智能体协议协调器,推进了关注点分离范式。OpenClaw-RL【36, OpenClaw-RL: Train any agent simply by talking. 2026. arXiv】将每次智能体交互都视为持续在线策略优化的实时训练信号。
与这些系统的比较。与这些系统相比,AgentJet提供了:(1) 在任意设备间通过多对多拓扑实现训练和推理的完全解耦;(2) 无需参数共享的异构多模型多智能体RL;(3) 架构级别的容错能力,客户端故障不会中断训练;(4) 用于高效多轮训练的时间线合并技术,带来1.5-10倍的加速;以及(5) 无需任何代码修改的、框架无关的黑盒智能体支持。
2.2 自动化科学研究
AI进行研究的愿景已迅速发展。Sakana AI的AI Scientist【18, The AI scientist: Towards fully automated open-ended scientific discovery. 2024. arXiv】展示了从想法产生到代码实现、实验、论文撰写和同行评审的端到端自动化研究。Google DeepMind的AI Co-Scientist【8, Towards an AI co-scientist. 2025. arXiv】进一步探索了AI驱动的科学假设生成和实验设计。香港大学的AI-Researcher【32, AI-Researcher: Autonomous scientific innovation. 2025. NeurIPS 2025 Spotlight】获得了NeurIPS 2025的Spotlight奖。AgentRxiv【28, AgentRxiv: Towards collaborative autonomous research. 2025. arXiv】利用多智能体协作迭代改进结果,通过自动化研究周期将MATH-500【10, Measuring mathematical problem solving with the MATH dataset. 2021. NeurIPS】的准确率从70.2%提高到78.2%。OpenAI已将全自动AI研究员确定为核心长期目标【21, OpenAI is throwing everything into building a fully automated researcher. 2026. MIT Technology Review】。
AgentJet的独特之处。然而,这些系统主要关注生成研究论文或在几分钟内完成的任务上优化基准分数。AgentJet的自动化研究流水线针对一个互补且较少探索的问题:协调长时程的实验活动,其中单个训练运行持续数小时到数天,多个实验必须在GPU集群上调度,并且需要自适应的多阶段实验设计来得出研究结论。
A3 方法细节
AgentJet是一个分布式的智能体强化学习框架,它协调有或没有GPU的异构设备,以同时训练一个或多个LLM模型,从而提高任务性能和模型能力。AgentJet采用一种群体架构,其中多个节点形成一个训练网络,适用于广泛的智能体训练场景。
3.1 群体架构
现有框架的耦合假设及其问题。大多数现有的智能体RL框架都基于两个隐含的耦合假设。首先,给定任务中的所有智能体都必须共享一个可训练的LLM,因为主流的训练后端被设计为一次只优化一个模型。其次,rollout工作节点与训练过程紧密耦合,在承载梯度计算的同一台机器和同一运行时中执行。这些假设混淆了两种可靠性特性截然不同的工作负载:梯度计算是GPU密集型的,受益于紧密的同地部署;而智能体rollout则主要由与外部工具、MCP服务【2, Introducing the Model Context Protocol. 2024. Anthropic】和远程资源访问的交互主导,这些交互的常规故障(如配额耗尽、速率限制)经常中断训练并导致未保存进度的丢失。
耦合带来的研究限制。这种耦合进一步阻碍了一些日益重要的研究方向,包括具有非共享参数的异构多智能体RL、多领域联合训练,以及依赖重量级运行时的智能体的在线策略(on-policy)训练。AgentJet通过将训练和rollout平面解耦为一组协作的节点群体,解决了这两种耦合问题。
AgentJet的群体架构设计。如图1所示,AgentJet采用基于群体的训练架构,通过两种类型的节点进行协调,这些节点可以部署在一个或多个硬件设备上,并可以随时加入或离开群体:
* 群体服务器节点(优化器节点):每个服务器节点是在GPU服务器或集群上运行的训练引擎。服务器节点执行LLM策略梯度更新,托管vLLM【16, Efficient memory management for large language model serving with PagedAttention. 2023. SOSP】/SGLang【44, SGLang: Efficient execution of structured language model programs. 2024. NeurIPS】推理API并进行自动上下文跟踪,以及管理回合(episode)的生命周期。多个服务器节点可以并发操作,每个节点服务和训练一个不同的模型(例如,Qwen3-32B和Qwen3-14B),从而实现非共享参数的多智能体训练。当前的服务器节点实现基于veRL【31, HybridFlow: A flexible and efficient RLHF framework. 2024. arXiv】,以获得与大多数RL算法的最佳兼容性。
* 群体客户端节点(采样节点):客户端节点是轻量级的、仅需CPU的进程,可以运行在任何设备上,包括工作站、笔记本电脑,或与服务器相同的机器上。每个客户端执行任意的智能体工作流,读取数据集,运行智能体循环,并计算特定于任务的奖励。当客户端与服务器的推理API交互时,服务器会透明地捕获所有上下文用于训练。此外,客户端可以被授权来操作服务器节点,以更新训练配置、终止或重启训练,以及获取训练进度。客户端节点也可以安全地重启并重新加入训练网络,而不会影响整个训练过程。
图1: AgentJet群体训练架构。群体服务器(优化器节点)在GPU集群上托管模型权重,而群体客户端(采样节点)执行智能体工作流并收集强化学习训练轨迹。群体网络是动态形成的,客户端可以随时加入和离开,从而实现容错操作、热插拔调试和多模型训练。
群体网络的组成与灵活性。一个AgentJet训练网络(群体)由相互连接但独立操作的服务器和客户端节点组成。一方面,服务器节点的数量由正在训练的模型的数量决定,因为每个服务器独立托管和训练一个不同的模型。另一方面,客户端节点的数量非常灵活;研究人员可以动态添加节点以增加冗余、同时在多个数据集上训练、运行非计划的评估、在训练中调试奖励函数等等。单个客户端可以自由地终止、修改和重启,而群体的其余部分继续不间断地训练,不同的客户端可以在完全隔离的运行时环境中运行,例如独立的Docker容器、虚拟机,甚至不同的操作系统。
3.2 群体强化学习范式
分布式RL流程。AgentJet中的强化学习过程在概念上与其他RL框架相似;不同之处在于责任如何在群体中分布。通过将轨迹收集与模型优化解耦,群体架构使RL过程更加灵活和可扩展,并能适应更复杂的实验设置。基本过程按以下阶段展开:
(1) 设置群体服务器。群体服务器在RL训练群体网络中承载模型和模型优化器。初始化时,每个群体服务器从零开始(不加载任何训练参数或LLM模型),仅声明一个地址以在群体网络中注册自己,等待一个提供训练配置和启动指令的群体客户端来唤醒。
图2: 服务器和客户端节点之间的群体强化学习范式,展示了网络建立、回合生命周期和异步权重更新触发。
(2) 连接群体客户端。群体客户端是智能体运行器和RL轨迹生成器,它们通过执行使用指定LLM进行训练的智能体来收集轨迹。一个群体可以包含任意数量的客户端,从单个到多个,运行在任何设备和操作系统上。在任何情况下,一个指定的客户端充当控制器,它激活和停用群体服务器并同步训练参数。一旦训练参数被传送到群体服务器,服务器进入“启动”(Booting)阶段,最后在所有模型权重加载到内存后进入“运行”(Rolling)阶段。
(3) 收集轨迹。强化学习从此阶段开始,群体服务器为客户端暴露一个与OpenAI兼容的推理API,以执行智能体回合(在智能体开发中即智能体循环或工作流),同时透明地捕获所有上下文和轨迹用于后续的策略训练。要开始一个回合,客户端需要在每个参与的服务器上注册该回合,并从每个服务器获取一个专用的BaseUrl/ApiKey对(编码有唯一的回合标识符),这个对既是服务器特定的(以便客户端可以寻址到该服务器上的相应LLM),也是回合特定的(以防止跨回合干扰)。一旦批准,每个群体服务器会创建一个绑定到该回合的内部上下文跟踪器,以记录所有通过它路由的智能体LLM请求。在大多数情况下,群体中的每个节点必须并发处理多个回合;每个回合的BaseUrl/ApiKey对将每个推理请求路由到正确的上下文跟踪器。一个回合可能被客户端中止(例如,外部环境失败)或被服务器中止(例如,超出截止时间)。成功完成后,客户端将回合奖励提交给服务器,之后该回合的轨迹被接纳到服务器的样本池中。
(4) 优化模型。当样本池达到容量或满足其他预定义条件时(参见3.3节),群体服务器转换到“权重同步”(Weight_Syncing)阶段以优化LLM。首先,AgentJet的时间线合并模块合并样本池中的轨迹以减少冗余。其次,根据所选的RL算法计算策略梯度和其他损失项,以执行优化器步骤,更新完整的模型权重或LoRA【12, LoRA: Low-rank adaptation of large language models. 2022. ICLR】矩阵权重。最后,服务器返回到“运行”(Rolling)阶段,恢复如步骤(3)所述的轨迹收集。
(5) 评估。群体架构的一个优点是评估任务可以随时在任何节点上安排。训练和评估可以同时进行;关键区别在于,评估回合必须在完成后中止,以防止其轨迹进入训练样本池。
3.3 回合批处理
传统批处理的局限性。大多数传统的RL框架采用预先调度的批处理行为,假设回合批次大小、组容量和任务组成在整个训练过程中保持固定。然而,这种做法阻碍了高级采样控制方法的灵活使用,例如DAPO【42, DAPO: An open-source LLM reinforcement learning system at scale. 2025. arXiv】中的动态采样,研究人员必须应用非平凡的事后过滤来丢弃优势估计为零的样本,这个过程从根本上与预定批处理相冲突。
AgentJet的灵活批处理机制。利用其基于群体的架构,AgentJet支持多种控制样本批处理的机制,使得混合异构样本和提高整体采样效率变得前所未有地简单和直接。随着回合的完成,服务器将它们累积在一个按任务身份组织的样本池中。令 $B = \{(t_i, E_i)\}$ 表示该池,其中 $t_i$ 是唯一的任务标识符,$E_i = \{e_{1i}, \dots, e_{|E_i|i}\}$ 是任务 $t_i$ 的已完成回合集合,每个回合都有奖励 $r_j$。令 $B$ 表示批次大小,$N$ 表示每个任务的rollout重复次数。AgentJet提供了五种收集策略,分为两组:服务器端策略(C1–C3)和服务器-客户端协议策略(C4–C5)。前者(C1–C3)采用纯粹的生产者-消费者模型,其中服务器单方面决定样本池 $B$ 何时准备好触发下一次策略更新。后者(C4–C5)将客户端节点的状态纳入调度决策;具体来说,服务器在继续下一次策略更新之前等待一个或所有客户端节点的确认。
图3: AgentJet中群体协调的强化学习。群体客户端针对群体服务器暴露的OpenAI兼容推理端点运行智能体回合;带有奖励的已完成回合被累积在一个按任务组织的样本池中。此外,样本池收集策略可以根据特定的实验需求进行调整。
- C1 – 回合计数策略:令 $N_c = \sum_i |E_i|$ 为已完成回合的总数。当 $N_c \ge B \times N$ 时触发训练。
- C2 – 任务计数策略:当 $|E_i| \ge N$ 时(即,作为一个组已累积了足够数量的回合重复),任务 $t_i$ 被视为已完成。令 $N_{tc} = |\{t_i : |E_i| \ge N\}|$ 表示已完成任务的数量。当 $N_{tc} \ge B$ 时触发训练。
- C3 – 非虚拟任务计数策略:一个已完成的任务仅在其回合表现出非零奖励方差时(即,$\exists j \neq k$ 使得 $r_{ji} \neq r_{ki}$),才被进一步分类为有效(非虚拟)。令 $N_{tv}$ 表示有效任务的数量;当 $N_{tv} \ge B$ 时触发训练。这种动态采样策略确保所有收集的样本都提供可靠的策略梯度信号,但代价是增加了采样时间。
- C4 – 所有客户端同意策略:当所有活跃的群体客户端节点都发出同意信号时触发训练。当需要控制不同客户端节点贡献的样本比例,或在异构多智能体合作场景中需要客户端节点之间进行细粒度协调时,此策略是合适的。
- C5 – 任一客户端同意策略:只要任何一个活跃的群体客户端节点发出同意信号,就触发训练。
服务器状态转换。一旦策略更新被触发,群体服务器节点首先转换到Rolling_Post状态,在此状态下,新的回合请求被拒绝,而正在进行的回合被允许完成。然后它进入Weight_Syncing状态,在此状态下执行策略梯度步骤,并将更新后的权重广播到推理引擎。一旦所有优化器步骤执行完毕,服务器节点切换回Rolling状态。
图4: 群体服务器监控,实时样本收集进度驱动图3中的C1-C5触发标准。
3.4 上下文跟踪与框架无关的智能体支持
支持黑盒智能体。许多现代智能体采用复杂的内部设计,通过记忆、技能、目标循环和自动压缩等机制来管理LLM上下文。为了通过强化学习提高这类智能体的LLM性能,训练框架必须是框架无关的,并为黑盒智能体提供支持,即那些需要零修改且无需框架级工具注入的智能体实现。AgentJet通过在每个群体服务器内独立运行的回合级上下文跟踪和重构机制来实现这一点。
3.4.1 框架无关的集成
通过OpenAI兼容端点实现。每个群体服务器都暴露一个与OpenAI兼容的端点。要训练任意智能体,实践者只需将智能体的LLM基础URL和API密钥替换为AgentJet提供的即可。API密钥是回合特定的,并编码了回合信息;参见3.2节。所有推理请求都被拦截、分词、记录,并转发到实际的vLLM/SGLang后端。这支持任何通过HTTP通信的智能体框架,包括LangChain【4, LangChain. 2022. GitHub】、AgentScope【7, AgentScope: A flexible yet robust multi-agent platform. 2024. arXiv】、MetaGPT【11, MetaGPT: Meta programming for a multi-agent collaborative framework. 2024. ICLR】、AutoGen【38, AutoGen: Enabling next-gen LLM applications via multi-agent conversation. 2023. arXiv】、CrewAI【23, CrewAI: Framework for orchestrating role-playing, autonomous AI agents. 2023. GitHub】、OpenAI SDK以及自定义的HTTP实现。
3.4.2 上下文跟踪器和时间线合并
上下文跟踪器。每个被拦截的LLM调用在上下文跟踪器中产生一个独立的时间线。每个时间线是一个消息块数组,其中每个块包含:一个作者标签(llm, env, user)、一段文本、一个token ID序列、一个逐token的对数概率序列和一个二元损失掩码序列。形式上,第$i$次LLM调用的时间线$T_i$是一个包含$K_i$个消息块的有序数组:
其中,$m_i^{[k]}$是文本消息,$x_i^{[k]}$是token ID序列,$a_i^{[k]} \in {\text{llm, env, user}}$是作者标签,$\ell_i^{[k]}$是逐token的对数概率,$\mu_i^{[k]} \in {0, 1}^{|x_i^{[k]}|}$是损失掩码(仅对LLM生成的token设为1)。
时间线合并。在每个回合结束时,上下文跟踪器持有一个有序的时间线列表$T = (T_1, \dots, T_n)$,每个被拦截的LLM调用对应一个。由于后续轮次会重用早期轮次作为提示,这些时间线共享长的公共前缀,因此将每个时间线视为独立的训练样本会夸大样本数量而没有新的监督信息。时间线合并将每个匹配更长时间线前缀的时间线吸收到该更长的时间线中,并保留哪些token是LLM生成的。具体来说,合并按逆序进行(算法1):$T_n$依次吸收$T_{n-1}, \dots, T_1$,然后$T_{n-1}$(如果尚未被吸收)吸收剩余的更早时间线,依此类推。幸存的时间线构成$T'$。
算法1 时间线合并
成对可合并性。一个较长的时间线$S$和一个较短的时间线$T$是可合并的,当$|S| \ge |T|$且对于所有$k \in [1, |T|]$,Match(S[k], T[k]) = True。Match是根据所选策略(见下文的宽松匹配策略)的token级或文本级相等性判断。
需要: 按收集时间排序的有序时间线 $T = (T_1, T_2, \dots, T_n)$;匹配谓词 Match(·, ·)。
确保: 合并后的时间线集合 $T'$,其中已吸收的时间线被移除。
1: $A \leftarrow \emptyset$ {已吸收时间线的索引}
2: for $i = n$ downto 2 do
3: if $i \in A$ then
4: continue
5: end if
6: for $j = i - 1$ downto 1 do
7: if $j \in A$ then
8: continue
9: end if
10: if $|T_i| \ge |T_j|$ and Match($T_i^{[k]}, T_j^{[k]}$), $\forall k \in [1, |T_j|]$ then
11: for $k = 1$ to $|T_j|$ do
12: if $T_j^{[k]}.\text{author} = \text{llm}$ and $T_i^{[k]}.\text{author} \neq \text{llm}$ then
13: $T_i^{[k]}.\text{author} \leftarrow \text{llm}$
14: $T_i^{[k]}.\text{tokens} \leftarrow T_j^{[k]}.\text{tokens}$
15: $T_i^{[k]}.\text{logprob} \leftarrow T_j^{[k]}.\text{logprob}$
16: end if
17: end for
18: $A \leftarrow A \cup {j}$ {$T_j$ 被吸收到 $T_i$}
19: end if
20: end for
21: end for
22: return $T' = (T_i)_{i \notin A}$ 按原始顺序
宽松匹配策略。为了处理现实世界中的分词漂移(文本编码后再次编码会产生不同的token序列),提供了两种可配置的匹配策略选项:
1. token:在每个对齐位置进行精确的token-id匹配;适用于严格的训练/推理一致性。
2. text (默认):在每个对齐位置进行精确的文本匹配;能容忍分词器漂移并产生更积极的合并。
匹配策略的权衡。对于大多数时间线对,这两种策略产生相同的结果,但它们恰好在研究人员必须在训练效率和训练-推理(TI)一致性之间进行权衡的边界上出现分歧。图5展示了这样一种情况:在Qwen3聊天模板下,一旦附加了后续的助手轮次,分词器会从早期的助手消息中剥离thinking块,导致即使文本相同,token数组也不同。在文本级匹配下,时间线合并为一个,以TI一致性为代价最大化训练速度。在token级匹配下,时间线保持分离。当工作负载对这种分词器引起的漂移敏感,并且需要与推理时token流精确对齐时,首选token级匹配。
图5: Qwen3上的文本级与token级时间线匹配。较早的助手消息在附加了后续轮次后,其thinking块被剥离,因此两个时间线在文本上一致,但在token id上不同:文本级匹配将它们合并,而token级匹配则保持它们分离。
3.5 群体解耦带来的能力
核心设计。AgentJet的群体架构将GPU密集的模型训练与智能体执行解耦。群体服务器维护模型权重、优化器状态、推理引擎和训练样本,而群体客户端则运行智能体循环、任务环境、工具、奖励函数、评估代码和实验控制逻辑。这种设计直接实现了以下能力。
- 异构多模型训练。大多数现有的多智能体RL框架只能训练共享单一模型的智能体:所有智能体调用相同的LLM策略,并通过共享参数进行更新。虽然这简化了实现,但它限制了策略多样性,阻碍了具有不同成本和能力的模型的集成,并排除了跨异构模态的协调训练。AgentJet通过启用非共享参数的RL训练来克服这些限制,其中不同的可训练LLM驻留在不同的群体服务器上。群体客户端将智能体的每个动作路由到相应的模型,收集特定角色的轨迹,并仅使用该模型生成的经验来更新每个模型。
- 混合任务鸡尾酒式训练。在现有框架中,跨多个智能体任务训练LLM通常需要在沙箱、网络代理、MCP工具、API服务和任务特定奖励代码方面进行大量工程工作。当所有这些组件都嵌入一个训练器中时,训练过程变得脆弱:一个无效的API密钥、沙箱崩溃或运行中的IP封禁都可能中断整个运行。AgentJet将这些不稳定的任务运行时放置在不同的设备或独立的容器中。不同的客户端可以在其本地运行时内执行不同的任务,而服务器通过统一的样本接口接收它们的rollout,并在混合的任务分布上进行训练。
- 研究者友好的调试与评估。现有的RL框架难以在类似REPL(读取-求值-打印循环)的研究工作流中使用。对智能体循环、提示、奖励函数或评估脚本的微小更改可能需要重启整个训练作业,重新加载模型,并丢失有用的进度。评估也通常需要预先安排,这使得在训练期间灵活测试新案例、检查故障或探查遗忘现象变得困难。AgentJet将这些快速变化的组件保留在群体客户端中。研究人员可以修改客户端、重启或分离它、附加一个新的调试或评估客户端,并与正在进行的训练运行进行交互,而无需重启群体服务器。
- 去中心化训练。像Tinker【33, Tinker: A low-level training api for distributed LLM fine-tuning. 2025. Thinking Machines Lab】这样的系统允许研究人员在自己的机器上运行面向实验的训练部分,同时将优化器和模型服务器留在云端。AgentJet的群体架构为智能体RL提供了类似的去中心化形式。研究人员可以在本地机器上编辑和测试RL算法、智能体循环、奖励设计、rollout逻辑和评估代码,包括用作群体客户端的无GPU笔记本电脑。然后,本地客户端可以向远程GPU服务器发送超参数、指令和rollout请求。在这种架构中,即使是笔记本电脑也可以充当一个群体网络的控制器,该网络训练一个由许多异构LLM构建的多智能体系统,仅受可用计算和网络资源的限制。
- 自动化研究。REPL风格的交互和去中心化训练使AgentJet适用于“氛围训练”和自动化研究工作流。AI编码智能体可以生成或修改群体客户端、实现奖励、调整提示、启动rollout、检查日志,并在不重写服务器端优化器的情况下迭代修复故障。在更大规模上,自动化研究智能体可以使用GPU集群并行运行长期的实验单元,比较超参数或任务混合,并根据中间结果启动后续实验。群体接口为这些智能体提供了一个稳定的训练基础,同时使任务设计和实验逻辑易于修改。
- 容错训练。群体架构可用于构建一个容错的训练系统,而无需在每个任务运行时进行复杂的工程。当客户端节点发生故障时,可以根据群体组成重新启动、终止或忽略它,而不会强制训练服务器回退或丢弃其优化器状态。已经被服务器接受的样本仍然可用于训练,而失败或可疑的回合可以被排除。这对于智能体RL尤其有用,因为rollout客户端经常依赖于外部工具、API、沙箱和长时程环境,这些环境比优化器本身更容易发生故障。
A4 实验环境
-
数据集:
- 狼人杀游戏 (Werewolves RPG):用于多智能体强化学习,包括共享参数和非共享参数训练。
- 学术摘要翻译:用于分层多智能体工作流,将英文摘要翻译成中文。
- AppWorld【34, AppWorld: A controllable world of apps and people for benchmarking interactive coding agents. 2024. ACL】:一个交互式编码基准,用于多轮API调用任务,验证时间线合并的效率。
- AIME (AI Mathematical Olympiad):一个数学推理任务,用于多任务鸡尾酒式训练和自动化研究。
- DAPO-Math-17k【42, DAPO: An open-source LLM reinforcement learning system at scale. 2025. arXiv】:用于多轮数学推理任务,验证框架无关的智能体循环。
- "谁是卧底" (Who is the Spy):用于“氛围训练”案例研究,通过自然语言提示构建训练器。
-
模型:
- Qwen系列:Qwen2 (7B, 14B), Qwen2.5 (7B, 14B), Qwen3 (8B, 14B, 32B, 235B-A22B)。
- LoRA【12, LoRA: Low-rank adaptation of large language models. 2022. ICLR】:用于非共享参数训练中的模型微调。
- MiniMax-M2.7:用于驱动A3R(自动化研究)模块中的领导者和工作者智能体。
-
硬件配置:
- GPU:实验在GPU服务器或集群上进行,具体配置包括单节点8-GPU(用于鸡尾酒训练和AIME研究)、4-GPU(用于狼人杀训练)等。
- CPU:客户端节点是轻量级的,可以在包括笔记本电脑在内的任何CPU设备上运行。
-
软件配置:
- 核心框架:AgentJet。
- 底层依赖:veRL【31, HybridFlow: A flexible and efficient RLHF framework. 2024. arXiv】作为服务器节点实现的基础,Ray【22, Ray: A distributed framework for emerging AI applications. 2018. USENIX OSDI】,vLLM【16, Efficient memory management for large language model serving with PagedAttention. 2023. SOSP】,SGLang【44, SGLang: Efficient execution of structured language model programs. 2024. NeurIPS】。
- RL算法:PPO【29, Proximal policy optimization algorithms. 2017. arXiv】,GRPO【30, DeepSeekMath: Pushing the limits of mathematical reasoning in open language models. 2024. arXiv】。
- 智能体框架:支持LangChain【4, LangChain. 2022. GitHub】, AgentScope【7, AgentScope: A flexible yet robust multi-agent platform. 2024. arXiv】, MetaGPT【11, MetaGPT: Meta programming for a multi-agent collaborative framework. 2024. ICLR】, AutoGen【38, AutoGen: Enabling next-gen LLM applications via multi-agent conversation. 2023. arXiv】, CrewAI【23, CrewAI: Framework for orchestrating role-playing, autonomous AI agents. 2023. GitHub】, OpenAI SDK等。
- 其他工具:OpenJudge【43, Judging LLM-as-a-judge with MT-Bench and chatbot arena. 2023. NeurIPS】用于构建奖励模型,PyTorch FSDP【42, PyTorch FSDP: Experiences on scaling fully sharded data parallel. 2023. VLDB】用于分布式训练,tmux用于实验监控。
A5 实验结果
5.1 共享参数多智能体训练:狼人杀游戏
- 实验内容:在一个9人狼人杀游戏中,训练使用共享参数Qwen2模型(7B或14B)的智能体,对抗由静态Qwen3-235B模型控制的强大对手。实验采用1服务器-1客户端的群体网络配置,并使用稀疏的回合级奖励(赢则+1,输则0)。
- 实验结果:
- 训练狼人阵营效果显著:7B模型胜率从23.0%提升至47.2%,14B模型从40.9%提升至64.7%(表1)。
- 训练村民阵营时,单独训练先知(seer)角色收益最大(38.5% -> 46.5%),而女巫和猎人提升有限。联合训练多个角色也能取得大部分收益。
- 定性分析显示,训练后的智能体在角色扮演一致性(如图6所示,被投票出局后不再暴露身份)、社交欺骗策略和隐式协调方面有显著改进。
表1: 不同可训练智能体配置下的狼人杀训练实验。缩写:ww=狼人,vl=村民,sr=先知,wt=女巫,ht=猎人,SR=成功率。
图6: AgentJet Beast-Logger渲染的狼人行为在微调前后的token级可视化。左:基础模型一旦被投票出局就公开承认身份。右:微调后的智能体则发出欺骗性的generate_response。
5.2 非共享参数多智能体训练
- 实验内容:通过为每个可训练模型或模型组分配专用的群体服务器节点,实现非共享参数的多智能体训练。
-
对抗性狼人杀RPG:
- 结果:如表2所示,与共享参数相比,为每个狼人使用独立的14B-LoRA模型,最终胜率略高(66.5% vs 64.7%)。
- 分析:这种提升源于行为多样性。独立参数使每个狼人发展出独特的“人设”,打破了共享参数下相似的言语和投票模式,使村民更难识别狼人团队。对于村民阵营,随机分配角色进行训练(体验不同角色的决策过程)比固定角色分配取得了更好的效果,这表明换位思考有助于提升协作能力。
-
分层多智能体学术翻译:
- 内容:设计了一个三智能体流水线来翻译学术摘要。Agent 1(7B模型)初翻,Agent 2(14B模型)校对专业术语,Agent 3(7B模型)根据校对结果润色。
- 结果:如表3所示,经过微调的7B模型在处理缩写、第一人称替换和专业术语翻译方面表现出显著改进,能够生成符合学术规范的高质量译文。
表2: 非共享参数多智能体训练实验。多个带有LoRA的14B模型被同时训练,每个模型控制不同的角色。缩写:ww=狼人,vl=村民,sr=先知,wt=女巫,ht=猎人,SR=成功率。
表3: 基础版与微调版Qwen2.5-7B-Instruct的翻译对比。微调后的模型正确处理了缩写扩展、第一人称代词替换和专有名词翻译。
5.3 多任务鸡尾酒式训练
- 实验内容:在一个8-GPU节点上,使用GRPO算法同时训练一个Qwen3-8B模型执行两个异构任务:AppWorld(需要容器化后端)和AIME(数学推理)。两个任务的客户端在隔离环境中运行,并将rollouts流式传输到同一个服务器进行统一的策略更新。
- 实验结果:如图7所示,与单独训练的专业模型相比,“鸡尾酒式”训练的模型在AIME任务上表现相当,但在AppWorld任务上略有差距。
- 分析:鸡尾酒式训练的价值在于能以较低的边际成本生成一个跨任务的“通才”模型,并显著减少总训练成本(无需为每个任务单独进行训练)。它提供了一种与策略蒸馏(OPD)互补的方法:当目标是从头开始、在有限计算资源下获得一个多技能模型时,鸡尾酒式训练是更优选择。
图7: AIME(左)和AppWorld(右)上每步的训练奖励,比较了鸡尾酒式联合训练(橙色,同一运行显示在两个图中)与两个独立的单任务专家:一个专门的AIME运行(绿色)和一个专门的AppWorld运行(蓝色)。细线和标记显示原始步骤奖励;粗线显示5步滚动平均值。两种方案都使用Qwen3-8B和GRPO在同一个8-GPU节点上;鸡尾酒式运行每步使用16(AppWorld)+16(AIME)的批次,而每个单独运行使用32的批次。所有曲线都裁剪到所有运行共同覆盖的163步范围内。
5.4 常规多轮训练
- 时间线合并效果:在AppWorld任务上,启用时间线合并后,训练质量和智能体行为保持不变,但平均每步的actor更新时间从2160秒降至346秒,实现了6.25倍的加速(图8)。
- 版本间性能稳定性:通过持续的基准测试,证明了AgentJet在快速迭代和代码重构过程中,核心训练性能保持稳定,各版本间的训练奖励曲线高度重叠(图9)。
- 框架无关的智能体循环:使用四种不同的客户端实现(OpenAI SDK、LangChain、AgentScope、原生HTTP)运行相同的数学推理任务。如图10所示,四者的训练和评估奖励曲线几乎完全重叠,验证了AgentJet的训练信号捕获机制是与上层智能体框架无关的。
图8: 时间线合并对多轮AppWorld群体RL任务的影响(前25个训练步骤;两个运行除合并开关外完全相同)。左:真实奖励;中:每步的LLM调用次数;右:actor更新的墙上时钟时间。奖励和调用次数曲线紧密跟踪,而actor更新时间平均减少了6.25倍,因此巨大的加速并未牺牲训练质量。
图9: 跨基准任务(行)和AgentJet git提交(列,按提交日期排序)的每步滚动平均奖励。这些基线由自动化研究智能体定期执行,反映了AgentJet框架在快速迭代期间的稳定性。
图10: 对四种智能体循环实现(OpenAI SDK, LangChain, AgentScope, Raw HTTP)进行框架无关的训练,在DAPO-Math-17k上使用相同的Qwen3-8B GRPO配方进行100步训练。左:每步训练奖励(critic/rewards/mean);细线和标记是原始值,粗线是5步滚动平均值。右:在AIME-2025、AIME-2026和DAPO-Math-Tiny-Val上采样的十个检查点的留出评估奖励;最后一步的跨臂差距为0.025,任何对齐检查点的最大跨臂差距都保持在0.04以下,证实了智能体循环框架的选择对AgentJet的训练是透明的。
6. 自动化研究
AgentJet的群体架构支持两种互补的智能体辅助研究能力:“氛围训练”(Vibe Training)和“阿尔法自动化研究”(A3R)模块。
6.1 氛围训练 (Vibe Training)
- 功能:允许研究者通过自然语言描述来快速创建新的RL任务。编码智能体可以自动生成群体客户端、模拟数据集、建立奖励函数,并启动训练。由于客户端与服务器解耦,智能体代码的修改和调试迭代周期从数分钟缩短到几秒。
- 案例研究:“谁是卧底”游戏训练器。
- 内容:研究员提供一段自然语言提示(附录A),描述游戏规则、模型和硬件配置。
- 结果:AI编码智能体成功构建了完整的训练流程。初始版本(图11,红色曲线)存在“奖励黑客”问题(智能体通过复述他人发言获得高分)。在通过简短补丁修复奖励函数后,智能体学会了真正有意义的策略(图11,蓝色曲线),奖励从负值开始逐步提升。
图11: “谁是卧底”多智能体游戏的示例氛围训练曲线。
6.2 自动化研究流水线 (A3R)
- 架构:A3R模块采用“领导者-工作者”模式。领导者智能体(首席科学家)负责设计实验、分派任务、分析结果;工作者智能体在GPU服务器上具体执行实验。两者通过标准化的“实验蓝图”进行通信,实现了跨多台服务器的并行、长周期实验管理(图12、图13)。
- 优势:支持并行实验、通过
tmux进行有效的实验监控、使用开源模型(如MiniMax-M2.7)降低成本。 - 案例研究:确定AIME任务中GRPO训练的最小稳定批次大小。
- 内容:研究员提供一个简短的研究目标(附录B)。A3R系统自主设计并执行了一个为期三天的多阶段实验,涵盖了不同
train_batch_size和max_response_length的组合。 - 结果:如表4的详细执行追踪所示,A3R自主完成了实验规划、并行调度、故障恢复(一个
bs=64的作业中断后自动重试)和结果综合。 - 结论:最终报告指出,在
mr=10000时,最小稳定批次大小为16;增加批次大小无益,而增加响应长度max_response_length比增加批次大小对性能提升更显著。
- 内容:研究员提供一个简短的研究目标(附录B)。A3R系统自主设计并执行了一个为期三天的多阶段实验,涵盖了不同
图12: AgentJet阿尔法自动化研究(A3R)流水线。
自适应多阶段探索(通常在几天内进行2-5个阶段)
图13: 多阶段研究循环。每个阶段包括蓝图生成、在GPU集群上并行执行实验和结果分析。每个阶段的发现为下一阶段的设计提供信息,从而实现对研究目标的自适应收敛。
表4: AIME最小稳定批次大小案例研究的时间顺序追踪。每一行都是由领导者智能体(规划、综合)或工作者智能体(执行)发出的一个自包含的产物。所有运行都使用Qwen3-8B + GRPO,其中ppo_epoch=1,mini-batch num=1,每个实验使用8-GPU FSDP,total_training_steps=60。
A6 结论
本文介绍了AgentJet,一个为智能体强化学习设计的、新颖的LLM后训练架构。其关键设计选择是将模型优化平面与智能体执行平面分离。这种分离为智能体RL提供了一个更清晰的接口:优化端可以专注于模型训练,而执行端可以专注于运行智能体、任务、奖励和评估。因此,AgentJet是框架无关的,并支持训练使用OpenAI兼容端点的黑盒智能体。
这种解耦的接口还提供了容错性、运行时隔离和热插拔调试。失败的客户端可以被重启、移除或替换,而不会终止服务器或中断训练进度,并且不同的任务可以在不同的机器、容器、虚拟环境或操作系统上运行。由于客户端是隔离和可替换的,研究人员可以在客户端编辑智能体代码、训练算法、奖励、数据集或评估计划,为智能体RL创造了一种更像REPL的训练范式。
基于这个接口,AgentJet支持更复杂的训练范式,包括共享参数和非共享参数的异构多模型训练,以及多任务鸡尾酒式训练。这些范式得到了灵活的回合批处理和样本池控制、强大的上下文跟踪以及高效的时间线合并的支持。与Tinker【33, Tinker: A low-level training api for distributed LLM fine-tuning. 2025. Thinking Machines Lab】类似,AgentJet也实现了去中心化训练;Alpha Auto Research进一步将群体和“氛围训练”的思想扩展到长期的RL研究活动中,支持多日实验、并行集群利用和自适应消融研究。总的来说,AgentJet为智能体RL贡献了基础设施层面的创新:可靠性、可组合性、迭代速度、异构训练和更广泛的实验自动化。
A7 附录
A. “谁是卧底” – 氛围训练提示
附录A框中复现了在6.1节讨论的“谁是卧底”氛围训练案例研究中使用的完整自然语言提示。实践者向编码助手提供这个单一提示;所有的数据集模拟、游戏引擎实现、智能体执行器和群体客户端脚本都由此生成。
Vibe Training Prompt: “Who is the Spy” Multi-Agent Game Trainer
# Your task:
Write an agent that learns the “Who is the Spy” task, trained via a combination of reinforcement
learning and supervised learning. Game rules are as follows:
– The game has N players in total, most of whom are civilians, and a few are spies.
At the start of the game, each civilian receives the same civilian word, and each spy receives a spy word that is similar but different from the civilian word (e.g., civilian word is “apple”, spy word is “pear”). In each round, all players take turns giving a verbal description of the word they were given. The description must truthfully reflect their own word, but must not state the word itself directly, nor reveal their identity too obviously.
– After all players finish describing, the game enters the voting phase, where all players vote for whom they consider the most suspicious spy. The player with the most votes is eliminated. The game continues for multiple rounds until one of the following end conditions is met: ∗ Civilians win: all spies have been eliminated. ∗ Spies win: the number of spies the number of civilians (spies gain a numerical advantage).
– The agent needs to master two core capabilities through extensive self-play training: ∗ Description strategy learning: learn to generate the optimal description based on its own word and the current situation – one that neither reveals its identity nor fails to win recognition from teammates. ∗ Reasoning and decision learning: learn to accurately identify spies and make optimal voting decisions based on dialogue history, other players’ description patterns, and behavioral features.
– Training objective: maximize the agent’s win rate across different roles (civilian/spy), continuously optimizing strategy via self-play and reward mechanisms.
• Use the base model Qwen/Qwen2.5-7B-Instruct.
• Train with 8 GPUs.
• Batch size 16.
• I currently have no dataset; you need to help me mock a small amount of game episode data for testing and initial training.
• Use the OpenAI SDK, flexibly using Tools.
• No Chinese characters are allowed in the code.
Your skill (read this SKILL file first to acquire the necessary knowledge): ./ajet/copilot/write-swarm-client/SKILL.md
# Additional requirements:
• optional 0. (agent_roll) team A civilians share a single 7B model; team B spies use qwen-max (DASHSCOPE_API_KEY is already in the environment variables). For each episode, randomly assign everyone’s ID and name (randomly generate a long list of random full names). Winners get reward 1, losers get reward 0. optional 1. (agent_roll_adv) adversarial training: team A civilians share one 7B model (swarm server 1), team B spies share another 7B model (swarm server 2). For each episode, randomly assign everyone’s ID and name (randomly generate a long list of random full names). Winners get reward 1, losers get reward 0.
# Additional requirements:
• agent_roll: use 4 GPUs.
• agent_roll_adv: swarm server 1 and swarm server 2 each use 4 GPUs (8 GPUs in total).
Additional requirements: debug using tmux + uv’s .venv until all bugs are cleared and training starts normally. You may use the three tmux sessions spy-swarm-server, spy-swarm-server-2, spy-swarm-client.
• Current debugging stage: – Debug agent_roll [execute debugging]. – Debug agent_roll_adv [skip debugging].
B. AIME最小稳定批次大小研究目标
附录B框中复现了提交给AgentJet阿尔法自动化研究(A3R)模块的逐字研究目标,用于第6节的案例研究(表4)和第6.2.2节的独立分析。A3R仅接收了目标句和约束列表;之后的所有内容(阶段分解、蓝图编写、并行分派、崩溃恢复和最终综合)都是自主执行的。
# Original research objective (delivered verbatim to the auto-research agent)
Goal. Find the minimum batch_size that still trains the AIME agent efficiently (batch_size from 1 to 64), and determine whether max_response_length_in_one_turn influences that value.
# Constraints.
• Base code project directory: agentjet_codebase.
• Reference tutorial: agentjet_codebase/tutorial/opencode_build_aime.
• Create new swarm training clients under agentjet_codebase/tutorial/opencode_build_aime/auto_ research/.
• Model: Qwen3-8B.
• Python interpreter: agentjet_codebase/.venv/bin/python.
• Max total_training_steps: 60.
• 8 GPUs per experiment.
• PPO_EPOCH= 1, MINI_BATCH_NUM=
💬 评论讨论
欢迎在这里分享您的想法和见解!