多代理系统构建工具

一个基于MCP和A2A协议的多代理系统构建工具,支持任务协调、代理发现和通信功能。

  • by Rashid0125
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Rashid0125/A2A-MCP-GoogleADK

使用说明

MCP + A2A 应用程序

这个项目是一个从零开始构建多智能体系统的综合性项目。它涵盖了使用模型上下文协议(MCP)和智能体到智能体(A2A)通信来创建一个健壮且可扩展的多智能体架构的基本原理。

项目概述

该项目展示了如何构建一个包含(某种特性或组件的)多智能体系统 host_agent 该系统通过发现并委托给其他代理来协调任务。其通信和发现机制是建立在MCP(可能是指某种中间件通信协议)和A2A(Agent-to-Agent,即代理间通信)协议之上的。

涵盖的核心概念

  • 多智能体系统设计: 学习如何设计和构建一个具有清晰关注点分离的多智能体系统。
  • 主机代理 一个负责任务编排、委派和协调的核心代理。
  • A2A兼容代理: 构建能够使用A2A协议相互通信和交互的代理。
  • MCP 服务器: 为代理和工具发现实现MCP服务器。
    • 可流式传输的HTTP服务器: 一个支持实时通信的可流式传输HTTP服务器。
    • Stdio 服务器: 一个用于简单、直接通信的标准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

安装

  1. 克隆仓库:

    git clone https://github.com/your-username/mcp-a2a-master.git
    cd mcp-a2a-master
    
  2. 创建并激活虚拟环境:

    • macOS/Linux:
      python3 -m venv .venv
      source .venv/bin/activate
      
    • Windows:
      python -m venv .venv
      .venv\Scripts\activate
      
  3. 安装依赖项:

    uv pip install -r requirements.txt
    

如何跑步

  1. 可流式传输的HTTP服务器:
    uv run python3 -m mcp.servers.streamable_http_server
    
  2. 网站构建器简易代理
    uv run python3 -m agents.website_builder_simple
    
  3. 主机代理:
    uv run python3 -m agents.host_agent
    
  4. CMD 应用:
    uv run python3 -m app.cmd.cmd
    

它是如何工作的

该 main.py 脚本初始化了多智能体系统。该 host_agent 启动并使用 mcp_discovery 并且 a2a_discovery 用于查找可用服务器和代理的实用工具。一旦发现 host_agent 可以将任务委托给其他代理,例如 website_builder_simple 代理,使用A2A通信协议。

这个(或“该”) mcp 目录包含服务器实现,以及 utilities 该目录提供了发现和连接所需的工具。

做出贡献

欢迎贡献!请随时提交拉取请求或打开一个问题。