准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Run the agent using the ADK's Web UI
/ 40
Run an agent programmatically
/ 40
Preview a multi-agent example
/ 20
Run the agent using the ADK's Web UI
/ 40
Run an agent programmatically
/ 40
Preview a multi-agent example
/ 20
构建复杂的智能体应用,往往需要协调多个专用模型,还要管理工具集成以及调试执行跟踪记录,而所有这些工作需要耗费大量人力,难以实现规模化。
智能体开发套件 (ADK) 提供模块化框架,用于构建、测试和部署多智能体系统,从而解决这些难题。借助 ADK,您可以分层组建各类专用智能体,为它们配备预构建或自定义工具,并使用可预测流水线与大语言模型 (LLM) 驱动的动态路由来编排工作流。
在本实验中,您将使用 ADK 构建一个研究助理,利用
在本实验中,您将学习如何执行以下任务:
对于构建智能体应用的开发者,ADK 具有以下几项关键优势:
虽然其他 SDK 也支持查询模型,但 ADK 提供更高层级的框架,能够为您处理多个模型之间的复杂协调工作。
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。
为完成此实验,您需要:
点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示“登录”页面。
提示:将这些标签页安排在不同的窗口中,并排显示。
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
您也可以在“实验详细信息”窗格中找到“用户名”。
点击下一步。
复制下面的密码,然后将其粘贴到欢迎对话框中。
您也可以在“实验详细信息”窗格中找到“密码”。
点击下一步。
继续在后续页面中点击以完成相应操作:
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
在此任务中,您将配置 Cloud Shell 编辑器、初始化项目并安装智能体开发套件 (ADK),为构建和测试智能体应准备好环境。
在本实验环境中,我们已为您启用了 Vertex AI API 和 Telemetry API。在您自己的项目中,建议您也启用这些 API,以便查询模型并将遥测数据发送到 Cloud Logging。
点击 Google Cloud 控制台标题栏中的激活 Cloud Shell ()。
点击继续。
如果系统提示您为 Cloud Shell 授权,请点击授权。
在 Cloud Shell 终端操作栏中,点击在新窗口中打开 。
在 Cloud Shell 编辑器操作栏中,点击打开编辑器 () 以查看文件。
点击左侧窗格中的资源管理器 (),打开文件资源管理器。
点击打开文件夹。
在出现的打开文件夹对话框中,点击确定,选择 Google Skills 学员账号的主文件夹。
关闭屏幕右侧显示的任何其他教程或 Gemini 面板,在窗口中为代码编辑器腾出更多空间。
在本实验的其余部分,您可以将此窗口用作集成了 Cloud Shell 编辑器和 Cloud Shell 终端的 IDE。
将以下命令粘贴到 Cloud Shell 终端中,从 Cloud Storage 存储桶复制包含本实验所需代码的项目目录:
在 Cloud Shell 终端中运行以下命令,更新 PATH 环境变量以包含用户的本地环境,并安装 ADK(包括用于日志记录和遥测的 OpenTelemetry [OTel] 插件)以及其他实验所需组件/依赖项:
深入了解 ADK 的核心概念,探索智能体、工具和编排模式等 ADK 的组成要素,从而掌握设计高效灵活的多智能体系统应遵循的原则:
Session) 的上下文,包括其历史记录 (Events) 和智能体在该对话中的工作内存 (State)。接下来,探索 ADK 项目的标准布局,了解这些概念在实际项目中是如何组织的:
在 Cloud Shell 编辑器的文件资源管理器窗格中,点击 adk_project 打开目录。
请注意,adk_project 中包含四个智能体目录,分别是:adk_utils、app_agent、llm_auditor 及 my_google_search_agent。每个目录代表一个单独的智能体。在项目目录下将智能体分别放置在各自相应的目录中,不仅能让项目结构更清晰,还能让 ADK 了解当前系统中存在哪些智能体。
点击 my_google_search_agent,浏览智能体目录。
adk_project/my_google_search_agent 目录下。
点击 init.py 查看其内容,您会发现该目录下还包含一个 agent.py 文件。
请注意,init.py 文件仅包含一行从 agent.py 文件中导入的代码。ADK 用它将此目录标识为智能体软件包:
点击 agent.py,查看这一配备了 Google 搜索工具的简单智能体的代码。
google.adk 导入的内容包括:Agent 类和 tools 模块中的 google_search 工具。若要使用导入的 google_search 工具,需要将其传递给智能体。将以下代码行粘贴到 agent.py 文件中的大约第 34 行,即 Agent 对象创建完毕时所指示的位置:
保存 agent.py 文件。
借助工具,智能体可以执行生成文本以外的操作。在本例中,通过使用 google_search 工具,智能体可以自行判断什么时候需要更多信息,而不是只依赖它已有的训练数据。然后,它可以撰写搜索查询,使用 Google 搜索来搜索网络内容,并根据搜索结果向用户提供回答。
当模型根据检索到的额外信息生成回答时,这称为“接地”,而整个过程称为“检索增强生成”,简称“RAG”。
ADK 包含一个旨在本地运行的开发者界面,可帮助您开发和测试智能体。它有助于您直观地了解每个智能体在做什么,以及多个智能体之间的互动情况。在此任务中,您将探索该界面。
注意:当您运行智能体时,ADK 需要知道是谁在请求模型 API 调用。您可以通过以下两种方式之一提供此信息:
在本实验中,您将采用第二种方法,即通过您的 Vertex AI 项目完成身份验证。
在 Cloud Shell 终端中,运行以下命令来编写 .env 文件,从而设置环境变量,指示智能体使用您的项目和全局端点:
这些变量的作用如下:
GOOGLE_GENAI_USE_VERTEXAI=TRUE 表示您将使用 Vertex AI 完成身份验证,而不是使用 Gemini API 密钥。GOOGLE_CLOUD_PROJECT 和 GOOGLE_CLOUD_LOCATION 提供与模型调用相关联的项目和位置。MODEL 不是必需项,但存储在此处可作为另一个环境变量加载。这为在不同部署环境中尝试不同模型提供了便利。OTEL_SERVICE_NAME、OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED 和 OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT 用于配置 OpenTelemetry (OTel),以便采集来自智能体的 ADK 专属遥测数据。ADK 开发者界面和 CLI 对话界面会自动从 .env 文件加载配置。如果该文件不存在,它们将使用名称匹配的系统环境变量。
在 Cloud Shell 终端中运行以下命令,确保您位于智能体子目录所在的 adk_project 目录中:
使用以下命令并附加实用标志,启动 ADK 开发者界面。此命令将执行以下操作:
输出
结果显示了 ADK 开发者界面的网址,表明开发者界面正在运行中。
如需在新标签页中查看网页界面,请点击终端输出中的 http://127.0.0.1:8000 链接,它会通过代理将您链接到一个在 Cloud Shell 实例上本地运行的应用。完成后,您会看到开发者界面在新标签页中运行。
在左侧的选择智能体菜单选项中,选择 my_google_search_agent。
如需提示智能体使用 Google 搜索工具,请输入以下问题:
请注意,智能体会使用 Google 搜索来检索实时信息,从而规避预训练模型的知识截点。
请注意,在左侧窗格中,您默认位于 Trace 标签页中。点击您上次的查询文本 (I know the Summer olympics are happening in 2028, please tell me which countries are participating and what events will be held.),查看查询各个环节执行耗时的跟踪记录。
您可以利用这些信息调试涉及工具调用的更复杂的执行流程,从而了解各环节对回答延迟的影响。
返回窗口的对话讨论部分,然后点击右侧窗格中智能体回答旁边的智能体图标 (),检查智能体返回的事件。此事件中包含返回给用户的
content,以及详细说明回答所依据的搜索结果的 groundingMetadata。
了解完 ADK 开发者界面后,关闭此浏览器标签页。
返回到包含 Cloud Shell 终端的浏览器标签页,然后点击打开终端窗格。
按 CTRL+C 停止 Web 服务器。
点击检查我的进度,验证是否已完成了以下目标:
虽然 ADK 开发者界面非常适合用于测试和调试,但它并不适合在生产环境中向多位用户展示智能体。
如需将智能体集成到完整应用中运行,您需要在 agent.py 脚本中额外引入若干代码单元,这些代码单元在之前的任务中由 Web 应用代为处理。请继续执行以下步骤,打开包含这些代码单元的脚本进行查看。
如果智能体目录中没有 .env 文件,您可以设置环境变量供所有智能体使用。在 Cloud Shell 终端中,运行以下命令以导出环境变量:
在 Cloud Shell 编辑器文件浏览器中,点击 adk_project/app_agent。
点击此目录中的 agent.py 文件。
该智能体旨在作为应用的一部分运行。阅读 agent.py 中的注释代码,并特别注意代码中的以下代码单元:
InMemoryRunner()(位于第 68 行附近):智能体执行功能中一处被遗漏的关键代码单元。它负责实现以下工作流:接收用户查询,将其传递给相应的智能体,接收智能体的回答事件并将其传回调用应用或界面,然后触发后续事件。如需了解详情,请参阅关于事件循环的 ADK 文档。runner.session_service.create_session()(位于第 71 行附近):负责实现对话历史记录与共享状态功能的代码单元。会话使智能体能够保留状态,记住条目列表、任务的当前状态或其他“当前”信息。此类会创建一个本地会话服务以简化操作,然而在生产环境中,这可由数据库代为处理。types.Content() 和 types.Part()(位于第 78 行和第 79 行附近):负责实现结构化多模态消息功能的代码单元。智能体接收的不再是简单字符串,而是 Content 对象,该对象可由多个 Part 组成,以便按特定顺序将复杂的消息(包括文本和多模态内容)传递给智能体。请注意,该脚本包含一个硬编码查询(位于第 93 行附近),询问智能体:"What is the capital of France?"
在 Cloud Shell 终端中运行以下命令,以编程方式运行此智能体:
所选输出结果:
您还可以为智能体定义特定的输入和/或输出架构,如下所示:
在第 28 行附近,添加 Pydantic 架构类 BaseModel 和 Field 的以下导入语句,以定义架构类:
在 root_agent 的 Agent 定义中(位于第 62 行附近),将 output_schema 参数设置为使用您在上文定义的 CountryCapital 架构:
再次运行智能体脚本,查看 output_schema 之后的回答:
所选输出结果:
点击检查我的进度,验证是否已完成了以下目标:
您还可以使用命令行界面在本地开发环境中与智能体对话。这对于在开发智能体时快速调试和测试智能体非常方便。
与网页界面一样,命令行界面也会处理智能体的会话服务、制品服务和 Runner 的创建。
如需使用命令行界面运行交互式会话,请执行以下操作:
在 Cloud Shell 终端中运行以下命令:
输出结果:
输入以下消息:
输出示例(您的输出可能略有不同):
在命令行界面中完成对话后,在下一个用户提示符处输入 exit 以结束对话。
在此任务中,您将探索一个多智能体系统,以了解 ADK 的核心功能。
此智能体系统可评估和改进 LLM 所生成回答的事实依据。其中包括:
critic_agent,用作自动事实核查工具reviser_agent,用于根据经过验证的发现结果在需要时重写回答,以纠正不准确之处如需探索此智能体,请执行以下操作:
使用 Cloud Shell 编辑器的文件资源管理器进入 adk_project/llm_auditor 目录。
在 llm_auditor 目录中,点击 agent.py。
以下是有关此多智能体示例的若干注意事项:
SequentialAgent 是一个工作流类,可依序在智能体之间传递对话控制权,而无需用户输入。它执行后,critic_agent 和 reviser_agent 会自动依序输出回答内容。sub_agents 目录中各自的相应目录导入的。init.py、agent.py 和 prompt.py。您可以使用 prompt.py 单独管理复杂提示,然后再将其导入 agent.py。复制您之前创建的 .env 文件,以供此智能体使用,然后在 Cloud Shell 终端中运行以下命令,再次启动 ADK 开发者界面:
adk web 会话,默认的端口 8000 将会被屏蔽。此时您可以使用新端口(例如,adk web --port 8001)启动开发者界面。点击终端输出中的 http://127.0.0.1:8000 链接。系统即会在一个新浏览器标签页中打开 ADK 开发者界面。
从左侧的选择智能体菜单选项中,选择 llm_auditor。
以下面的虚假陈述开始对话:
您应该会在对话区域中看到智能体的两个回答:
critic_agent 会给出详细的回答,对用户提供的陈述进行事实核查,并基于 Google 搜索结果判断其真实性。reviser_agent 会返回一个简短的修正版本,用以纠正之前的错误陈述,例如“Earth is closer to the Sun than Mars”。事件视图顶部有一个图表,直观显示了此多智能体系统中各智能体和工具之间的关系。负责生成此回答的智能体将会突出显示。
您可以进一步探索代码,也可以在开发者界面中获取更多事实核查示例。比如,您可以尝试以下示例:
如果您想重置对话,请点击会话标题栏上的新建会话,重新开始对话。
完成与智能体的对话后,关闭浏览器标签页,然后在终端中按 Ctrl+C 以停止服务器。
注意:虽然此示例使用了 SequentialAgent 工作流智能体,但您可以将此模式理解为人机协同 (human-in-the-loop) 模式。
当 SequentialAgent 输出回答后,对话返回父级智能体(在本例中为 llm_auditor)以获取用户的新输入,然后再将对话回传给其他智能体。
点击检查我的进度,验证是否已完成了以下目标:
您已成功完成智能体开发套件 (ADK) 的基础实验。您分析了智能体及各类工具的核心架构,完成了标准化开发环境的初始化配置,并将
如需详细了解 ADK,请参阅以下资源:
adk-docs GitHub 代码库:adk-docs
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
本手册的最后更新时间:2026 年 4 月 15 日
本实验的最后测试时间:2026 年 4 月 15 日
版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验
完成此快速步骤即可开始实验。