MCP+ADK+A2A代码实验室
该存储库再现了三个谷歌代码实验室,涵盖了模型上下文协议(MCP)、代理开发工具包(ADK)、代理到代理(A2A)协议和代理引擎部署。这项工作被组织成 二 顶级子目录,以满足分配要求。
存储库布局(两个顶级文件夹)
adk-multi-agent-image-scoring
- 代码实验室1: 使用ADK创建一个多代理系统,部署到代理引擎,并启用A2A。
- 包含代理定义、环境配置说明、验证屏幕截图和简短说明。
a2a
- 代码实验室2: 货币代理(MCP服务器→ ADK代理商→ A2A端点)。
- 代码实验室3: A2A采购礼宾(Cloud Run上的两个卖家代理,Agent Engine上的ADK客户端)。
- 包含的子文件夹
currency-agent和purchasing-concierge,每个都有环境说明、验证截图和简短的文章。
“视频”注释/链接出现在以下每个codelab部分和本文件末尾。\ “代码”注释:所有代码和文件都附在驱动器中并链接到此处。
______________________________________________________________________
先决条件
- 一个支持计费并可访问Vertex AI和Cloud Run的Google Cloud项目。
- 能够使用Cloud Shell或本地Python环境。
- 基本熟悉:ADK(代理编写和部署)、A2A(代理互操作端点和发现)、MCP(代理工具协议)和代理引擎(托管和生命周期)。
______________________________________________________________________
全局设置--检查表
- 确认云项目和地区(建议:
us-central1). - 启用跨实验室使用的核心服务:Vertex AI、Cloud Run、Cloud Build和相关IAM/Artifact服务(由每个实验室提示)。
- 准备您将在多个地方使用的环境配置值:
- 谷歌云 项目ID - 谷歌云 区域 - 可选:独特的云存储 桶 名称(如果代码实验室使用暂存/资产) - 模型 代理使用的配置值(例如,模型名称)
- 为部署的服务确定一致的命名方案,以保持屏幕截图和视频清晰。
- 创建本地
screenshots每个codelab目录内的文件夹,用于存储验证证据。
______________________________________________________________________
Codelab 1--ADK多代理→ 代理引擎→ A2A(图像评分)
目标
使用ADK构建一个小型多代理系统,在本地运行,部署到代理引擎,并验证它是否公开或参与A2A。
交付成果 adk-multi-agent-image-scoring
- 一个简洁的README(此文件作为主文件;包括一个指向此处的简短的每个文件夹注释)。
- 一个简单的英文环境部分,列出您设置的变量(项目、地区、存储桶(如果适用)、模型名称、阈值)。
- 屏幕截图证明:
- 本地开发UI或ADK运行的等效证明 - 代理引擎部署页面,显示处于健康状态的代理 - A2A发现或准备就绪(例如,代理卡响应截图)
要记录的配置值
- 项目ID,地区
- 使用的任何存储桶名称
- 代理使用的模型名称或参数
- 实验室引用的任何阈值或常数
验证步骤 *(未显示任何命令)*
- 确认本地代理体验出现并在ADK-dev UI中响应。
- 确认代理已在代理引擎中注册和部署,并且看起来正常。
- 确认可访问A2A发现页面或代理卡,并正确描述代理,包括名称、描述和支持的操作(如果适用)。
视频
- 油管
- 代码文件:
______________________________________________________________________
Codelab 2--货币代理(MCP+ADK+A2A)
目标
实现一个简单的MCP服务器,该服务器公开一个货币工具,构建一个调用MCP工具的ADK代理,并通过A2A公开该代理。通过基本的A2A交互进行验证。
内部交付成果 a2a/currency-agent
- 引用此主文件的每个文件夹的简短README。
- 一个简单的英文环境部分,列出您设置的值(项目、地区、基本URL或端口值,如果相关)。
- 屏幕截图证明:
- MCP服务器功能测试(例如,成功的货币查找结果) - ADK代理生成的答案清楚地包含了MCP工具输出 - 成功的A2A交互(例如,“将100美元兑换成CAD”并返回结果)
要记录的配置值
- 项目ID,地区
- 用于本地测试的任何基本URL/端口
- 任何环境都可以通过Google GenAI客户端库切换到使用Vertex AI
验证步骤 *(未显示任何命令)*
- 显示一个单独工作的MCP工具调用。
- 显示ADK代理调用MCP工具作为其推理链的一部分。
- 显示A2A客户端交互击中代理并返回正确的转换示例。
- 可选:如果部署到Cloud Run,记录公共URL并捕获代理卡页面(如果适用)。
视频
- 油管
- 代码文件:
______________________________________________________________________
Codelab 3--A2A采购礼宾(云运行+代理引擎)
目标
部署两个卖家代理作为A2A服务器(例如汉堡和披萨)。配置一个ADK客户端(“采购礼宾”),该客户端可通过A2A与两者通信,也可选择使用简单的web UI。验证两个卖家之间的端到端订购或菜单检索。
内部交付成果 a2a/purchasing-concierge
- 引用此主文件的每个文件夹的简短README。
- 环境部分列出了您设置的值(项目、地区、任何暂存桶和两个卖家代理URL)。
- 屏幕截图证明:
- 每个卖家代理都部署到Cloud Run,其代理卡(发现)可以通过众所周知的路径访问 - 采购礼宾客户端已成功连接到两个卖家A2A端点 - 显示菜单查询和跨越两个卖家的两项订单的简短运行
要记录的配置值
- 项目ID,地区
- 可选的暂存桶名称(如果客户端需要临时存储)
- 两个卖家代理URL,并确认每个代理卡都加载了正确的元数据
- 引用这些URL的任何客户端设置
验证步骤 *(未显示任何命令)*
- 确认两位卖家都可以联系到,并归还有效的代理卡。
- 确认客户端已配置这两个URL。
- 展示快乐之路:
- 向两位卖家索要菜单 - 下订单,其中包括每个卖家的一件商品 - 捕获由此产生的确认或摘要
视频
- 油管
- 代码文件:
______________________________________________________________________
*文档结束。*
