一个集中式服务器,用于跟踪和管理已连接的代理程序,提供网页界面以监视其状态,同时通过中心点启用代理通信。
401 查看 · 2026-07-07 更新
简介
一个集中式服务器,用于跟踪和管理已连接的代理程序,提供网页界面以监视其状态,同时通过中心点启用代理通信。
简介
一个集中式服务器,用于跟踪和管理已连接的代理程序,提供网页界面以监视其状态,同时通过中心点启用代理通信。
A2A ⚡ MCP 代理
该项目展示了两种不同的代理通信方法:
- 主控程序 (MCP) - 一种基于中心服务器的方法,其中代理通过中央服务器进行通信
- 代理到代理 (A2A) - 一种去中心化的点对点方法,其中代理直接相互通信
安装
-
创建并激活虚拟环境: bash python -m venv venv source venv/bin/activate # 在 Windows 上: venvScriptsactivate
-
安装依赖项: bash pip install -r requirements.txt
使用
MCP 服务器和代理
-
启动 MCP 服务器: bash python cli.py run-mcp-server
-
在单独的终端中,启动一个或多个 MCP 代理: bash python cli.py run-mcp-agent --agent-id agent1 python cli.py run-mcp-agent --agent-id agent2
MCP 服务器将跟踪所有连接的代理及其状态。您可以通过在浏览器中打开 http://localhost:5000 来查看状态。
A2A(代理到代理)网络
-
启动第一个 A2A 代理: bash python cli.py run-a2a-agent --agent-id a2a1 --port 5001
-
启动其他 A2A 代理,并将其连接到现有的代理: bash python cli.py run-a2a-agent --agent-id a2a2 --port 5002 --peer localhost:5001 python cli.py run-a2a-agent --agent-id a2a3 --port 5003 --peer localhost:5001 --peer localhost:5002
A2A 代理将通过其初始对等体自动发现其他代理。您可以在任何代理的终端中键入消息以广播给所有连接的代理。
架构
MCP(主控程序)
- 跟踪所有代理的集中式服务器
- 代理向服务器注册并通过心跳保持连接
- 服务器提供 Web 界面来监控代理状态
- 简单可靠但存在单点故障
A2A(代理到代理)
- 去中心化的点对点网络
- 代理直接相互连接
- 消息在网络中泛洪传播
- 更具弹性但需要更复杂的协调
- 无单点故障
项目结构
a2a_mcp/ ├── agents/ # 代理实现 │ ├── mcp_agent.py # 基于 MCP 的代理 │ └── a2a_agent.py # 点对点代理 ├── mcp/ # MCP 服务器实现 │ └── server.py # 基于 Flask 的 MCP 服务器 ├── cli.py # 命令行接口 └── requirements.txt # Python 依赖项
贡献
欢迎提交问题和拉取请求以改进演示。
来源
- 来源:github
- 链接:https://github.com/khulnasoft-com/a2a-mcp