Google Cloud 工具集成¶
Google Cloud 工具使连接你的智能体到 Google Cloud 的产品和服务变得更加简单。只需几行代码,你就可以使用这些工具将你的智能体连接到:
- 数百万个自定义 API,这些 API 由开发者托管在 Apigee 中。
- 数百个面向企业系统(如 Salesforce、Workday 和 SAP)的预构建连接器。
- 使用应用集成构建的自动化工作流。
- 使用 MCP Toolbox 连接 数据库,如 Spanner、AlloyDB、Postgres 等。
Apigee API Hub 工具¶
ApiHubToolset 让你能够通过几行代码将 Apigee API hub 中的任何已文档化的 API 转变为工具。本节将向你展示包括为 API 设置安全连接的身份验证在内的分步说明。
前提条件
- 安装 ADK
- 安装 Google Cloud CLI。
- 拥有已文档化(即 OpenAPI 规范)API 的 Apigee API hub 实例
- 设置项目结构并创建所需文件
创建 API Hub 工具集¶
注意:本教程包括智能体创建。如果你已经有了智能体,你只需要遵循这些步骤的一个子集。
-
获取你的访问令牌,以便 APIHubToolset 可以从 API Hub API 获取规范。 在终端中运行以下命令
-
确保使用的账户具有所需的权限。你可以使用预定义的角色
roles/apihub.viewer
或分配以下权限:- apihub.specs.get (必需)
- apihub.apis.get (可选)
- apihub.apis.list (可选)
- apihub.versions.get (可选)
- apihub.versions.list (可选)
- apihub.specs.list (可选)
-
使用
APIHubToolset
创建工具。将以下内容添加到tools.py
如果你的 API 需要身份验证,你必须为该工具配置身份验证。 以下代码示例演示了如何配置 API 密钥。ADK 支持基于令牌的身份验证(API 密钥、Bearer 令牌)、服务账户和 OpenID Connect。我们将很快添加对各种 OAuth2 流程的支持。
from google.adk.tools.openapi_tool.auth.auth_helpers import token_to_scheme_credential from google.adk.tools.apihub_tool.apihub_toolset import APIHubToolset # 为你的 API 提供身份验证。如果你的 API 不需要身份验证,则不需要。 auth_scheme, auth_credential = token_to_scheme_credential( "apikey", "query", "apikey", apikey_credential_str ) sample_toolset_with_auth = APIHubToolset( name="apihub-sample-tool", description="Sample Tool", access_token="...", # 复制步骤 1 中生成的访问令牌 apihub_resource_name="...", # API Hub 资源名称 auth_scheme=auth_scheme, auth_credential=auth_credential, )
对于生产部署,我们建议使用服务账户而不是访问令牌。在上面的代码片段中,使用
service_account_json=service_account_cred_json_str
并提供你的安全账户凭据,而不是令牌。对于 apihub_resource_name,如果你知道用于 API 的 OpenAPI 规范的特定 ID,请使用
`projects/my-project-id/locations/us-west1/apis/my-api-id/versions/version-id/specs/spec-id`
。 如果你希望工具集自动从 API 中拉取第一个可用的规范,请使用`projects/my-project-id/locations/us-west1/apis/my-api-id`
-
创建你的智能体文件 Agent.py 并将创建的工具添加到你的智能体定义中:
-
配置你的
__init__.py
以公开你的智能体 -
启动 Google ADK Web UI 并尝试你的智能体:
然后前往 http://localhost:8000 从 Web UI 尝试你的智能体。
应用集成工具¶
通过 ApplicationIntegrationToolset,你可以使用集成连接器的 100 多个面向 Salesforce、ServiceNow、JIRA、SAP 等系统的预构建连接器,无缝地为你的智能体提供安全且受管控的企业应用程序访问权限。支持本地和 SaaS 应用程序。此外,你还可以通过将应用集成工作流作为工具提供给 ADK 智能体,将现有的应用集成流程自动化转变为智能体工作流。
前提条件
运行:
```shell
gcloud config set project
gcloud auth application-default login
gcloud auth application-default set-quota-project <project-id>
```
-
设置你的项目结构并创建所需文件
运行智能体时,确保在 project_root_folder 中运行 adk web
使用集成连接器¶
使用 集成连接器 将你的智能体连接到企业应用程序。
前提条件
- 要使用集成连接器中的连接器,你需要通过点击"快速设置"按钮在与连接相同的区域配置应用集成。
-
从模板库中转到连接工具模板,然后点击"使用模板"按钮。
-
填写集成名称为 ExecuteConnection(必须只使用此集成名称)并选择与连接区域相同的区域。点击"创建"。
-
使用应用集成编辑器上的"发布"按钮发布集成。
步骤:
-
使用
ApplicationIntegrationToolset
创建工具from google.adk.tools.application_integration_tool.application_integration_toolset import ApplicationIntegrationToolset connector_tool = ApplicationIntegrationToolset( project="test-project", # TODO: 替换为连接的 GCP 项目 location="us-central1", #TODO: 替换为连接的位置 connection="test-connection", #TODO: 替换为连接名称 entity_operations={"Entity_One": ["LIST","CREATE"], "Entity_Two": []},#实体上的操作的空列表表示支持该实体上的所有操作。 actions=["action1"], #TODO: 替换为操作 service_account_credentials='{...}', # 可选 tool_name="tool_prefix2", tool_instructions="..." )
注意: - 你可以提供服务账号而不是使用默认凭据。 - 要查找连接支持的实体和操作列表,请使用连接器 API: listActions 或 listEntityTypes
-
将工具添加到你的智能体。更新你的
agent.py
文件 -
配置你的 `__init__.py` 以公开你的智能体
-
启动 Google ADK Web UI 并尝试你的智能体。
然后前往 http://localhost:8000,并选择 my_agent 智能体(与智能体文件夹名称相同)
使用应用集成工作流¶
使用现有的应用集成工作流作为你的智能体的工具或创建一个新的工作流。
步骤:
-
使用
ApplicationIntegrationToolset
创建工具integration_tool = ApplicationIntegrationToolset( project="test-project", # TODO: 替换为连接的 GCP 项目 location="us-central1", #TODO: 替换为连接的位置 integration="test-integration", #TODO: 替换为集成名称 trigger="api_trigger/test_trigger",#TODO: 替换为触发器 ID service_account_credentials='{...}', #可选 tool_name="tool_prefix1", tool_instructions="..." )
注意:你可以提供服务账号而不是使用默认凭据
-
将工具添加到你的智能体。更新你的
agent.py
文件 -
配置你的
__init__.py
以公开你的智能体 -
启动 Google ADK Web UI 并尝试你的智能体。
然后前往 http://localhost:8000,并选择 my_agent 智能体(与智能体文件夹名称相同)
用于数据库的工具箱工具¶
面向数据库的 MCP 工具箱 是一个开源 MCP 服务器,用于数据库。它的设计考虑了企业级和生产级质量。通过处理连接池、身份验证等复杂性,它使你能够更轻松、更快速、更安全地开发工具。
Google 的 Agent Development Kit (ADK) 内置了对工具箱的支持。有关入门 或配置工具箱的更多信息,请参阅文档。
配置和部署¶
工具箱是你自己部署和管理的开源服务器。有关部署和配置的更多说明,请参阅官方工具箱文档:
安装客户端 SDK¶
ADK 依赖 toolbox-langchain
python 包来使用工具箱。在开始之前安装该包:
加载工具箱工具¶
一旦你的工具箱服务器配置完成并运行,你可以使用 ADK 从服务器加载工具:
from google.adk.tools.toolbox_tool import ToolboxTool
toolbox = ToolboxTool("https://127.0.0.1:5000")
# 加载特定的工具集
tools = toolbox.get_toolset(toolset_name='my-toolset-name'),
# 加载单个工具
tools = toolbox.get_tool(tool_name='my-tool-name'),
root_agent = Agent(
...,
tools=tools # 向智能体提供工具列表
)
高级工具箱功能¶
工具箱具有各种功能,可以更轻松地开发用于数据库的生成式 AI 工具。 有关更多信息,请阅读以下功能的详细说明:
- 认证参数:自动将工具输入绑定到 OIDC 令牌中的值,使运行敏感查询变得简单,而不会潜在泄露数据
- 授权调用:根据用户的 Auth 令牌限制使用工具的访问权限
- OpenTelemetry:通过 OpenTelemetry 从工具箱获取指标和跟踪