RecursiveMAS
以潜空间递归连接多角色模型的多智能体训练与评测框架。
这个 Agent 能做什么,适合哪些场景?
RecursiveMAS 是一个将多智能体协作建模为统一递归计算的研究实现,核心机制是让异构角色模型通过轻量级 RecursiveLink 交换并迭代优化潜状态。仓库包含 inference/ 推理与下游评测管线,以及 train/ 中的内循环和外循环训练脚本。它提供 sequential、mixture、distillation 与 deliberation 四类协作风格,并发布了相应的 Hugging Face 参考检查点和训练数据集。主要执行入口是 inference/run.py、train/train_inner.py 与 train/train_outer.py;运行结果面向数学、科学、医疗、代码和搜索问答基准的评测。该项目适合需要复现或试验递归式多模型协作的研究与工程团队,而不是一个已文档化的聊天产品或通用托管服务。
先为每个角色运行 train/train_inner.py,冻结基础模型并训练角色专属的 inner RecursiveLink 与小型 ln_res_adapter;再用 train/train_outer.py 按协作风格连接多个角色模型,训练角色间的 outer RecursiveLink。推理时,inference/run.py 根据 --style、--dataset 和可选的 --ckpt_override 加载发布参考系统或本地检查点并执行评测。已列出的下游数据集包括 math500、gpqa、medqa、mbppplus、aime25、aime26、livecodebench、bamboogle 与 hotpotqa;输出为对应的准确率、测试通过率、pass@k、EM 或 LLM-as-Judge 评测结果。Deliberation 风格在 bamboogle 与 hotpotqa 上可通过 Tool-Caller 调用真实搜索 API,开放式答案可配置 OpenAI 兼容 API 作为裁判。
- 研究人员希望按论文所述的内外循环流程,复现 sequential 方式的数学协作训练与 Math500 评测。
- 机器学习团队想用已发布的 sequential_light 或 sequential_scaled 参考检查点,快速比较多角色递归协作在数学、科学或代码任务上的表现。
- 开发者为 mixture 风格分别训练数学、代码、科学和摘要角色,再训练对应的外层连接模块。
- 需要测试 expert–learner 协作的团队,可使用 Distillation-Math 或 Distillation-Code 数据进行蒸馏式内外循环训练。
- 构建开放域检索问答实验的研究者,可在 bamboogle 或 hotpotqa 的 deliberation 运行中配置 Tavily 等搜索 API 密钥。
这个 Agent 有哪些优点和局限?
- 将角色间协作显式实现为可训练的 RecursiveLink,并区分角色内的 inner 与角色间的 outer 训练阶段。
- 覆盖 sequential、mixture、distillation、deliberation 四种已发布协作模式,而非只提供单一编排示例。
- 提供从训练数据、训练脚本、参考检查点到下游评测入口的完整实验路径。
- 评测覆盖数学、研究生科学、医疗问答、代码生成和开放域搜索问答等明确列出的基准。
- 文档示例依赖 CUDA,且参考模型组合包含 Qwen、Llama、Gemma、DeepSeek 与 BioMistral 等特定模型和 Hugging Face 资产。
- 要复现论文的完整结果,项目明确要求使用与协作风格匹配的任务数据和训练配置;发布检查点不是所有任务设置的单一替代品。
- bamboogle 与 hotpotqa 的 deliberation 运行需要真实搜索 API 与密钥,开放式答案评分还需要另行配置 OpenAI 兼容的裁判端点。
- 仓库未说明面向 ChatGPT、Codex、Claude 或 MCP 的原生集成;OpenAI 兼容 API 仅被文档化为评分裁判接口。
如何安装或部署这个 Agent?
创建并启用 Python 3.10 环境,然后在仓库根目录安装依赖:
conda create -n recursivemas python=3.10 -y
conda activate recursivemas
pip install -r requirements.txt
搜索数据集的 deliberation 运行还需将搜索 API 密钥写入纯文本文件,并在运行时传入 --tavily_keys_file。开放式问题的 LLM 裁判需设置 API_KEY、API_BASE_URL 和 API_MODEL。
如何使用这个 Agent?
可先运行发布的参考系统:
python inference/run.py \
--style sequential_scaled \
--dataset math500 \
--device cuda
若使用本地训练结果,可加入多个 --ckpt_override,例如 planner=train/ckpts/seq_light/planner_math 与 outer=train/ckpts/seq_light/outer_math。训练示例先以 train/train_inner.py 为各角色训练内层模块,再以 train/train_outer.py 用相同协作风格和数据集训练外层模块。Python 中可通过 from system_loader import load_mas_system 导入,并调用 load_mas_system(style="sequential_light", device="cuda", trust_remote_code=True)。
这个 Agent 与同类方案有什么区别?
仓库说明其项目建立在 vLLM、ARPO 和 TextGrad 等开源项目之上,但未提供与这些项目或其他多智能体框架的功能对比。