Skip to content

ADK 的 Apigee API Hub 工具

Supported in ADKPython v0.1.0

ApiHubToolset 让你可以通过几行代码将 Apigee API hub 中的任何文档化 API 转换为工具。本节向你展示分步骤说明,包括设置身份验证以安全连接到你的 API。

前置条件

  1. 安装 ADK
  2. 安装 Google Cloud CLI
  3. 具有文档化 (即 OpenAPI 规范) API 的 Apigee API hub 实例
  4. 设置你的项目结构并创建所需文件
project_root_folder
 |
 `-- my_agent
     |-- .env
     |-- __init__.py
     |-- agent.py
     `__ tool.py

创建 API Hub 工具集

注意:此教程包括智能体创建。如果你已经有一个智能体,你只需要遵循这些步骤的一部分。

  1. 获取你的访问令牌,以便 APIHubToolset 可以从 API Hub API 获取规范。在你的终端运行以下命令

    gcloud auth print-access-token
    # 打印你的访问令牌,如 'ya29....'
    
  2. 确保使用的账户具有所需权限。你可以使用预定义角色 roles/apihub.viewer 或分配以下权限:

    1. apihub.specs.get (必需)
    2. apihub.apis.get (可选)
    3. apihub.apis.list (可选)
    4. apihub.versions.get (可选)
    5. apihub.versions.list (可选)
    6. apihub.specs.list (可选)
  3. 使用 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 = APIHubToolset(
        name="apihub-sample-tool",
        description="示例工具",
        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 Spec 的特定 ID,请使用 `projects/my-project-id/locations/us-west1/apis/my-api-id/versions/version-id/specs/spec-id`。 如果你希望 Toolset 自动从 API 中提取第一个可用的规范,请使用 `projects/my-project-id/locations/us-west1/apis/my-api-id`

  4. 创建你的智能体文件 Agent.py 并将创建的工具添加到你的智能体定义中:

    from google.adk.agents.llm_agent import LlmAgent
    from .tools import sample_toolset
    
    root_agent = LlmAgent(
        model='gemini-2.0-flash',
        name='enterprise_assistant',
        instruction='帮助用户,利用你可以访问的工具',
        tools=sample_toolset.get_tools(),
    )
    
  5. 配置你的 __init__.py 以暴露你的智能体

    from . import agent
    
  6. 启动 Google ADK Web UI 并尝试你的智能体:

    # 确保从你的 project_root_folder 运行 `adk web`
    adk web
    

然后转到 http://localhost:8000 从 Web UI 尝试你的智能体。