バインディングを管理する

Agent Registry では、バインディングは、ソース エージェントとターゲット リソース(別のエージェント、MCP サーバー、エンドポイントなど)間の接続を表します。バインディングを作成すると、オーケストレーター エージェントがダウンストリーム機能とやり取りできる明示的な関係が確立されます。

バインディングは、次の 2 つのシナリオを処理するために使用します。

  • リソース接続: ソース エージェントをターゲット リソース(別のエージェント、MCP サーバー、エンドポイントなど)にリンクできます。このシナリオでは、プライマリ オーケストレーターがタスクを専門のサブエージェントまたはツールに委任するマルチエージェント ワークフローをマッピングできます。
  • 委任された権限: エージェントを認証プロバイダに関連付けて、エージェントが独自の認証情報を使用して、または個々のユーザーに代わって外部ターゲットやカスタムツールに接続できるようにします。このバインディングは、エージェントが OAuth トークンまたは API キーを使用してリモート MCP サーバーまたはツールに対して認証を行う必要がある場合に必要です。バインディングを使用すると、コードで認証プロバイダを手動で定義する必要がなくなります。詳細な手順については、このドキュメントの認証プロバイダ バインディングを作成するをご覧ください。

このドキュメントでは、エージェント レジストリでバインディングを作成、表示、更新、削除する方法について説明します。

始める前に

バインディングを管理する前に、次の操作を行います。

  1. エージェント レジストリを設定する
  2. 移行元コンポーネントと移行先コンポーネントを登録します。詳細については、エージェント コンポーネントを登録するをご覧ください。
  3. 委任された権限のバインディングを構成する場合は、エージェント ID 認証マネージャーを使用して認証プロバイダを作成します。詳細については、ツールとリソースに対して認証するをご覧ください。
  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: Uniform Resource Name(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 サーバーやエンドポイントなど)。

認証プロバイダ バインディングを作成する

委任された権限に対して、エージェントを認証プロバイダに関連付けることができます。このバインディングを作成する前に、エージェント ID 認証マネージャーを使用して認証プロバイダを作成する必要があります。詳細については、ツールとリソースに対して認証するをご覧ください。

--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 で認証プロバイダ バインディングを構成するには、コネクタ認証プロバイダの完全なリソースパス、スコープ、継続 URI を指定して auth_provider_binding ブロックを指定します。

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 など)。

エージェント コードでこれらのバインディングを使用する方法の例については、Agent Development Kit(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

バインディングを表す google_agent_registry_binding リソースを Terraform 構成から削除し、terraform apply を実行します。

次のステップ