Agent-to-Agent(A2A)は、オープンな通信プロトコルであり、AI エージェントの共通言語です。これにより、さまざまなビルダーやプラットフォームのエージェントが互いを検出し、コラボレーションやタスクの安全な委任を行えるようになります。このドキュメントでは、Gemini Enterprise の管理者が、A2A を使用して構築されたエージェントを Gemini Enterprise に接続し、Gemini Enterprise ウェブアプリでユーザーが利用できるようにする方法について説明します。
始める前に
以下のものが揃っていることを確認してください。
ディスカバリー エンジン管理者ロール。
既存の Gemini Enterprise アプリ。アプリを作成するには、アプリを作成するをご覧ください。
A2A プロトコルを使用するエージェント。
認可の詳細情報を構成する
エージェントがユーザーの代わりに Google Cloud リソース(BigQuery テーブルなど)にアクセスするための OAuth 2.0 認証情報を作成します。
認可の詳細情報を取得する
認可の詳細情報を取得する手順は次のとおりです。
Google Cloud コンソールの [API とサービス] ページで、[認証情報] ページに移動します。
エージェントにアクセスさせるデータソースを含む Google Cloud プロジェクトを選択します。たとえば、エージェントにクエリを実行させる BigQuery データセットを含むプロジェクトを選択します。
[認証情報を作成] をクリックし、[OAuth クライアント ID] を選択します。
[アプリケーションの種類] で [ウェブ アプリケーション] を選択します。
[承認済みのリダイレクト URI] セクションに、次の URI を追加します。
https://vertexaisearch.cloud.google.com/oauth-redirecthttps://vertexaisearch.cloud.google.com/static/oauth/oauth.html
[作成] をクリックします。
[OAuth クライアントを作成しました] パネルで、[JSON をダウンロード] をクリックします。ダウンロードした JSON には、選択したGoogle Cloud プロジェクトの
Client ID、Authorization URI、Token URI、Client 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: データストアのマルチリージョン(global、us、eu)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=consentOAUTH_TOKEN_URI: OAuth 認証情報の作成時に取得したトークン URI。
Gemini Enterprise にエージェントを登録する
コンソール
Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。
エージェントを登録するアプリの名前をクリックします。
[エージェント] > [エージェントの追加] をクリックします。
[エージェント タイプの選択] セクションで、[A2A によるカスタム エージェント] の [追加] をクリックします。
[エージェント カードの 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" ] }[エージェントのインポート] > [次へ] をクリックします。
認可の詳細情報を入力し、[完了] をクリックします。
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: データストアのマルチリージョン(global、us、eu)PROJECT_NUMBER: Google Cloud プロジェクトの数。APP_ID: エージェントを登録するアプリの ID。AGENT_NAME: エージェントの固有識別子。AGENT_DISPLAY_NAME: ウェブアプリに表示されるエージェントの名前。AGENT_DESCRIPTION: エージェントが実行できることの説明。AGENT_URL: エージェントのエンドポイント URL。AGENT_VERSION: エージェントのバージョン。INPUT_MODE: デフォルトの入力メディアタイプ。たとえば、application/jsonやtext/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: データストアのマルチリージョン(
global、us、eu) - APP_ID: Gemini Enterprise アプリの ID。
次のステップ
- Gemini Enterprise に登録したエージェントをウェブアプリで使用する。