A2A エージェントを登録して管理する

Agent-to-Agent(A2A)は、オープンな通信プロトコルであり、AI エージェントの共通言語です。これにより、さまざまなビルダーやプラットフォームのエージェントが互いを検出し、コラボレーションやタスクの安全な委任を行えるようになります。このドキュメントでは、Gemini Enterprise の管理者が、A2A を使用して構築されたエージェントを Gemini Enterprise に接続し、Gemini Enterprise ウェブアプリでユーザーが利用できるようにする方法について説明します。

始める前に

以下のものが揃っていることを確認してください。

認可の詳細情報を構成する

エージェントがユーザーの代わりに Google Cloud リソース(BigQuery テーブルなど)にアクセスするための OAuth 2.0 認証情報を作成します。

認可の詳細情報を取得する

認可の詳細情報を取得する手順は次のとおりです。

  1. Google Cloud コンソールの [API とサービス] ページで、[認証情報] ページに移動します。

    [認証情報] に移動

  2. エージェントにアクセスさせるデータソースを含む Google Cloud プロジェクトを選択します。たとえば、エージェントにクエリを実行させる BigQuery データセットを含むプロジェクトを選択します。

  3. [認証情報を作成] をクリックし、[OAuth クライアント ID] を選択します。

  4. [アプリケーションの種類] で [ウェブ アプリケーション] を選択します。

  5. [承認済みのリダイレクト URI] セクションに、次の URI を追加します。

    • https://vertexaisearch.cloud.google.com/oauth-redirect
    • https://vertexaisearch.cloud.google.com/static/oauth/oauth.html
  6. [作成] をクリックします。

  7. [OAuth クライアントを作成しました] パネルで、[JSON をダウンロード] をクリックします。ダウンロードした JSON には、選択したGoogle Cloud プロジェクトの Client IDAuthorization URIToken URIClient secret が含まれています。認可リソースを作成するには、次の情報が必要です。

Gemini Enterprise に認可リソースを追加する

次のコマンドを実行して、Gemini Enterprise に認可リソースを登録します。

REST

curl -X POST \
   -H "Authorization: Bearer $(gcloud auth print-access-token)" \
   -H "Content-Type: application/json" \
   -H "X-Goog-User-Project: PROJECT_ID" \
   "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/loca
   tions/LOCATION/authorizations?authorizationId=AUTH_ID" \
   -d '{
      "name": "projects/PROJECT_ID/locations/LOCATION/authorizations/AUTH_ID",
      "serverSideOauth2": {
         "clientId": "OAUTH_CLIENT_ID",
         "clientSecret": "OAUTH_CLIENT_SECRET",
         "authorizationUri": "OAUTH_AUTH_URI",
         "tokenUri": "OAUTH_TOKEN_URI"
      }
   }'

次のように置き換えます。

  • PROJECT_ID: 実際のプロジェクトの ID。
  • ENDPOINT_LOCATION: API リクエストのマルチリージョン。次のいずれかの値を割り当てます。
    • 米国のマルチリージョンの場合は us-
    • EU のマルチリージョンの場合は eu-
    • グローバル ロケーションの場合は global-
    詳細については、データストアのマルチリージョンを指定するをご覧ください。
  • LOCATION: データストアのマルチリージョン(globaluseu
  • AUTH_ID: 認可リソースの ID。任意に定義する英数字の ID です。この ID は、OAuth サポートが必要なエージェントを登録するときに参照する必要があります。
  • OAUTH_CLIENT_ID: OAuth 認証情報を作成したときに取得した OAuth 2.0 クライアント ID。
  • OAUTH_CLIENT_SECRET: OAuth 認証情報を作成したときに取得した OAuth 2.0 クライアント シークレット。
  • OAUTH_AUTH_URI: OAuth 認証情報の作成時に取得した認証 URI。次の形式となります。https://accounts.google.com/o/oauth2/v2/auth?client_id=CLIENT_ID&redirect_uri=https%3A%2F%2Fvertexaisearch.cloud.google.com%2Fstatic%2Foauth%2Foauth.html&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fbigquery&include_granted_scopes=true&response_type=code&access_type=offline&prompt=consent
  • OAUTH_TOKEN_URI: OAuth 認証情報の作成時に取得したトークン URI。

Gemini Enterprise にエージェントを登録する

コンソール

  1. Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。

    Gemini Enterprise

  2. エージェントを登録するアプリの名前をクリックします。

  3. [エージェント] > [エージェントの追加] をクリックします。

  4. [エージェント タイプの選択] セクションで、[A2A によるカスタム エージェント] の [追加] をクリックします。

  5. [エージェント カードの JSON] フィールドに、エージェント カードの詳細を JSON 形式で入力します。 使用可能なフィールドの完全なリストについては、Agent2Agent(A2A)プロトコルの公式仕様をご覧ください。 次の例では、必須フィールドのみを使用しています。

    例:

    {
      "protocolVersion": "v1.0",
      "name": "Hello World Agent",
      "description": "Just a hello world agent",
      "url": "https://example.com/myagent",
      "iconUrl": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTkiIGhlaWdodD0iOTkiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOmdyYXk7IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0zMyAwaDMzdjMzSDMzeiBNMCAzM2gzM3YzM0gweiBNNjYgMzNoMzN2MzNINjZ6IE0zMyA2NmgzM3YzM0gzM3oiIGZpbGw9ImJsdWUiLz48L3N2Zz4=",
      "version": "1.0.0",
      "capabilities": {
      },
      "skills": [
        {
          "id": "data-analysis",
          "name": "Data Analysis",
          "description": "Data analysis",
          "tags": []
        }
      ],
      "defaultInputModes": [
        "text/plain"
      ],
      "defaultOutputModes": [
        "text/plain"
      ]
    }
    
  6. [エージェントのインポート] > [次へ] をクリックします。

  7. 認可の詳細情報を入力し、[完了] をクリックします。

REST

Gemini Enterprise でエージェントを作成して登録するには、agents.create メソッドを使用します。次のコマンドでは、必須フィールドのみを使用します。使用可能なフィールドの完全なリストについては、Agent2Agent(A2A)プロトコルの公式仕様をご覧ください。

次のコマンドを実行して、Gemini Enterprise に A2A エージェントを登録します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_NUMBER/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents \
-d '
{
  "name": "AGENT_NAME",
  "displayName": "AGENT_DISPLAY_NAME",
  "description": "AGENT_DESCRIPTION",
  "a2aAgentDefinition": {
    "jsonAgentCard": "{\"name\":\"AGENT_NAME\",\"description\":\"AGENT_DESCRIPTION\",\"url\":\"AGENT_URL\",\"version\":\"AGENT_VERSION\",\"defaultInputModes\":[\"INPUT_MODE\"],\"defaultOutputModes\":[\"OUTPUT_MODE\"],\"capabilities\":{ CAPABILITIES },\"skills\":[SKILLS]}"
  }
}
'

次のように置き換えます。

  • ENDPOINT_LOCATION: API リクエストのマルチリージョン。次のいずれかの値を割り当てます。
    • 米国のマルチリージョンの場合は us-
    • EU のマルチリージョンの場合は eu-
    • グローバル ロケーションの場合は global-
    詳細については、データストアのマルチリージョンを指定するをご覧ください。
  • LOCATION: データストアのマルチリージョン(globaluseu
  • PROJECT_NUMBER: Google Cloud プロジェクトの数。
  • APP_ID: エージェントを登録するアプリの ID。
  • AGENT_NAME: エージェントの固有識別子。
  • AGENT_DISPLAY_NAME: ウェブアプリに表示されるエージェントの名前。
  • AGENT_DESCRIPTION: エージェントが実行できることの説明。
  • AGENT_URL: エージェントのエンドポイント URL。
  • AGENT_VERSION: エージェントのバージョン。
  • INPUT_MODE: デフォルトの入力メディアタイプ。たとえば、application/jsontext/plain です。
  • OUTPUT_MODE: デフォルトの出力メディアタイプ。たとえば、text/plain"image/png です。
  • CAPABILITIES: サポートされている A2A 機能を含む JSON オブジェクト。たとえば、\"streaming\": true\"pushNotifications\": false です。
  • SKILLS: エージェントが提供する AgentSkill オブジェクトのリスト。

認可の詳細情報を取得し、エージェントがユーザーに代わってGoogle Cloud リソースにアクセスできるようにする場合は、次のように JSON リソースに authorization_config フィールドを追加します。

"authorization_config"{
    "agent_authorization": "projects/PROJECT_NUMBER/locations/LOCATION/authorizations/AUTH_ID"
}

AUTH_ID は、Gemini Enterprise に認可リソースを追加するセクションの AUTH_ID に使用した値に置き換えます。

アプリに接続されているエージェントを一覧表示する

次のコードサンプルは、アプリに接続されているすべてのエージェントの詳細を取得する方法を示したものです。

curl

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents"

変数部分は、次のように実際の値に置き換えます。

  • ENDPOINT_LOCATION-: API リクエストのマルチリージョン。次のいずれかの値を割り当てます。
    • 米国のマルチリージョンの場合は us-
    • EU のマルチリージョンの場合は eu-
    • グローバル ロケーションの場合は global-
    詳細については、データストアのマルチリージョンを指定するをご覧ください。
  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  • LOCATION: データストアのマルチリージョン(globaluseu
  • APP_ID: Gemini Enterprise アプリの ID。

次のステップ

  • Gemini Enterprise に登録したエージェントをウェブアプリで使用する。