Install ADK and set up your environment

检查我的进度

/ 25

Explore the ADK agent

检查我的进度

/ 25

Deploy the Agent as an A2A Server

检查我的进度

/ 25

Enable another ADK agent to call the agent remotely

检查我的进度

/ 25

此实验可能会提供 AI 工具来支持您学习。
注意:为了确保一致且高性能的体验,此实验可能会针对某些模型请求提供缓存的响应。

GENAI120

Google Cloud 自学实验

概览

Agent2Agent (A2A) protocol 解决了 AI 领域的一项关键挑战:使由不同公司基于多元化框架构建、运行在独立服务器上的生成式 AI 智能体能够高效通信和协作 - 以智能体的身份,而非单纯作为工具。A2A 旨在为智能体提供一种通用语言,助力构建更互联、更强大、更具创新性的 AI 生态系统。

A2A 围绕多项核心概念构建,兼具强大功能与灵活特性:

  • 标准化通信:通过 HTTP(S) 进行 JSON-RPC 2.0 通信。
  • 智能体发现:智能体卡片详细说明了智能体的功能和连接信息,方便智能体之间相互发现并了解彼此的能力。
  • 丰富数据交换:支持文本、文件及结构化 JSON 数据传输。
  • 灵活交互模式:支持同步请求/回答、流式传输 (SSE) 和异步推送通知。
  • 适配企业场景:设计之初即充分考量安全、身份验证和可观测性三大核心需求。

目标

在本实验中,您将学习如何执行以下任务:

  • 设置环境并安装智能体开发套件 (ADK)。
  • 将 ADK 智能体部署为 A2A 服务器。
  • 准备一张 JSON 智能体卡片,描述 A2A 智能体的功能特性。
  • 使另一个 ADK 智能体能够读取已部署 A2A 智能体的卡片,并将其用作子智能体。

设置和要求

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:

    • “打开 Google Cloud 控制台”按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示“登录”页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在“实验详细信息”窗格中找到“用户名”。

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在“实验详细信息”窗格中找到“密码”。

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

任务 1. 安装 ADK 并设置环境

在本实验环境中,我们已为您启用了 Vertex AI APICloud Run API。如果您在自己的项目中操作,则可前往 Vertex AI 页面,然后按照提示启用相关 API。

准备 Cloud Shell 编辑器标签页

  1. 在 Google Cloud 控制台窗口处于选中状态时,先后按下 G 键和 S 键,打开 Cloud Shell。或者,您也可以点击 Cloud 控制台右上角的激活 Cloud Shell 按钮 (激活 Cloud Shell)。
  2. 点击继续
  3. 如果系统提示您为 Cloud Shell 授权,请点击授权
  4. 在 Cloud Shell 终端面板的右上角,点击在新窗口中打开按钮 (“在新窗口中打开”按钮)。
  5. 点击窗格顶部的打开编辑器铅笔图标 (“修改”铅笔图标) 即可查看文件。
  6. 在左侧导航菜单顶部,点击探索器图标 (“资源管理器”图标) 即可打开文件资源管理器。
  7. 点击打开文件夹按钮。
  8. 在出现的“打开文件夹”对话框中,点击确定,选择学员账号的主文件夹。
  9. 关闭屏幕右侧显示的任何其他教程或 Gemini 面板,为代码编辑器留出更多窗口空间。
  10. 在本实验的其余部分,您可以在此窗口中将 Cloud Shell 编辑器和 Cloud Shell 终端用作 IDE。

下载并安装 ADK 和本实验的代码示例

  • 在 Cloud Shell 终端中运行以下代码,下载本实验的代码并安装智能体开发套件 (ADK) 和其他所需组件:

    gcloud storage cp -r gs://{{{project_0.project_id| YOUR_GCP_PROJECT_ID}}}-bucket/* . export PATH=$PATH:"/home/${USER}/.local/bin" python3 -m pip install --upgrade google-adk[a2a]==1.31.0 google-genai

    点击检查我的进度,验证是否完成了以下目标: 安装 ADK 并设置环境。

任务 2. 探索您计划远程共享的 ADK 智能体

在本实验中,假设您任职于一家体育场馆维护公司 Cymbal Stadiums。在最近的一个项目中,您开发了一款图片生成智能体,能够按照企业品牌规范制作插图。现在,您组织中的多个不同团队也想使用这款智能体。

如果将代码复制给多个智能体作为子智能体使用,后续的维护与升级工作将极为繁琐。

您可以采用另一种方案,只需将该智能体部署一次并封装为 A2A 服务器,其他团队的智能体即可通过远程查询的方式集成使用该智能体。

  1. 在 Cloud Shell 编辑器的文件资源管理器窗格中,前往 adk_and_a2a/illustration_agent 目录。此目录包含您计划远程共享的 ADK 智能体。点击相应目录将其展开。

  2. 打开此目录中的 agent.py 文件,然后滚动到标记为 # Tools 的部分。

  3. 请注意 generate_image() 函数,它将被此智能体用作工具。它会接收提示并执行两步流程。第一步,它会使用 Google Gen AI SDK 调用 generate_content(),后者会直接在回答中返回原始图片数据。第二步,该函数会使用 Cloud Storage 库将这些图片字节上传到 Google Cloud Storage 存储桶。最后,该工具会返回新创建的图片文件的网址。

  4. 请注意,提供给 root_agentinstruction 为智能体提供了具体指令,要求其使用符合公司品牌规范的图片生成提示。例如,它可以指定:

    • 特定的插图风格:(Corporate Memphis)
    • 配色方案(日落渐变背景下的紫色和绿色)
    • 体育场馆/体育及相关维护场景图像示例(因这是一家体育场馆维护公司)
  5. 如需体验该智能体的功能,您首先需要编写一个 .env 文件,设置 ADK 智能体所需的环境变量。请在 Cloud Shell 终端中运行以下命令,从而在相应目录下创建此文件:

    cd ~/adk_and_a2a cat << EOF > illustration_agent/.env GOOGLE_GENAI_USE_VERTEXAI=TRUE GOOGLE_CLOUD_PROJECT={{{project_0.project_id| YOUR_GCP_PROJECT_ID}}} GOOGLE_CLOUD_LOCATION=global MODEL={{{project_0.startup_script.gemini_flash_model_id | gemini_flash_model_id}}} IMAGE_MODEL={{{project_0.startup_script.gemini_flash_image_model_id | gemini_flash_image_model_id}}} EOF
  6. 运行以下命令,将 .env 复制到本实验中使用的另一个智能体目录中:

    cp illustration_agent/.env slide_content_agent/.env
  7. 如需让智能体为其图片创建签名网址,您必须先模拟一个专用服务账号。运行以下命令,以使用模拟账号配置应用默认凭证:

    gcloud auth application-default login \ --impersonate-service-account=illustration-agent-sa@{{{project_0.project_id|YOUR_GCP_PROJECT_ID}}}.iam.gserviceaccount.com
  8. 在 Cloud Shell 终端中,系统会要求您确认是否要使用个人账号进行身份验证。输入 Y(表示“是”),然后按 Enter 键。

  9. 点击提供的链接,然后选择您的 Qwiklabs 学员账号进行身份验证。

  10. 通过身份验证后,系统会向您显示授权代码。使用复制按钮复制该代码,然后返回 Cloud Shell 终端。

  11. 将复制的代码粘贴到 Cloud Shell 终端中,然后按 Enter 键。

  12. 现在,在 Cloud Shell 终端中运行以下命令,以启动智能体开发套件开发者界面:

    adk web --allow_origins "regex:https://.*\.cloudshell\.dev"

    输出

    INFO: Started server process [2434] INFO: Waiting for application startup. +-------------------------------------------------------+ | ADK Web Server started | | | | For local testing, access at http://localhost:8000. | +-------------------------------------------------------+ INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
  13. 如需在新标签页中查看相应网页界面,请点击终端输出底部的 http://127.0.0.1:8000 链接。

  14. 系统即会在一个新浏览器标签页中打开 ADK 开发者界面。

  15. 在 ADK 开发者界面标签页中,从左侧的选择应用下拉菜单中选择 illustration_agent

  16. 向智能体输入适合在招聘用演示文稿中使用的文本作为提示,例如:

    By supporting each other, we get big things done!
  17. 一两分钟后,该智能体会返回生成的提示以及预览版图片。

    输出示例

    回答和生成的图片。

  18. 请注意,您向智能体提供的提示并未提及体育、体育场馆或维护工作,但智能体结合您的文本与品牌规范,生成了用于图片生成模型的统一提示。

    探索完基础智能体后,关闭浏览器标签页。

  19. 返回 Cloud Shell 终端,然后按 Ctrl+C 即可停止服务器。

    点击检查我的进度,验证是否完成了以下目标: 探索 ADK 智能体。

任务 3. 将智能体部署为 A2A 服务器

在此任务中,您需要执行相关步骤,将该智能体部署为远程 A2A 智能体。A2A 智能体通过提供智能体卡片来标识自身身份及功能特性。

  1. 运行以下命令,创建 agent.json 文件。

    cat << EOF > illustration_agent/agent.json { "name": "illustration_agent", "description": "An agent designed to generate branded illustrations for Cymbal Stadiums.", "defaultInputModes": ["text/plain"], "defaultOutputModes": ["application/json"], "skills": [ { "id": "illustrate_text", "name": "Illustrate Text", "description": "Generate an illustration to illustrate the meaning of provided text.", "tags": ["illustration", "image generation"] } ], "url": "https://illustration-agent-{{{project_0.startup_script.project_number|Project Number}}}.{{{project_0.default_region| GCP_LOCATION}}}.run.app/a2a/illustration_agent", "capabilities": {}, "version": "1.0.0" } EOF
  2. 查看 agent.json 文件中的 JSON。请注意,JSON 为智能体提供了 name(名称)和 description(描述)信息,并明确了一些 skills(技能)。它还指明了智能体本身可通过哪个 url 调用。

    在您按照本实验的指示部署智能体后,智能体的 url 将构建为 Cloud Run 服务网址。

    这里的参数 capabilities,虽然在名称上与 skills 有些相似,但它专指流式传输等功能。

  3. 运行以下命令,在 illustration_agent 目录中创建 requirements.txt 文件。

    cat << EOF > illustration_agent/requirements.txt google-adk[a2a]==1.31.0 EOF
  4. 在以下命令中,您将使用 adk deploy cloud_run 命令和 --a2a 标志,将智能体作为 A2A 服务器部署到 Cloud Run:

    adk deploy cloud_run \ --project {{{project_0.project_id| YOUR_GCP_PROJECT_ID}}} \ --region {{{project_0.default_region| GCP_LOCATION}}} \ --service_name illustration-agent \ --a2a \ illustration_agent \ -- \ --service-account=illustration-agent-sa@{{{project_0.project_id| YOUR_GCP_PROJECT_ID}}}.iam.gserviceaccount.com \ --set-env-vars="GOOGLE_CLOUD_LOCATION=global"
  5. 当系统提示您允许未经身份验证的回答时,请输入 Y,然后按 Enter 键。

    在智能体部署期间,请查看传递给命令的以下参数:

    • --project--region:分别用于定义将在哪个项目和哪个区域部署 Cloud Run 服务。
    • --service_name:用于定义 Cloud Run 服务的名称。
    • --a2a 标志:表示应将其托管为 A2A 智能体。这意味着,您的智能体将使用一个桥接 ADK 与 A2A 智能体的类(即 A2aAgentExecutor)进行封装。这个类负责将 A2A Protocol 的任务和消息语言转换为 ADK Runner 能够理解的事件语言。
    • 分隔符 --:用于将标志直接传递给底层的 gcloud run deploy 命令。-- 之后列出的任何标志都会被 ADK 工具忽略,并直接由 Google Cloud CLI 处理。在这里,它用于在初始部署时指定专用服务账号,并设置 GOOGLE_CLOUD_LOCATION 环境变量。
    注意:部署过程大约需要 5-10 分钟。如果您遇到 PERMISSION_DENIED 错误,请尝试再次运行上述命令。

    预期输出:

    您会看到与构建 Dockerfile、部署容器和部署服务相关的步骤,接下来是:

    Service [illustration-agent] revision [illustration-agent-00001-xpp] has been deployed and is serving 100 percent of traffic. Service URL: https://illustration-agent-{{{project_0.startup_script.project_number|Project Number}}}.{{{project_0.default_region| GCP_LOCATION}}}.run.app

    点击检查我的进度,验证是否完成了以下目标: 将智能体部署为 A2A 服务器。

任务 4. 允许其他 ADK 智能体远程调用此智能体

在此任务中,您将为第二个 ADK 智能体提供识别插图智能体功能并远程调用该智能体的能力。第二个智能体将负责为幻灯片创建内容。它必须能够撰写标题和几句正文,然后转交给插图智能体来生成与文本相匹配的插图。

  1. 在 Cloud Shell 终端中,运行以下命令,将智能体卡片 JSON 文件复制到 adk_and_a2a 目录,并更改其名称以表明它代表 illustration_agent

    cp illustration_agent/agent.json illustration-agent-card.json
  2. 在 Cloud Shell 编辑器的文件资源管理器窗格中,前往 adk_and_a2a/slide_content_agent 目录,然后打开 agent.py 文件。

    查看此智能体的 instruction,了解它如何根据用户对幻灯片的建议来撰写标题和正文,然后请求您的 A2A 智能体为幻灯片配图。

  3. 将以下代码粘贴至 # Agents 标题下(大约在第 16 行),以使用 ADK 中的 RemoteA2aAgent 类添加远程智能体:

    illustration_agent = RemoteA2aAgent( name="illustration_agent", description="Agent that generates illustrations.", agent_card=( "illustration-agent-card.json" ), )
  4. 通过在同一文件的 # Add the sub_agents parameter below 下方添加以下参数,将 illustration_agent 添加为 root_agent 的子智能体:

    sub_agents=[illustration_agent]
  5. 保存文件。

  6. 通过 Cloud Shell 终端运行以下命令来启动界面:

    cd ~/adk_and_a2a adk web --allow_origins "regex:https://.*\.cloudshell\.dev"
  7. 再次点击终端输出中的 http://127.0.0.1:8000 链接,以打开 ADK 开发者界面。

  8. 在 ADK 开发者界面浏览器标签页中,从左侧的选择应用下拉菜单中选择 slide_content_agent

  9. 向智能体输入如下幻灯片构思:

    Create content for a slide about our excellent on-the-job training.

    您应该会看到以下输出内容:

    • slide_content_agent 本身撰写的标题和正文。
    • transfer_to_agent 的调用,表示转交给 illustration_agent
    • 来自 illustration_agent 的回答,其中包含新图片。

    预期输出:

    智能体生成文本,然后转交给 illustration_agent 来生成图片。

    点击检查我的进度,验证是否完成了以下目标: 启用另一个 ADK 智能体以远程调用该智能体。

恭喜!

在本实验中,您展示了 A2A Protocol 在跨智能体协作层面的强大功能!您将本地 ADK 智能体作为离散微服务部署于 Cloud Run 上,并通过标准化的智能体卡片详细阐述其功能。然后,您通过独立的次级智能体安全地转交了任务。您已经掌握了这些基础技能,可以开始在分布式团队之间搭建可伸缩的多智能体生态系统了。

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

上次更新手册的时间:2026 年 4 月 20 日

上次测试实验的时间:2026 年 4 月 20 日

版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

使用无痕模式或无痕浏览器窗口是运行此实验的最佳方式。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。

完成此快速步骤即可开始实验。