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/和aenv.sample(没有秘密)。 - 两个顶级目录反映了作业的“两个子目录”要求。
______________________________________________________________________
🎬 演示视频
- 演示(单条链接): 链接到视频演练
视频显示:(A)ADK多代理应用程序本地+部署到 代理引擎(B)a 主控程序 服务器供电 套件 代理,暴露为 A2A 服务器并与A2A客户端验证;C 采购礼宾 (A2A客户端)呼叫上的两个远程卖家A2A服务器 云运行.
______________________________________________________________________
🧠 你建造了什么(一瞥)
创建一个 多代理 系统与 套件,在本地运行,然后部署到 顶点AI代理引擎 并尝试 A2A 基础。
建立一个 货币代理人:实施 主控程序 服务器,从 套件 agent,然后将该agent公开为 A2A 服务器和测试 A2A Python客户端.
部署两个 A2A服务器 到 云运行,然后运行 采购礼宾 (ADK)作为 A2A客户端 在Agent Engine上与双方卖家进行对话。
______________________________________________________________________
✅ 先决条件
- 谷歌云 项目计费; 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 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服务器。
______________________________________________________________________
🧪 我们将如何评分(映射到此仓库)
- 构建和运行(40%)
- 实验室1本地+代理引擎运行;实验室2 MCP→ADK→A2A已验证;实验3礼宾↔ 卖家E2E。(请参阅每个文件夹的 artifacts/.)
- 互操作性(25%)
- 清晰的文档显示了MCP工具如何为ADK提供动力,以及A2A如何组成代理。
- 回购质量(20%)
- 两部分结构, env.sample,可复制的命令、屏幕截图、日志。
- 视频(15%)
- 一个简洁的视频显示所有三个代码实验室都成功完成。
______________________________________________________________________
🛠️ 故障排除和故障排除
- API已禁用 → 确保启用了云运行、云构建、工件注册表、顶点AI/代理引擎 在同一地区 你部署。
- 区域不匹配 → 保持云运行服务、代理引擎和您的
.env位置一致(例如。,us-central1). - 卖家URL错误 礼宾部→ 不要混淆汉堡和披萨的终点;实验室宣布了这一点。
______________________________________________________________________
📚 参考文献
- [代码实验室1](): 使用ADK创建多代理系统,在agent Engine中部署,并开始使用A2A
- [Codelab 2](): 开始使用adk、mcp和a2a(货币代理)
- [Codelab 3](): 开始使用a2a动作引擎(采购礼宾)
