MassGen
扫码查看

通过多智能体协作解决复杂问题的系统

MassGen

综合介绍

MassGen是一个开源的多智能体系统。 它通过一种特殊的工作方式来处理复杂任务:将同一个任务同时交给多个不同的人工智能(AI)去完成。 这些AI智能体,可以由当前最前沿的大模型驱动,例如OpenAI的GPT系列、谷歌的Gemini或者xAI的Grok。 在执行任务时,它们不仅独立思考,还能实时观察并学习其他智能体的工作进展和思路。

这种设计就像一个“学习小组”,每个成员都在独立解题,同时也在互相交流、借鉴,最终共同找到最佳的解决方案。 该系统会持续监控各个智能体的工作状态,当它们的结论趋于一致时,系统便认为已经达成了共识。 这种协同工作机制,使得最终产出的结果能够融合多个AI的智慧,比任何单个AI独立完成的结果更加全面和可靠。

功能列表

  • 跨模型协同: 支持集成并发挥来自不同AI大模型(如Gemini、GPT-4o、Grok)的智能体优势,让它们共同协作。
  • 并行处理: 多个智能体可以同时对同一个问题进行处理和分析,大幅提升解决问题的效率。
  • 智能共享: 智能体之间能够实时共享各自的工作摘要和关键信息,互相学习和借鉴。
  • 共识构建: 通过协作和不断修正,智能体群体能够自然地就解决方案达成共识,而非强制统一。
  • 实时可视化: 用户可以通过终端界面,实时查看每个智能体的工作过程和思考流程。

使用帮助

MassGen提供了一个命令行工具,让用户可以方便地与这个多智能体系统进行交互。以下是详细的安装和使用流程。

1. 安装流程

安装MassGen需要先从GitHub上获取代码,然后使用uv工具创建独立的运行环境并安装所需的软件包。 uv是一个速度很快的Python包安装和管理工具。

首先,打开你的终端,执行以下命令来克隆代码仓库:

git clone https://github.com/Leezekun/MassGen.git

然后,进入刚刚克隆下来的项目目录:

cd MassGen

接下来,使用uv创建并激活虚拟环境。虚拟环境可以确保MassGen的依赖包不会和你电脑上其他Python项目的依赖包产生冲突。

# 使用uv创建虚拟环境,环境目录为 .venv
uv venv
# 激活虚拟环境 (在macOS或Linux系统上)
source .venv/bin/activate

最后,在激活的虚拟环境下,使用uv安装MassGen及其所有依赖项:

uv pip install -e .

执行完以上步骤后,MassGen就已经成功安装在你的电脑上了。

2. API密钥配置

为了让MassGen的智能体能够工作,你需要提供所使用大模型的API密钥。 系统支持的模型包括Google Gemini、OpenAI和xAI Grok。

首先,进入后端的配置目录,并复制一份示例配置文件:

cp massgen/backends/.env.example massgen/backends/.env

这个命令会创建一个名为.env的新文件,你可以用任何文本编辑器打开并修改它。

文件内容如下,你需要将your-key-here部分替换成你自己的API密钥:

OPENAI_API_KEY=sk-your-openai-key-here
XAI_API_KEY=xai-your-xai-key-here
GEMINI_API_KEY=your-gemini-key-here

你只需要为你希望使用的那个或那些模型提供密钥即可,不必全部填写。

3. 如何运行MassGen

配置好密钥后,你就可以通过cli.py脚本来运行MassGen了。它支持多种运行模式。

简单用法

你可以直接在命令行中指定要使用的模型和你的问题。

  • 多智能体模式:指定多个模型,它们会协同工作。
    python cli.py "2025年哪个人工智能赢得了国际数学奥林匹克竞赛?" --models gemini-1.5-flash gpt-4o
    
  • 单智能体模式:只指定一个模型。
    python cli.py "计算238、756和1512的最大公约数" --models gemini-1.5-flash
    

使用配置文件

对于更复杂的设置,你可以使用YAML配置文件来启动。项目提供了示例配置文件。

python cli.py --config examples/fast_config.yaml "查找本周的AI大新闻"

你也可以在使用配置文件的同时,临时覆盖其中的某些参数,例如:

python cli.py --config examples/fast_config.yaml "谁会赢得2026年世界杯" --max-duration 120

交互式聊天模式

如果你想和智能体进行连续对话,可以启动交互模式。

# 使用指定的多个模型启动交互模式
python cli.py --models gpt-4o gemini-1.5-flash
# 或者使用配置文件启动
python cli.py --config examples/fast_config.yaml

在交互模式下,多个智能体会协同与你进行多轮对话。你可以随时输入quitexit来退出程序。

4. 查看结果

MassGen提供了两种方式来查看结果。

  • 实时终端显示:在程序运行时,终端会分成多个区域,实时展示系统状态和每个智能体当前的工作内容与思考过程。
  • 详细日志文件:每一次运行,系统都会在logs/目录下生成一个带时间戳的文件夹,里面包含了所有详细的记录。日志目录结构如下:
logs/
└── 20250123_142530/       # 以运行时间命名的会话目录
├── answers/           # 每个智能体提交的最终答案
│   ├── agent_1.txt
│   └── agent_2.txt
├── votes/             # 每个智能体对其他答案的投票和评价
│   ├── agent_1.txt
│   └── agent_2.txt
├── display/           # 智能体在终端实时显示的完整内容记录
│   ├── agent_1.txt
│   ├── agent_2.txt
│   └── system.txt
├── console.log        # 控制台的输出日志
├── events.jsonl       # 系统核心事件的JSON格式记录
└── result.json        # 最终的会话摘要和结果

通过查阅这些文件,你可以完整地回顾整个任务的解决过程。

应用场景

  1. 复杂问题研究当需要对一个复杂或开放性问题进行深入研究时,例如“用简单的术语解释相对论”,可以利用MassGen让多个AI从不同角度提供解释和资料,并通过它们的协作与辩论,最终形成一个全面且易于理解的答案。
  2. 创意内容生成在需要进行创意写作或头脑风暴时,比如“写一个关于机器人发现音乐的短篇故事”,MassGen可以汇集多个AI的创意,它们互相启发,产生比单个AI更多样化、更有趣的故事情节和想法。
  3. 信息检索与分析面对需要检索并分析最新信息的问题,例如“2025年10月在斯德哥尔摩有什么好玩的”,MassGen可以驱动多个拥有实时搜索功能的AI同时上网查找,并综合信息,提供一份更可靠、更完整的旅行建议。

QA

  1. 我必须同时拥有并配置所有支持的大模型API密钥吗?不是。你只需要为你希望在当次任务中使用的模型配置API密钥即可。例如,如果你只想使用gpt-4ogemini-1.5-flash,那么在.env文件中只需要填写OPENAI_API_KEYGEMINI_API_KEY
  2. MassGen是如何判断多个智能体已经“达成共识”的?MassGen有一个“共识分数”(consensus)阈值,默认为0.5。 在每个智能体提交自己的答案后,它们会进入一个“投票”阶段,互相评估其他成员的答案。系统会根据投票结果计算当前的共识程度。如果分数达到设定的阈值,系统就认为达成了共识,并输出最终结果。如果未达到,智能体会根据收到的反馈进入下一轮“辩论”和“修正”,直到共识达成或达到最大辩论次数。
  3. 这个工具支持本地运行的开源模型吗?根据项目的路线图,目前系统主要支持通过API调用商业模型。 团队计划在未来增加对本地开源模型(例如通过vllm或sglang进行推理)的支持,并让扩展变得更加容易。
微信微博Email复制链接