Agent-to-Agent (A2A) adalah protokol komunikasi terbuka dan bahasa universal untuk agen. Hal ini memungkinkan agen dari berbagai builder dan platform untuk saling menemukan, berkolaborasi, dan mendelegasikan tugas dengan aman. Dokumen ini menjelaskan cara admin Gemini Enterprise dapat menghubungkan agen yang dibuat menggunakan A2A dan dihosting di platform mana pun ke Gemini Enterprise, sehingga agen tersebut tersedia bagi pengguna di aplikasi web Gemini Enterprise.
Sebelum memulai
Pastikan Anda memiliki:
Peran Admin Discovery Engine.
Aktifkan Discovery Engine API. Untuk mengaktifkan Discovery Engine API untuk project Google Cloud, di konsol Google Cloud , buka halaman Discovery Engine API.
Aplikasi Gemini Enterprise yang sudah ada. Untuk membuat aplikasi, lihat Membuat aplikasi.
Agen yang menggunakan protokol A2A.
Mengonfigurasi detail otorisasi
Buat kredensial OAuth 2.0 untuk agen agar dapat mengakses Google Cloud resource, seperti tabel BigQuery, atas nama pengguna.
Mendapatkan detail otorisasi
Ikuti langkah-langkah berikut untuk mendapatkan detail otorisasi.
Di konsol Google Cloud , pada halaman APIs & Services, buka halaman Credentials.
Pilih project Google Cloud , yang memiliki sumber data yang ingin diakses oleh agen. Misalnya, pilih project yang berisi set data BigQuery yang ingin Anda kueri oleh agen.
Klik Buat kredensial, lalu pilih ID klien OAuth.
Di Application type, pilih Web application.
Di bagian URI pengalihan yang diberi otorisasi, tambahkan URI berikut:
https://vertexaisearch.cloud.google.com/oauth-redirecthttps://vertexaisearch.cloud.google.com/static/oauth/oauth.html
Klik Buat.
Di panel OAuth client created, klik Download JSON. JSON yang didownload mencakup
Client ID,Authorization URI,Token URI, danClient secretuntuk projectGoogle Cloud yang dipilih. Anda memerlukan detail ini untuk membuat resource otorisasi:
Menambahkan resource otorisasi ke Gemini Enterprise
Jalankan perintah berikut untuk mendaftarkan resource otorisasi dengan 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/locations/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"
}
}'
Ganti kode berikut:
PROJECT_ID: ID project Anda.ENDPOINT_LOCATION: multi-region untuk permintaan API Anda. Tetapkan salah satu nilai berikut:us-untuk multi-region ASeu-untuk multi-region Uni Eropaglobal-untuk lokasi Global
LOCATION: multi-region penyimpanan data Anda:global,us, ataueuAUTH_ID: ID resource otorisasi. Ini adalah ID alfanumerik arbitrer yang Anda tentukan. Anda perlu merujuk ID ini nanti saat mendaftarkan Agen yang memerlukan dukungan OAuth.OAUTH_CLIENT_ID: ID klien OAuth 2.0 yang Anda dapatkan saat membuat kredensial OAuth.OAUTH_CLIENT_SECRET: rahasia klien OAuth 2.0 yang Anda dapatkan saat membuat kredensial OAuth.OAUTH_AUTH_URI: URI otorisasi yang Anda peroleh saat membuat kredensial OAuth. Formatnya adalah sebagai berikut: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: URI token yang Anda peroleh saat membuat kredensial OAuth.
Mendaftarkan agen A2A dengan Gemini Enterprise
Anda dapat mendaftarkan agen A2A dengan Gemini Enterprise menggunakan konsolGoogle Cloud atau REST API. Hal ini membuat agen tersedia bagi pengguna dalam aplikasi Gemini Enterprise.
Konsol
Untuk mendaftarkan agen A2A menggunakan konsol Google Cloud , ikuti langkah-langkah berikut:
Di konsol Google Cloud , buka halaman Gemini Enterprise.
Klik nama aplikasi yang ingin Anda daftarkan agennya.
Klik Agents > Add Agents.
Di bagian Choose an agent type, klik Add untuk Custom agent via A2A.
Di kolom JSON kartu agen, masukkan detail kartu agen dalam format JSON. Untuk mengetahui daftar lengkap kolom yang tersedia, lihat Spesifikasi Resmi Protokol Agent2Agent (A2A). Contoh berikut hanya menggunakan kolom wajib diisi.
Contoh:
{ "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" ] }Klik Pratinjau detail agen > Berikutnya.
Selesaikan penyiapan menggunakan salah satu metode berikut:
Jika Anda ingin agen mengakses Google Cloud resource atas nama Anda, ikuti langkah-langkah berikut:
Masukkan Client ID, Client secret, Authorization URI, dan Token URI yang Anda buat di bagian Mendapatkan detail otorisasi.
Masukkan Cakupan.
Klik Selesai.
Jika Anda tidak ingin agen mengakses Google Cloud resource atas nama Anda, klik Lewati & Selesaikan.
REST
Untuk membuat dan mendaftarkan agen dengan Gemini Enterprise, gunakan metode agents.create. Perintah berikut hanya menggunakan kolom wajib diisi. Untuk mengetahui daftar lengkap
kolom yang tersedia, lihat Spesifikasi Resmi Protokol Agent2Agent (A2A).
Jalankan perintah ini untuk mendaftarkan agen A2A Anda dengan Gemini Enterprise:
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_ID/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": "{\"protocolVersion\":\"PROTOCOLVERSION\",\"name\":\"AGENT_NAME\",\"description\":\"AGENT_DESCRIPTION\",\"url\":\"AGENT_URL\",\"version\":\"AGENT_VERSION\",\"defaultInputModes\":[\"INPUT_MODE\"],\"defaultOutputModes\":[\"OUTPUT_MODE\"],\"capabilities\":{ CAPABILITIES },\"skills\":[SKILLS]}"
},
"authorizationConfig": {
"agentAuthorization": "projects/PROJECT_ID/locations/LOCATION/authorizations/AUTH_ID"
}
}
'
Ganti kode berikut:
ENDPOINT_LOCATION: multi-region untuk permintaan API Anda. Tetapkan salah satu nilai berikut:us-untuk multi-region ASeu-untuk multi-region Uni Eropaglobal-untuk lokasi Global
LOCATION: multi-region penyimpanan data Anda:global,us, ataueuPROJECT_ID: ID project Anda.APP_ID: ID aplikasi yang ingin Anda gunakan untuk mendaftarkan agen.AGENT_NAME: ID unik untuk agen.AGENT_DISPLAY_NAME: nama agen yang ditampilkan di aplikasi web.AGENT_DESCRIPTION: deskripsi tentang kemampuan agen.PROTOCOLVERSION: versi protokol A2A yang didukung agen. Untuk mengetahui informasi selengkapnya tentang versi yang didukung, lihat catatan rilis A2A.AGENT_URL: URL endpoint agen.AGENT_VERSION: versi agen.INPUT_MODE: jenis media input default. Misalnya,application/jsonatautext/plain.OUTPUT_MODE: jenis media output default. Misalnya,text/plain"atauimage/png.CAPABILITIES: objek JSON yang berisi fitur A2A yang didukung. Misalnya\"streaming\": trueatau\"pushNotifications\": false.SKILLS: daftar objekAgentSkillyang ditawarkan agen.authorizationConfig: Jika Anda mendapatkan detail otorisasi dan ingin agen mengakses resource Google Cloud atas nama pengguna, tambahkan kolomauthorization_configke resource JSON Anda.AUTH_ID: nilai yang Anda gunakan untuk AUTH_ID di bagian Menambahkan resource otorisasi ke Gemini Enterprise.
Mencantumkan agen yang terhubung ke aplikasi
Contoh kode berikut menunjukkan cara mendapatkan detail semua agen yang terhubung ke aplikasi Anda:
REST
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"
Ganti variabel dengan nilai:
- ENDPOINT_LOCATION-: multi-region untuk permintaan API Anda. Tetapkan salah satu nilai berikut:
us-untuk multi-region ASeu-untuk multi-region Uni Eropaglobal-untuk lokasi Global
- PROJECT_ID: ID Google Cloud project Anda.
- LOCATION: multi-region aplikasi Anda:
global,us, ataueu. - APP_ID: ID aplikasi Gemini Enterprise Anda.
Jika agen Anda tidak dibuat oleh Google, respons akan menyertakan kolom name di beberapa baris pertama. Nilai kolom ini berisi ID Agen di
akhir jalur. Misalnya, dalam respons berikut, ID Agen adalah
12345678901234567890:
{
"name": "projects/123456/locations/global/collections/default_collection/engines/my-app/assistants/default_assistant/agents/12345678901234567890",
...
}
Melihat detail agen A2A
Contoh kode berikut menunjukkan cara mengambil detail agen yang terdaftar di Gemini Enterprise:
REST
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/AGENT_ID"
Ganti variabel dengan nilai:
- ENDPOINT_LOCATION-: multi-region untuk permintaan API Anda. Tetapkan salah satu nilai berikut:
us-untuk multi-region ASeu-untuk multi-region Uni Eropaglobal-untuk lokasi Global
- PROJECT_ID: ID Google Cloud project Anda.
- LOCATION: multi-region aplikasi Anda:
global,us, ataueu. - APP_ID: ID aplikasi Gemini Enterprise Anda.
- AGENT_ID: ID agen. Anda dapat menemukan ID agen dengan mencantumkan agen yang terhubung ke aplikasi Anda.
Memperbarui agen A2A
Anda dapat mengubah detail agen A2A yang ada dan terdaftar di Gemini Enterprise menggunakan Google Cloud konsol atau REST API.
Konsol
Untuk mengupdate agen A2A menggunakan konsol Google Cloud , ikuti langkah-langkah berikut:
Di konsol Google Cloud , buka halaman Gemini Enterprise.
Klik nama aplikasi yang menyertakan agen yang ingin Anda perbarui.
Klik Agen.
Klik nama agen A2A (Kustom) yang akan diperbarui, lalu klik Edit.
Di kolom JSON kartu agen, perbarui detail kartu agen dalam format JSON. Untuk mengetahui daftar lengkap kolom yang tersedia, lihat Spesifikasi Resmi Protokol Agent2Agent (A2A). Contoh berikut hanya menggunakan kolom wajib diisi.
Contoh:
{ "protocolVersion": "v3.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.1.0", "capabilities": { }, "skills": [ { "id": "data-analysis", "name": "Data Analysis", "description": "Data analysis", "tags": [] } ], "defaultInputModes": [ "text/plain" ], "defaultOutputModes": [ "text/plain" ] }Klik Simpan.
REST
Untuk memperbarui detail agen A2A yang terdaftar di Gemini Enterprise, gunakan
metode agents.patch. Perintah berikut hanya menggunakan kolom wajib diisi. Untuk mengetahui daftar lengkap kolom yang tersedia, lihat
Spesifikasi Resmi Protokol Agent2Agent (A2A).
Jalankan perintah ini untuk mengupdate agen A2A Anda dengan Gemini Enterprise:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents/AGENT_ID \
-d '
{
"name": "AGENT_NAME",
"displayName": "AGENT_DISPLAY_NAME",
"description": "AGENT_DESCRIPTION",
"a2aAgentDefinition": {
"jsonAgentCard": "{\"protocolVersion\":\"PROTOCOLVERSION\",\"name\":\"AGENT_NAME\",\"description\":\"AGENT_DESCRIPTION\",\"url\":\"AGENT_URL\",\"version\":\"AGENT_VERSION\",\"defaultInputModes\":[\"INPUT_MODE\"],\"defaultOutputModes\":[\"OUTPUT_MODE\"],\"capabilities\":{ CAPABILITIES },\"skills\":[SKILLS]}"
},
"authorizationConfig": {
"agentAuthorization": "projects/PROJECT_ID/locations/LOCATION/authorizations/AUTH_ID"
}
}
'
Ganti kode berikut:
ENDPOINT_LOCATION: multi-region untuk permintaan API Anda. Tetapkan salah satu nilai berikut:us-untuk multi-region ASeu-untuk multi-region Uni Eropaglobal-untuk lokasi Global
LOCATION: multi-region penyimpanan data Anda:global,us, ataueu.PROJECT_ID: ID project Anda.APP_ID: ID aplikasi yang ingin Anda daftarkan agennya.- AGENT_ID: ID agen. Anda dapat menemukan ID agen dengan mencantumkan agen yang terhubung ke aplikasi Anda.
AGENT_NAME: ID unik untuk agen.AGENT_DISPLAY_NAME: nama agen yang ditampilkan di aplikasi web.AGENT_DESCRIPTION: deskripsi tentang kemampuan agen.PROTOCOLVERSION: versi protokol A2A yang didukung agen. Untuk mengetahui informasi selengkapnya tentang versi yang didukung, lihat catatan rilis A2A.AGENT_URL: URL endpoint agen.AGENT_VERSION: versi agen.INPUT_MODE: jenis media input default. Misalnya,application/jsonatautext/plain.OUTPUT_MODE: jenis media output default. Misalnya,text/plainatauimage/png.CAPABILITIES: objek JSON yang berisi fitur A2A yang didukung. Misalnya\"streaming\": trueatau\"pushNotifications\": false.SKILLS: daftar objekAgentSkillyang ditawarkan agen.authorizationConfig: Jika Anda mendapatkan detail otorisasi dan ingin agen mengakses resource Google Cloud atas nama pengguna, tambahkan kolomauthorization_configke resource JSON Anda.AUTH_ID: nilai yang Anda gunakan untuk AUTH_ID di bagian Menambahkan resource otorisasi ke Gemini Enterprise.
Menghapus agen A2A
Contoh kode berikut menunjukkan cara menghapus agen yang terhubung ke aplikasi Anda:
REST
curl -X DELETE \
-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/AGENT_ID"
Ganti variabel dengan nilai:
- ENDPOINT_LOCATION-: multi-region untuk permintaan API Anda. Tetapkan salah satu nilai berikut:
us-untuk multi-region ASeu-untuk multi-region Uni Eropaglobal-untuk lokasi Global
- PROJECT_ID: ID Google Cloud project Anda.
- LOCATION: multi-region aplikasi Anda:
global,us, ataueu - APP_ID: ID aplikasi Gemini Enterprise Anda.
- AGENT_ID: ID agen. Anda dapat menemukan ID agen dengan mencantumkan agen yang terhubung ke aplikasi Anda.
Langkah berikutnya
- Gunakan agen yang Anda daftarkan dengan Gemini Enterprise di aplikasi web.