多代理系统开发工具

ADK + MCP + A2A Codelabs 是一个多代理系统开发工具集,用于构建、部署和测试基于ADK、MCP和A2A协议的代理系统,适用于开发者和研究人员。

  • by Mohib1402
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Mohib1402/CMPE297_A2A_MCP

使用说明

ADK+MCP+A2A代码实验室——作业提交

练习 主控程序 和 A2A 通过复制三个官方谷歌代码实验室。此仓库包含所有工件(日志、屏幕截图、配置)和一个视频演练链接,该链接演示了所有三个端到端的构建。


📦 回购布局

adk-mcp-a2a-assignment/
├─ README.md
├─ part-a-adk-mcp-a2a/
│  ├─ codelab-1-adk-multiagent-a2a/
│  │  ├─ README.md
│  │  ├─ src/
│  │  ├─ artifacts/         # screenshots, logs, agent cards
│  │  └─ env.sample
│  └─ codelab-2-currency-agent-mcp/
│     ├─ README.md
│     ├─ src/
│     ├─ artifacts/
│     └─ env.sample
└─ part-b-a2a-action-engine/
   └─ codelab-3-purchasing-concierge/
      ├─ README.md
      ├─ src/
      ├─ artifacts/
      └─ env.sample
  • 一 链接(如下)涵盖 所有这三个 Codelabs。
  • 每个codelab文件夹包含: README.md, src/, artifacts/和a env.sample (没有秘密)。
  • 两个顶级目录反映了作业的“两个子目录”要求。

🎬 演示视频

  • 演示(单条链接): 链接到视频演练

    视频显示:(A)ADK多代理应用程序本地+部署到 代理引擎(B)a 主控程序 服务器供电 套件 代理,暴露为 A2A 服务器并与A2A客户端验证;C 采购礼宾 (A2A客户端)呼叫上的两个远程卖家A2A服务器 云运行.


🧠 你建造了什么(一瞥)


✅ 先决条件

  • 谷歌云 项目计费; gcloud CLI。
  • 启用实验室使用的服务(云运行、云构建、工件注册表、顶点AI/代理引擎)。
  • Python 3.10+ 以及virtualenv。
  • 跨实验室使用的软件包: google-adk, a2a-sdk以及MCP框架(例如。, fastmcp).

🔐 环境变量

每个codelab文件夹都包含一个 env.sample。复制到 .env 并填写:

  • 常用密钥: GOOGLE_CLOUD_PROJECT, GOOGLE_CLOUD_LOCATION (例如。, us-central1).
  • 实验1附加: GCS_BUCKET_NAME,如果实验室指定了型号名称。
  • 实验2附加:MCP服务器URL(如果远程),A2A服务器绑定/主机配置。
  • 实验3附加: 二 Cloud Run卖家网址(汉堡和披萨)和礼宾设置。 按照每个codelab页面上的确切名称进行操作。

🚀 快速入门(root)

# clone your submission repo
git clone <your repo> adk-mcp-a2a-assignment
cd adk-mcp-a2a-assignment

# (optional) use venv
python -m venv .venv && source .venv/bin/activate
pip install -U pip

# install common libs used in the labs
pip install google-adk a2a-sdk fastmcp

您将按照codelab的指示在每个codelab文件夹中安装其他deps。


A) Codelab 1--ADK多代理+代理引擎+A2A(A部分)

指南: 使用ADK创建多代理系统,在agent Engine中部署,并开始使用A2A (代码实验室1)

你会怎么做

  • 在本地运行多代理应用程序(例如。, adk web)在循环中生成图像并对其进行评分。
  • 将代理部署到 顶点AI代理引擎 并验证会话运行。

提交工件: 查看Codelab 1的工件


B) Codelab 2——ADK+MCP+A2A货币代理(A部分)

指南: 开始使用ADK、MCP和A2A(货币代理) (Codelab 2)

你会怎么做

  • 实施 MCP服务器 (通常通过 FastMCP)暴露a get_exchange_rate 工具;可选择将其部署到 云运行.
  • 构建一个 套件 使用MCP工具的代理; 将其作为A2A服务器公开 并用 A2A Python客户端.

提交工件: 查看Codelab 2的工件


C) Codelab 3-A2A动作引擎:采购礼宾(B部分)

指南: 代理对代理(A2A)协议入门:采购礼宾 (Codelab 3)

你会怎么做

  • 部署 两台A2A服务器 到 云运行.
  • 部署 采购礼宾 (ADK)至 代理引擎 作为一个 A2A客户端 它与两个卖家进行对话;运行完整的购买流程。

提交工件: 查看Codelab 3的工件


🧩 ADK、A2A和MCP如何组合在一起

  • 套件 是用于在本地构建和部署代理的代理框架,还是用于 代理引擎.
  • A2A 是允许代理通信的开放协议(客户端↔ 服务器)跨框架和运行时。
  • 主控程序 规范应用程序/代理如何向LLM公开工具和数据;您的ADK代理可以调用MCP工具,也可以托管自己的MCP服务器。

🧪 我们将如何评分(映射到此仓库)

  1. 构建和运行(40%)
    • 实验室1本地+代理引擎运行;实验室2 MCP→ADK→A2A已验证;实验3礼宾↔ 卖家E2E。(请参阅每个文件夹的 artifacts/.)
  2. 互操作性(25%)
    • 清晰的文档显示了MCP工具如何为ADK提供动力,以及A2A如何组成代理。
  3. 回购质量(20%)
    • 两部分结构, env.sample,可复制的命令、屏幕截图、日志。
  4. 视频(15%)
    • 一个简洁的视频显示所有三个代码实验室都成功完成。

🛠️ 故障排除和故障排除

  • API已禁用 → 确保启用了云运行、云构建、工件注册表、顶点AI/代理引擎 在同一地区 你部署。
  • 区域不匹配 → 保持云运行服务、代理引擎和您的 .env 位置一致(例如。, us-central1).
  • 卖家URL错误 礼宾部→ 不要混淆汉堡和披萨的终点;实验室宣布了这一点。

📚 参考文献

  • 代码实验室1: 使用ADK创建多代理系统,在agent Engine中部署,并开始使用A2A
  • Codelab 2: 开始使用adk、mcp和a2a(货币代理)
  • Codelab 3: 开始使用a2a动作引擎(采购礼宾)