准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Create a data store and search app
/ 25
Use a LangChain Tool
/ 25
Use a function as a custom tool
/ 25
Use a Google-provided tool
/ 25
本实验介绍了如何将各种工具与智能体开发套件智能体结合使用。
从 Google 提供的强大工具(例如 Google 搜索和 Vertex AI Search),到 LangChain 和 CrewAI 生态系统中丰富多样的工具,有大量工具可供您轻松上手。
此外,只需编写一个合适的文档字符串,即可基于函数创建自己的工具!
本实验假设您熟悉“智能体开发套件 (ADK) 入门”实验中介绍的 ADK 基础知识。
在本实验中,您将了解可供 ADK 智能体使用的工具生态系统。您还将学习如何将函数作为自定义工具提供给智能体。
完成本实验后,您将能够:
请阅读以下说明。实验会以定时的方式进行,且您无法暂停实验。定时器(点击“开始实验”即可启动)会显示云资源可供您使用的时间。
Qwiklabs 实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud Platform。
要完成此实验,您需要:
注意:如果您已拥有个人 GCP 帐号或项目,请不要使用其进行此实验。
点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示“登录”页面。
提示:将这些标签页安排在不同的窗口中,并排显示。
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
您也可以在“实验详细信息”窗格中找到“用户名”。
点击下一步。
复制下面的密码,然后将其粘贴到欢迎对话框中。
您也可以在“实验详细信息”窗格中找到“密码”。
点击下一步。
继续在后续页面中点击以完成相应操作:
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
智能体与普通模型的根本区别在于能否有效利用工具。工具是一段代码(例如函数或方法),用于执行特定操作,例如与数据库交互、发出 API 请求或调用其他外部服务。
工具让智能体能够与其他系统交互,并执行超出其核心推理和生成能力的操作。请务必注意,这些工具独立于智能体的 LLM 运行,这意味着工具本身并不具备推理能力。
智能体开发套件为开发者提供了多种可选工具:
在本实验中,您将了解上述各类工具,并实际运用每个类型中的一种工具。
Google 为智能体提供了多种实用工具。具体包括:
Google 搜索 (google_search):允许智能体使用 Google 搜索执行网页搜索。您只需将 google_search 添加到智能体的工具中即可。
代码执行 (built_in_code_execution):此工具可让智能体执行相关代码,从而以程序化方式执行计算、进行数据处理或与其他系统交互。您可以使用预构建的 VertexCodeInterpreter,或任何实现 BaseCodeExecutor 接口的代码执行器。
检索(retrieval):用于从不同来源检索信息的工具包。
Vertex AI Search 工具 (VertexAiSearchTool):此工具与 Google Cloud 的 Vertex AI Search 服务集成,可让智能体搜索您的 AI Applications 数据存储区。
在 Google Cloud 控制台窗口处于选中状态时,按下键盘上的 G 键,然后按下 S 键,打开 Cloud Shell。或者,您也可以点击 Cloud 控制台右上角的“激活 Cloud Shell”按钮 ()。
点击继续。
如果系统提示您为 Cloud Shell 授权,请点击授权。
在 Cloud Shell 终端面板的右上角,点击在新窗口中打开按钮 。
在 Cloud Shell 终端中,输入以下内容以打开 Cloud Shell 编辑器并进入主目录:
将以下命令粘贴到 Cloud Shell 终端中,从 Cloud Storage 存储桶下载本实验的代码:
在 Cloud Shell 终端中运行以下命令,以更新 PATH 环境变量、安装 ADK 以及满足本实验要求的一些其他依赖项。
google-adk[extensions] 用于安装 Crew AI 工具所需的其他依赖项。在后续任务中,您将使用 Google 提供的 Vertex AI Search 工具,依据您在 AI Applications 数据存储区中的自有数据回答问题。由于应用的数据存储区需要一段时间来注入数据,因此您需要现在就对其进行设置,然后在后续任务中使用该存储区来依据您自己的数据回答问题。
在仍显示 Cloud 控制台的浏览器标签页中,在控制台顶部搜索 AI Applications,并前往该页面。
选中条款及条件复选框,然后点击继续并激活 API。
从左侧导航菜单中选择数据存储区。
选择创建数据存储区。
找到 Cloud Storage 卡片,然后点击卡片上的选择。
选择非结构化文档(PDF、HTML、TXT 等)
我们已为您将示例文档上传到 Cloud Storage。这些文档涉及假想中发现的新行星“Persephone”。本例中使用一个虚构的行星,以确保模型在训练期间不可能学习到有关该行星的任何信息。
对于 GCS 路径,请输入 。
点击继续。
对于位置选项,保留默认设置全球。
对于数据存储区名称,请输入:Planet Search
点击创建。
点击左侧导航栏中的应用。
点击创建新应用。
找到自定义搜索(常规)应用的卡片,然后点击创建。
将应用名称设置为 Planet Search
将公司名称设置为 Planet Conferences
点击继续。
选中 Planet Search 数据存储区旁边的复选框。
选择创建。
应用创建完毕后,点击左上角的“AI Applications”徽标即可返回应用信息中心。
复制“应用”表格中显示的应用 ID 值。将其保存在文本文档中,因为您稍后会用到此信息。
目前,您需要给数据存储区一些时间来注入数据。稍后,您将向智能体提供此搜索应用,以便智能体依据其中的数据回答问题。
点击检查我的进度以验证是否完成了以下目标:
ADK 允许使用 LangChain 和 CrewAI 等第三方 AI 库提供的工具。
LangChain 社区已创建了大量工具集成,可用于访问多种数据源、与各种 Web 产品集成,以及完成许多类型的任务。在 ADK 中使用社区工具,可以避免重复编写其他人已经创建的工具。
返回显示 Cloud Shell 编辑器的浏览器标签页,使用左侧的文件资源管理器前往 adk_tools/langchain_tool_agent 目录。
在 Cloud Shell 终端中运行以下命令,为此智能体目录创建一个 .env 文件来提供身份验证详细信息:
运行以下命令,将 .env 文件复制到您将在本实验中使用的其他智能体目录:
在 langchain_tool_agent 目录中,点击 agent.py 文件。
请注意 LangchainTool 类的导入。这是一个封装容器类,可让您在智能体开发套件中使用 LangChain 工具。
在 agent.py 文件中的所示位置添加以下代码,以将 LangChain 维基百科工具添加到您的智能体中。这样一来,您的智能体就可以在维基百科上搜索信息:
在 Cloud Shell 终端中,从 adk_tools 项目目录中使用以下命令启动智能体开发套件开发者界面:
输出
如需在新标签页中查看网页界面,请点击终端输出中的 http://127.0.0.1:8000 链接。
系统即会在一个新浏览器标签页中打开 ADK 开发者界面。
从左侧的选择智能体下拉菜单中,选择 langchain_tool_agent。
向智能体查询:
输出:
点击表示正在使用维基百科工具的智能体聊天气泡旁边的智能体图标 ()。
请注意,内容中包含向维基百科发起查询的 functionCall。
点击标签页顶部的前进按钮,前往下一个事件。
在该事件中,您可以看到从维基百科检索到的用于生成模型回答的结果。
完成对该智能体的提问后,关闭开发者界面浏览器标签页。
选择 Cloud Shell 终端面板,然后按 CTRL + C 停止服务器。
点击检查我的进度以验证是否完成了以下目标:
您也可以借助 CrewaiTool 封装容器来以类似方式使用 CrewAI 工具。
为此,请在 Cloud Shell 编辑器的文件资源管理器中,前往 adk_tools/crewai_tool_agent 目录。
在 crewai_tool_agent 目录中,点击 agent.py 文件。
请注意,系统从 ADK 导入了 CrewaiTool 类,并从 crewai_tools 导入了 ScrapeWebsiteTool。
在 agent.py 文件中的所示位置添加以下代码,以将 CrewAI Scrape Website 工具添加到您的智能体中,并提供名称和说明:
ScrapeWebsiteTool 将从美联社新闻网站 apnews.com 加载内容。
您将使用命令行界面运行此智能体,以便熟悉这种快速测试智能体的简便方式。在 Cloud Shell 终端中,从 adk_tools 项目目录中使用以下命令来通过 ADK 命令行界面启动智能体:
智能体加载过程中可能会显示一些警告。您可以忽略这些警告。当系统显示 user: 提示符时,请输入:
输出:
请注意,如果使用了某个工具,命令行界面也会对您进行说明。
在终端中,当再次出现 user: 提示符时,输入 exit 退出命令行界面。
在终端历史记录中向上滚动,找到运行 adk run crewai_tool_agent 的位置,您会看到命令行界面给出了可跟踪的日志文件。请复制并运行以下命令,以查看有关执行的更多详细信息:
按 CTRL + C 停止跟踪日志文件并返回到命令提示符。
点击检查我的进度以验证是否完成了以下目标:
当预构建的工具无法完全满足特定需求时,您可以创建自己的工具。这使您能够实现定制化功能,例如连接专有数据库或执行独特算法。
在创建新工具时,最直接的方法是编写一个标准 Python 函数(带有以标准格式编写的文档字符串),并将其作为工具传递给模型。这种方法具有灵活性,可实现快速集成。
在编写用作工具的函数时,请注意以下几点重要事项:
"error_message" 键的字典,该键中将包含人类可读的说明。根据最佳实践,请在返回值字典中添加一个 "status" 键,用于指示总体结果(例如,"success"、"error"、"pending"),从而为 LLM 提供关于操作状态的清晰信号。请通过完成以下步骤,定义一个函数并将其用作工具:
在 Cloud Shell 编辑器的文件资源管理器中,前往 adk_tools/function_tool_agent 目录。
在 function_tool_agent 目录中,点击 agent.py 文件。
请注意,函数 get_date() 和 write_journal_entry() 具有格式正确的文档字符串,可供 ADK 智能体了解何时以及如何使用它们。具体包括:
Args: 部分,用于说明函数的输入参数(类型为可 JSON 序列化的类型)Returns: 部分,用于说明函数的返回内容,首选回答类型为 dict
为了将函数传递给智能体以用作工具,请在 agent.py 文件中的所示位置添加以下代码:
您将通过开发者界面运行此智能体,了解其中的工具如何助您直观展示工具请求和回答。在 Cloud Shell 终端中,从 adk_tools 项目目录中使用以下命令再次运行开发者界面(如果服务器之前仍在运行,请先按 CTRL+C 停止正在运行的服务器,然后运行以下命令以重新启动服务器):
点击终端输出中的 http://127.0.0.1:8000 链接。
系统即会在一个新浏览器标签页中打开 ADK 开发者界面。
从左侧的选择智能体下拉菜单中,选择 function_tool_agent。
输入以下内容,开始与智能体对话:
智能体会询问您今天的情况。用一句话回复您今天过得怎么样(例如 It's been a good day. I did a cool ADK lab.),然后智能体会为您撰写日志条目。
输出示例:
请注意,智能体显示了自定义工具的请求和回答按钮。您可以点击每个按钮,查看有关其中各个事件的更多信息。
关闭开发者界面标签页。
在 Cloud Shell 编辑器中,您可以在 adk_tools 目录中找到包含日期信息的日志条目文件。(您可以通过 Cloud Shell 编辑器菜单启用“查看 > 自动换行”。这样,您无需进行频繁的水平滚动,即可查看完整文本。)
点击 Cloud Shell 终端面板,然后按 Ctrl+C 停止服务器。
str 和 int 等原始数据类型,而不是自定义类。update_profile(profile: Profile) 函数,而是要创建单独的函数,例如 update_name(name: str)、update_age(age: int) 等。"status" 键,用于指示总体结果(例如,"success"、"error"、"pending"),从而为 LLM 提供关于操作状态的清晰信号。点击检查我的进度以验证是否完成了以下目标:
在此任务中,您将了解如何使用智能体开发套件智能体、Google 的内置 Vertex AI Search 工具以及您之前创建的 AI Applications 数据存储区,轻松部署 RAG 应用。
返回到 Cloud Shell 编辑器标签页,然后选择 adk_tools/vertexai_search_tool_agent 目录。
在 vertexai_search_tool_agent 目录中,点击 agent.py 文件。
在导入部分底部所示位置添加 VertexAiSearchTool 类的导入:
更新对 VertexAiSearchTool 进行实例化的代码。在传递给 search_engine_id 的路径中,将 YOUR_PROJECT_ID 更新为 YOUR_SEARCH_APP_ID 更新为您在之前的任务中复制的搜索应用 ID。
在智能体定义中的所示位置添加以下行,以向智能体提供工具:
您可以在控制台中的 AI Applications > 数据存储区页面上选择数据存储区的名称,以确认数据存储区是否已可供使用。
活动和文档标签页会显示文档导入和编入索引的状态。当活动标签页报告“导入已完成”时,您的数据存储区便应该可以进行查询了。
在 Cloud Shell 终端中,从 adk_tools 项目目录中使用以下命令启动命令行界面。您需要添加 --reload_agents 标志,以确保开发者界面在您进行更改时重新加载您的智能体。
adk web 会话,请选择正在运行该会话的 Cloud Shell 终端面板,然后按 CTRL + C。如果您找不到之前使用的 Cloud Shell 终端标签页,则默认端口 8000 将被屏蔽,但您可以使用 adk web --port 8001 通过新端口启动开发者界面。
点击 http://127.0.0.1:8000 以打开 ADK 开发者界面。
从左侧的选择智能体下拉菜单中,选择 vertexai_search_tool_agent。
输入以下内容,就 Cloud Storage 文档中描述的虚构行星向智能体发起查询:
输出示例(您的输出可能略有不同)
搜索工具存在一项使用限制,即您无法在同一智能体中混合使用搜索工具和非搜索工具。为了解决此问题,您可以使用 AgentTool 将具有搜索工具的智能体封装起来,然后使用该智能体即工具与其他工具一起执行搜索。
如需查看实际效果,请执行以下操作:
确保您已打开 adk_tools/vertexai_search_tool_agent/agent.py 文件。
更新 root_agent 的 tools 参数,以包含 get_date 函数工具:
在 ADK 开发者界面中,向智能体提问:
预期输出:
返回到 adk_tools/vertexai_search_tool_agent/agent.py 文件,将以下代码粘贴到 root_agent 上方。此智能体专门用于使用搜索工具,包含搜索工具和使用说明:
然后,将 root_agent 的 tools 参数替换为以下内容,以使用 AgentTool() 封装在上一步中创建的智能体:
现在,您可以向智能体发起查询,并同时接收搜索结果和使用 get_date() 函数。
返回到 ADK 开发者界面浏览器标签页,然后点击 + 新建会话。
再次询问:
智能体应回答正确的日期。
然后,为了调用搜索工具,请询问以下问题:
预期输出:
您可以就这颗新行星以及宣布发现该行星的会议,继续向智能体询问更多问题。满意后,关闭开发者界面标签页。
当您结束向此智能体提问后,请关闭浏览器标签页,选择正在运行服务器的 Cloud Shell 终端窗口,然后按 Ctrl + C 停止服务器。
点击检查我的进度以验证是否完成了以下目标:
以下工具类型也值得了解,但您不会在本实验中使用这些工具。
此工具是 FunctionTool 的子类。它适用于需要大量处理时间且调用时不应阻碍智能体执行的任务。
使用 LongRunningFunctionTool 时,您的 Python 函数可以启动长时间运行的操作,并可以选择性地返回中间结果,以便让模型和用户了解进度(例如,状态更新或预计完成时间)。然后,智能体可以继续执行其他任务。
例如,在人机协同场景中,智能体需要获得人类的批准才能继续执行任务。
借助 Application Integration,您可以使用 Google Cloud 控制台中的拖放界面,利用 Integration Connector 为 Google Cloud 产品和第三方系统(如 Salesforce、ServiceNow、JIRA、SAP 等)提供的 100 多个预构建连接器来构建工具、数据连接和数据转换。然后,您可以通过 ADK ApplicationIntegrationToolset,让智能体连接这些来源或调用工作流。
Model Context Protocol (MCP) 是一种开放标准,旨在规范 Gemini 和 Claude 等大语言模型 (LLM) 与外部应用、数据源和工具之间的通信方式。无论您是想要构建一个调用 MCP 服务的工具,还是想要公开一个 MCP 服务器以供其他开发者或智能体与您的工具互动,ADK 都能帮助您在智能体中使用和运用 MCP 工具。
如需将 ADK 与 MCP 服务器结合使用,请参阅“MCP 工具”文档中的代码示例和设计模式,其中包括:
如需详细了解如何将 MCP 与 ADK 智能体结合使用,请参阅实验将 Model Context Protocol (MCP) 工具与 ADK 智能体结合使用。
在本实验中,您学习了:
如需详细了解如何使用智能体开发套件构建和部署智能体,请查看以下实验:
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
上次更新手册的时间:2025 年 11 月 18 日
上次测试实验的时间:2025 年 11 月 6 日
版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验