多代理系统协议

MCP和A2A协议用于实现多代理系统之间的通信和外部工具集成,适用于复杂任务协作和自动化流程。

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

使用说明

MCP和A2A协议——多智能体系统作业

作业概览

这个作业探讨了使用(某种方法/技术)的高级AI代理架构 MCP(模型上下文协议) 和 **A2A(代理对代理协议)**通过三个循序渐进的代码实验室,我们实现了多智能体系统,其中AI智能体之间相互通信,并与外部工具集成以解决复杂任务。

MCP和A2A是什么?

MCP(模型上下文协议)

一种标准化协议,允许人工智能代理连接到外部资源,如数据库、API、文件系统和工具。可以将其视为一种通用适配器,使代理能够访问任何数据源或服务。

示例用例:

  • 代理访问数据库
  • 代理调用外部API
  • 代理读写文件
  • 使用专用工具的代理

A2A(代理到代理协议)

一种通信协议,使多个人工智能代理能够相互交互、共享信息、分配任务并协作以实现共同目标。它就像是为代理们提供了一种共同的语言来协同工作。

示例用例:

  • 主要代理委托给专业代理
  • 代理共享上下文和信息
  • 跨代理的多步骤工作流
  • 协同解决问题

Codelab 1:使用ADK与A2A的多智能体系统

焦点: 代理间的通信与部署

构建一个多智能体系统,其中专门的智能体通过A2A协议协同工作,然后将其部署到谷歌的智能体引擎中。

关键学习点:

  • 多智能体架构设计
  • A2A协议实现
  • 代理委托模式
  • 在Agent Engine上进行生产部署

代码实验室2:使用MCP和A2A的货币代理

焦点: 与代理协作的外部工具集成

创建一个货币转换代理,该代理使用MCP访问汇率API,并通过A2A与其他代理进行协调。

关键学习点:

  • 外部数据的MCP协议
  • 将MCP与A2A相结合
  • 现实世界的API集成
  • 货币转换用例

Codelab 3:使用Action Engine的采购服务助手

焦点: 复杂的多智能体工作流程

构建一个由行动引擎协调的、包含多个专业代理(搜索、比较、推荐)的高级购物助手。

关键学习点:

  • 工作流管理的动作引擎
  • 复杂的代理协调
  • 多步骤智能体协作
  • 生产级架构

环境设置

# Set up Google Cloud
gcloud config set project YOUR_PROJECT_ID

# Enable required APIs
gcloud services enable \
    aiplatform.googleapis.com \
    run.googleapis.com \
    cloudbuild.googleapis.com

# Create workspace
mkdir mcp-a2a-assignment
cd mcp-a2a-assignment

安装

# Install ADK
pip install google-adk

# Install MCP dependencies
pip install mcp-core mcp-server

# Verify installation
adk --version

执行项目

每个代码实验室(codelab)都在其README文件中提供了具体的运行说明,但通常来说:

# Navigate to codelab directory
cd codelab-X-name/

# Activate environment
source .venv/bin/activate

# Run locally
adk run agent-name

# Or use web UI
adk web agent-name

# Deploy to Agent Engine
adk deploy agent-name

与以往任务的关键差异

方面 上次任务 本次任务
焦点 单一智能体与工具 多智能体协作
协议(或规程) 基本工具调用 MCP + A2A 协议
建筑学 简单的智能体-工具 复杂的多智能体系统
部署 仅限本地 代理引擎生产
交流 代理 → 工具 代理 ↔ 代理