AgentMesh 是一个开源的多智能体 (Multi-Agent) 平台,核心目标是解决多个智能体之间的通信和协同问题,真正实现 "1+1>2" 的效果。能够帮助用户快速创造自己的多智能体团队,或是让已有的多个单一智能体获得协同能力,最终解决更为复杂的任务。
Github地址: https://github.com/MinimalFuture/AgentMesh
Demo :Demo视频
背景
单一智能体架构的瓶颈
在介绍多智能体系统之前,首先需要论证的一个问题是,我们是否真的需要多个智能体?目前单智能体技术已经比较成熟,在各个AI平台都可以快速搭建出用于不同场景的Agent,一般来说这些Agent以大模型和提示词为基础,能够检索来自于知识库或数据库中的私有数据,并且能通过工具访问外部服务。
但是随着任务的复杂度提升,单智能体架构也会面临瓶颈:
- 上下文限制: 复杂任务下,多轮的思考和执行可能带来超长的上下文,超出模型的上下文限制
- 注意力机制: 将不同场景下的角色定义和规则都写到一个智能体的系统提示词中,会降低指令遵循效果,同样的,给一个智能体配置大量的工具也会导致工具决策的准确性下降
- 模型能力:不同模型擅长处理不同类型的任务,单个智能体难以实现模型动态的切换
- 异构Agent:某些场景下处理特定任务的智能体天然就运行在不同的平台(例如你在salesforce运行了一个Agent可以访问你的CRM系统,而在OpenAI搭建了一个Agent并维护你的企业知识库)
- 可扩展性:在单一智能体中,任务增加新的需求场景会导致已有的智能体设计越来越臃肿,并且变更后需要回归其他场景是否收到影响;而多智能体架构下只需增加新的智能体成员来负责这一需求。
多智能体架构演进
所以在面对复杂任务的场景下,单智能体到多智能体的演进其实是符合现实世界规律的,是一种经典的分而治之的思路。例如在现实工作 中,一个团队中会有不同的岗位,每个成员有不同的技能,负责不同的子任务;在软件工程领域的SOLID原则 中,这符合"单一职责原则",复杂的模块应该进行拆分;在微服务架构下,服务拆分后整个系统的可维护性、可扩展性都会得到提升,避免单点故障。
综上,理想的多智能体架构应该支持对每个智能体的模型、提示词、知识、工具 进行独立的配置,每个智能体有自己的记忆,也有整个团队的上下文记忆。复杂任务进入后,智能体之间会通过通信和协作处理各自的子任务,单个智能体内部则支持多轮思考和调用工具,最终整个智能体团队将整合并交付完整的输出结果。另外,这些智能体可能分布在不同平台,使用不同的技术栈开发,运行在不同的服务器上。
最后说说与**工作流 (Workflow)**的差异,工作流更多是对各种原子能力的固定编排,优势是执行链路更为准确,缺点是每次新增需求都需要进行配置工作,适合更为明确的任务,例如定时获取指定接口的数据整理后推送,而多智能体则更适合更为发散、创造性的场景,泛化能力更强。
AgentMesh的目标
目前已有的多智能体开源项目大多关注框架层,例如 MetaGPT
、Swarm
、CamelAI
、AgentVerse
等,对于新场景的实现需要通过代码开发来完成,主要用于开发者将多智能体能力集成到已有的系统中,有一定使用门槛。
AgentMesh 最终想实现的是一个完整的多智能体平台,不仅可以为开发者提供代码开发框架,还可以让用户通过零代码配置的方式快速自定义自己的智能体团队,通过图形界面进行交互、管理和追踪 ,并且能够接入到各个常用软件中真正实现多智能体的具象化。AgentMesh可以运行在本地,最大化利用个人计算机的浏览器、文件系统、代码解释器等工具资源;也可以运行在云端,使用虚拟化的设备资源和第三方工具服务。另外AgentMesh还会解决异构Agent的协同问题,让运行在不同平台的Agent能够相互协作,共同解决问题。
整体架构
架构设计
根据上文中的多智能体平台想解决的问题和应用场景,AgentMesh的理想架构如下:

基于分层架构实现,保证每一层都具备可扩展性:
- 模型层: 支持主流商用模型的接入,同时支持通过ollama和vllm接入本地模型
- 框架层: 多智能体核心能力部分,包括Agent所需的工具、记忆、知识、模型,以及负责多Agent交互的Team模块。其中Tools模块将支持通过MCP协议接入MCP Servers,同时支持集成自定义开发的插件;Team模块将支持远程异构Agent的加入和写作。整个核心框架层可通过
agentmesh-sdk
对外提供。 - 应用层: 多智能体团队将支持命令行运行、Web界面运行、通过SDK或API集成到自研应用中,以及提供常用通讯和办公软件的集成。
运行流程
任务运行时的决策处理流程如下,第一层是多Agent的规划策略,第二层是Agent内部工具的ReACT多轮决策:

已实现功能
- 基础的多Agent协同策略: 支持零代码的Agent定义、复杂任务拆解、多Agent间决策和Agent内多轮工具决策
- 多种模型选择: 支持 OpenAI、Claude、DeepSeek、Qwen 等主流大模型,可为不同agent设置不同模型
- 内置工具: 支持浏览器、搜索引擎、文件系统、终端等多种内置工具
- 多种运行方式: 支持命令行、Docker、SDK 等多种运行和集成方式
后续规划
- WebUI: 用户友好的多Agent管理和追踪界面
- 支持MCP协议: 获得无限扩展的工具能力
- 异构Agent通信: 支持打通不同Agent平台,与远程Agent共同协作
- 更多模型: 支持更多模型厂商及本地开源模型
快速开始
项目提供三种使用方式快速构建并运行你的 Agent Team:
1. 终端运行
在终端中命令行中快速运行多智能体团队:
1.1 安装
环境准备: 支持 Linux、MacOS、Windows 系统,需要安装 python。
python 版本推荐使用 3.11+ (如需使用浏览器工具),至少需要3.7以上
以上。下载地址:python官网。
下载项目源码并进入项目目录:
bash
git clone https://github.com/MinimalFuture/AgentMesh
cd AgentMesh
核心依赖安装:
bash
pip install -r requirements.txt
如需使用浏览器工具,还需要额外安装依赖 (可选,需要 python3.11+):
bash
pip install browser-use
playwright install
1.2 配置
配置文件为根目录下的 config.yaml
,包含模型配置和Agent配置,可以从模板文件复制后修改:
bash
cp config-template.yaml config.yaml
填写需要用到的模型 api_key
,支持 openai
、claude
、deepseek
、qwen
等模型。
配置模板中预置了两个示例:
general_team
:通用智能体,适用于搜索和研究任务。software_team
:开发团队,包含产品、工程和测试三个角色,可通过协作开发web网站,交付完整的项目代码和文档你可以基于配置模板修改或添加自己的自定义团队,为每个智能体设置不同的模型、工具、系统提示词。
1.3 运行
你可以直接通过命令运行任务,通过 -t 参数指定配置文件中的团队,通过 -q 参数指定需要提出的问题:
bash
python main.py -t general_team -q "帮我分析多智能体技术发展趋势"
python main.py -t software_team -q "帮我为AgentMesh项目开发一个预约体验的表单页面"
同时也可以进入命令行交互模式,通过输入问题进行多轮对话:
bash
python main.py -l # 查看可用agent team
python main.py -t general_team # 指定一个team后开始多轮对话
2. Docker运行
下载 docker compose 配置文件:
bash
curl -O https://raw.githubusercontent.com/MinimalFuture/AgentMesh/main/docker-compose.yml
下载配置模板,参考 1.2 中的配置说明,填写config.yaml
配置文件中的模型API Key:
bash
curl -o config.yaml https://raw.githubusercontent.com/MinimalFuture/AgentMesh/main/config-template.yaml
运行docker容器:
bash
docker-compose run --rm agentmesh bash
容器启动后将进入命令行,与 1.3 中的使用方式相同,指定team后进入交互模式后即可开始对话:
bash
python main.py -l # 查看可用agent team
python main.py -t general_team # 指定一个team后开始多轮对话
3. SDK集成
Agentmesh
的核心模块通过SDK对外提供,开发者可基于该SDK构建智能体及多智能体团队,适用于在已有应用中快速获得多智能体协作能力。
安装SDK依赖:
bash
pip install agentmesh-sdk
以下是一个简单的使用示例,使用前请替换 YOUR_API_KEY
为你的实际API密钥:
python
from agentmesh import AgentTeam, Agent, LLMModel
from agentmesh.tools import *
# model
model = LLMModel(model="gpt-4.1", api_key="YOUR_API_KEY")
# team build and add agents
team = AgentTeam(name="software_team", description="A software development team", model=model)
team.add(Agent(name="PM", description="Responsible for product requirements and documentation",
system_prompt="You are an experienced product manager who creates clear and comprehensive PRDs"))
team.add(Agent(name="Developer", description="Implements code based on PRDs", model=model,
system_prompt="You are a proficient developer who writes clean, efficient, and maintainable code. Follow the PRD requirements precisely.",
tools=[Calculator(), GoogleSearch()]))
# run user task
result = team.run(task="Write a Snake client game")