MassGen 多智能体协作系统
让多个模型在终端并行协作、迭代评审并投票产出答案。
这个 Agent 能做什么,适合哪些场景?
MassGen 是一个以 Python CLI 为入口的多智能体编排系统,可让多个模型同时处理同一任务。编排器通过共享摘要、迭代优化、重启和投票协调代理,并输出经集体验证的最终答案。默认界面是 Textual 终端 UI,可显示时间线、代理状态和投票;也提供 Web UI、Rich 显示、自动化模式以及 OpenAI 兼容 HTTP 服务。它支持 YAML 配置、Python API 和 LiteLLM 集成,并能连接 OpenAI、Anthropic、Gemini、Grok、Claude Code、Antigravity CLI、本地 vLLM、SGLang 与 LM Studio 等后端。会话可生成代理输出、协调事件、投票结果、执行元数据和调试日志,文件工作流则在项目的 .massgen/ 目录中组织状态。
用户通过 massgen 命令、YAML 配置或 massgen.run() 提交任务。系统为 agent 或 agents 中定义的后端发起模型调用,让代理并行完成任务、交换工作摘要、评审彼此答案,并在满足收敛条件后投票选择获胜答案。它可调用后端原生工具,或按 mcp_servers 配置启动 stdio MCP 服务、连接 streamable-http MCP 服务,并支持 allowed_tools 与 exclude_tools。对于文件任务,代理可在 cwd 工作区和 context_paths 中读取或写入文件;协调结果、vote.json、coordination_events.json、execution_metadata.yaml 及最终答案会写入日志目录。massgen serve 还提供 GET /health 与 POST /v1/chat/completions,可返回普通或 SSE 流式响应,并支持 OpenAI 风格工具调用。
- 研究团队需要让不同模型分别检索、推理和互相审阅复杂问题,再获得投票选出的综合结论。
- 软件团队希望以 Claude Code 或其他已配置后端,在受控工作区内分析现有项目、生成代码或补充测试。
- 平台工程师需要把多智能体工作流接入现有 OpenAI 兼容客户端,使用 massgen serve 的 /v1/chat/completions 接口。
- 自动化开发者需要从脚本或 LiteLLM 调用并行模型组合,并读取状态文件和结构化日志处理结果。
- 需要访问天气、搜索或内部服务的团队,可通过 YAML 将多个 MCP 服务器分配给代理。
这个 Agent 有哪些优点和局限?
- 以“所有代理处理完整问题、相互评审、迭代并投票”的执行模型协调多个模型,而非只做角色串联。
- 同时提供终端 TUI、自动化 CLI、Python API、LiteLLM 注册和 OpenAI 兼容 HTTP 服务,适合交互与程序化接入。
- 支持多家云端模型、Claude Code、Antigravity CLI 以及 vLLM、SGLang、LM Studio 等本地推理路径。
- MCP 支持 stdio 与 streamable-http 传输,并可按名称白名单或排除工具。
- 日志中保留协调事件、投票、代理输出和执行元数据,便于复盘与调试。
- 运行云端后端需要自行配置对应 API 密钥,实际模型成本、速率限制和能力取决于所选供应商。
- 项目明确标注仍处于早期开发阶段,未来可能有破坏性架构变更。
- 文件系统代理可在获准目录中读、写、修改和删除文件;采用写权限前需要隔离目录、备份和谨慎配置 context_paths。
- 部分能力依赖额外运行时或服务,例如 Docker 代码执行、Node.js 启动某些 MCP 服务器,以及本地模型服务。
- README 中说明权限引擎为 opt-in,且守卫提示词只是最佳努力的对齐措施;OS 沙箱才是主要执行层防护。
如何安装或部署这个 Agent?
需要 Python 3.11+,并为所选云模型准备相应 API 密钥。安装后可运行:
pip install massgen
uv run massgen --setup
uv run massgen --quickstart
将 OPENAI_API_KEY、ANTHROPIC_API_KEY、GOOGLE_API_KEY 或 XAI_API_KEY 等所需密钥写入当前工作目录的 .env。--setup 会协助配置密钥,并可选配置 Docker 代码执行镜像和技能;Docker 不是基础安装的必需项。
如何使用这个 Agent?
最快方式是在完成 quickstart 后直接启动交互模式:
uv run massgen
也可传入单个问题:
uv run massgen "解释机器学习"
使用多代理 YAML 配置:
massgen --config @examples/basic/multi/three_agents_default "分析可再生能源的利弊"
要作为 HTTP 服务运行:
massgen serve --host 0.0.0.0 --port 4000 --config path/to/config.yaml --default-model gpt-5
配置中以 agents 定义多个 id、backend.type 和 backend.model;需要外部工具时,在 backend 中配置 mcp_servers。
这个 Agent 与同类方案有什么区别?
项目说明其思路受 AG2 的“多智能体对话”及相关迭代优化思路启发,并提供 CrewAI、LangGraph 和 AutoGen/AG2 的比较页面。与单模型调用相比,MassGen 的核心差异是并行完整解题、跨代理反馈与投票收敛;具体质量和成本仍取决于所配置的模型与工具。