多代理系统开发工具包

MCP A2A ADK是一个基于Mission Control Protocol (MCP)和Agent-to-Agent (A2A)通信协议的多代理系统开发工具包,用于构建可扩展和鲁棒的多代理架构。

  • by arshadjamal6002
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 arshadjamal6002/mcp_a2a_adk

使用说明

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

安装

  1. 克隆存储库:

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

    • macOS/Linux:
      python3 -m venv .venv
      source .venv/bin/activate
      
    • 窗户:
      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 目录为发现和连接提供了必要的工具。

贡献

欢迎投稿!请随时提交拉取请求或打开问题。