管理绑定

在 Agent Registry 中,绑定表示来源智能体与目标资源(例如另一个智能体、 MCP 服务器或端点)之间的 连接。通过创建绑定,您可以建立显式关系,让编排器智能体与下游功能互动。

您可以使用绑定来处理以下两种情况:

  • 资源连接: 您可以将来源智能体链接到目标资源,例如另一个智能体、MCP 服务器或端点。在这种情况下,您可以规划多智能体工作流,其中主编排器将任务委托给专门的子智能体或工具。
  • 委托权限: 您可以将智能体与 身份验证提供方相关联,让智能体 使用自己的凭据或 代表个人用户连接到外部目标或自定义工具。如果智能体需要使用 OAuth 令牌或 API 密钥向远程 MCP 服务器或工具进行身份验证,则必须进行此绑定。通过绑定,您无需在代码中手动定义身份验证提供方。如需查看详细说明,请参阅本文档中的 创建身份验证提供方绑定

本文档介绍了如何在 Agent Registry 中创建、查看、更新和删除绑定。

准备工作

如需管理绑定,请先完成以下操作:

  1. 设置 Agent Registry
  2. 注册来源组件和目标组件。如需了解详情,请参阅 注册智能体组件
  3. 如果您想为委托权限配置绑定,请使用 Agent Identity 身份验证管理器创建身份验证提供方。如需了解详情,请参阅 向工具和资源进行身份验证
  4. 如需使用本文档中的 Google Cloud CLI 命令,请确保您 已设置 gcloud CLI 环境

所需的角色

如需获得在 Agent Registry 中管理绑定所需的权限,请让管理员向您授予项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。

创建绑定

创建绑定以将来源智能体连接到目标资源:

gcloud

gcloud agent-registry bindings create BINDING_NAME \
  --project=PROJECT_ID \
  --location=REGION \
  --display-name="DISPLAY_NAME" \
  --source-identifier="SOURCE_ID" \
  --target-identifier="TARGET_ID"

替换以下内容:

  • BINDING_NAME:您要为绑定指定的名称,例如 my-custom-binding
  • PROJECT_ID:项目 ID。
  • REGION:注册表区域。
  • DISPLAY_NAME:您要为绑定指定的简单易懂的名称,例如 My Custom Binding
  • SOURCE_ID:来源智能体的 标识符,采用统一资源名称 (URN) 格式。
  • TARGET_ID:目标资源的标识符 采用 URN 格式,例如 MCP 服务器标识符

Terraform

如需在来源智能体和目标资源之间创建绑定,请配置 google_agent_registry_binding 资源。绑定需要 target 块:

resource "google_agent_registry_binding" "agent_binding" {
  location     = "REGION"
  binding_id   = "BINDING_NAME"
  display_name = "DISPLAY_NAME"
  description  = "Connects a source agent to a target resource."

  source {
    identifier = "urn:agent:my-publisher:my-namespace:SOURCE_AGENT_NAME"
  }

  target {
    identifier = "urn:mcp:my-publisher:my-namespace:TARGET_RESOURCE_NAME"
  }
}

替换以下内容:

  • REGION:注册表区域。
  • BINDING_NAME:您要为绑定指定的唯一名称。
  • DISPLAY_NAME:绑定的简单易懂的名称。
  • SOURCE_AGENT_NAME:来源智能体的名称。
  • TARGET_RESOURCE_NAME:目标资源的名称,例如 MCP 服务器或端点。

创建身份验证提供方绑定

您可以将智能体与 身份验证提供方相关联,以获取委托 权限。在创建此绑定之前,您必须先创建 使用 Agent Identity 身份验证管理器的身份验证提供方。 如需了解详情,请参阅 向工具和资源进行身份验证

指定 --auth-provider 资源名称时,您必须使用项目 ID:

gcloud

gcloud agent-registry bindings create BINDING_NAME \
  --project=PROJECT_ID \
  --location=REGION \
  --display-name="DISPLAY_NAME" \
  --source-identifier="SOURCE_ID" \
  --auth-provider="projects/PROJECT_ID/locations/REGION/connectors/AUTH_PROVIDER_ID"

AUTH_PROVIDER_ID 替换为身份验证提供方的 ID。

Terraform

如需在 Terraform 中配置身份验证提供方绑定,请指定 auth_provider_binding 块,其中包含连接器身份验证提供方的完整资源路径及其范围和继续 URI:

resource "google_agent_registry_binding" "auth_binding" {
  location     = "REGION"
  binding_id   = "BINDING_NAME"
  display_name = "DISPLAY_NAME"

  source {
    identifier = "urn:agent:my-publisher:my-namespace:SOURCE_AGENT_NAME"
  }

  target {
    identifier = "urn:mcp:my-publisher:my-namespace:TARGET_RESOURCE_NAME"
  }

  auth_provider_binding {
    auth_provider = "projects/PROJECT_ID/locations/REGION/connectors/AUTH_PROVIDER_ID"
    scopes        = [SCOPES]
    continue_uri  = "CONTINUE_URI"
  }
}

替换以下内容:

  • REGION:注册表区域。
  • BINDING_NAME:您要为绑定指定的唯一名称。
  • DISPLAY_NAME:绑定的简单易懂的名称。
  • SOURCE_AGENT_NAME:来源智能体的名称。
  • TARGET_RESOURCE_NAME:目标资源的名称,例如 MCP 服务器或端点。
  • PROJECT_ID:项目 ID。
  • AUTH_PROVIDER_ID:连接器身份验证提供方的 ID。
  • SCOPES:OAuth2 范围的英文逗号分隔列表, 例如 "https://www.googleapis.com/auth/cloud-platform"
  • CONTINUE_URI:身份验证提供方的继续 URI,例如 https://example.com/continue

如需查看如何在智能体代码中使用这些绑定的示例,请参阅 在智能体开发套件 (ADK) 代码中解析绑定

列出绑定

列出特定位置的所有绑定:

gcloud agent-registry bindings list \
  --project=PROJECT_ID \
  --location=REGION

查看绑定详情

检索单个绑定的详细信息:

gcloud agent-registry bindings describe BINDING_NAME \
  --project=PROJECT_ID \
  --location=REGION

更新绑定

使用 gcloud CLI 标志更新现有绑定的参数,例如其显示名或说明:

gcloud

gcloud agent-registry bindings update BINDING_NAME \
  --project=PROJECT_ID \
  --location=REGION \
  --display-name="NEW_DISPLAY_NAME"

Terraform

如需使用 Terraform 更新绑定的显示名或说明,请修改配置中的现有 google_agent_registry_binding 资源,然后运行 terraform apply

删除绑定

如需移除资源之间的连接,请删除绑定记录:

gcloud

gcloud agent-registry bindings delete BINDING_NAME \
  --project=PROJECT_ID \
  --location=REGION

Terraform

从 Terraform 配置中移除表示绑定的 google_agent_registry_binding 资源,然后运行 terraform apply

后续步骤