MCP A2A ADK
该项目是从头开始构建多智能体系统的综合大师。它涵盖了使用任务控制协议(MCP)和代理到代理(A2A)通信创建健壮和可扩展的多代理架构的基本原理。
项目概述
该项目演示了如何使用 host_agent 通过发现和委托给其他代理来协调任务。通信和发现机制建立在MCP和A2A协议之上。
涵盖的核心概念
- 多智能体系统设计: 学习如何设计和构建一个关注点明确分离的多智能体系统。
- 主机代理: 负责任务编排、委托和协调的中央代理。
- A2A兼容代理: 构建可以使用A2A协议相互通信和交互的代理。
- MCP服务器: 实施MCP服务器以发现代理和工具。
- 流式HTTP服务器: 用于实时通信的可流式HTTP服务器。 - 标准服务器: 用于简单、直接通信的标准I/O服务器。
- MCP和A2A连接器: 用于在代理和服务器之间建立通信的连接器。
- 发现机制:
- MCP服务器和工具发现: 动态发现可用的MCP服务器及其工具。 - A2A代理发现: 发现并注册A2A兼容代理。
- 任务委派: 将任务从主机代理委托给专门的代理。
项目结构
/Users/theailanguage/mcp_a2a_master/
├───.gitignore
├───main.py
├───pyproject.toml
├───README.md
├───agents/
│ ├───host_agent/
│ └───website_builder_simple/
├───app/
│ └───cmd/
├───mcp/
│ └───servers/
└───utilities/
├───a2a/
├───common/
└───mcp/文件夹说明
- 代理商/:包含系统中的不同代理。
- 主机_代理/:主要编排代理。 - 网站_建筑商_简单/:一个可以构建网站的简单代理。
入门指南
先决条件
- Python 3.11+
uv
安装
- 克隆存储库:
git clone https://github.com/arshadjamal6002/mcp_a2a_adk.git
cd mcp-a2a-master- 创建并激活虚拟环境:
- macOS/Linux:
python3 -m venv .venv
source .venv/bin/activate- 窗户:
python -m venv .venv
.venv\Scripts\activate- 安装依赖项:
uv pip install -r requirements.txt如何跑步
- 流式HTTP服务器:
uv run python3 -m mcp.servers.streamable_http_server- 网站构建器简单代理:
uv run python3 -m agents.website_builder_simple- 主机代理:
uv run python3 -m agents.host_agent- CMD应用程序:
uv run python3 -m app.cmd.cmd工作原理
这 main.py 脚本初始化多代理系统。这 host_agent 启动并使用 mcp_discovery 和 a2a_discovery 查找可用服务器和代理的实用程序。一旦发现 host_agent 可以将任务委托给其他代理,例如 website_builder_simple 代理使用A2A通信协议。
这 mcp 目录包含服务器实现,以及 utilities 目录为发现和连接提供了必要的工具。
贡献
欢迎投稿!请随时提交拉取请求或打开问题。
