Agent2Agent (A2A) Protocol adalah protokol komunikasi terbuka dan bahasa universal untuk agen. Protokol ini memungkinkan agen dari berbagai builder dan platform untuk saling menemukan, berkolaborasi, dan mendelegasikan tugas dengan aman. Dokumen ini menjelaskan cara administrator Gemini Enterprise 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 Gemini Enterprise.
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.
Gemini Enterprise mendukung mekanisme streaming A2A v0.3.
Jika Anda menggunakan A2A v1.0.0 atau yang lebih baru, gunakan paket kompatibilitas yang disediakan oleh SDK untuk memastikan bahwa agen Anda berfungsi dengan mekanisme sebelumnya (misalnya, paket
a2acompat/a2av0untuk Go atau paketa2a.compat.v0_3untuk Python).
Mengonfigurasi detail otorisasi (opsional)
Untuk agen A2A, Anda dapat menggunakan kredensial OAuth 2.0 untuk mengontrol akses pengguna akhir ke agen A2A. Namun, jika agen berjalan di Cloud Run dan menggunakan Identity and Access Management untuk kontrol akses, kredensial OAuth 2.0 tidak diperlukan.
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 aplikasi web.
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 Create.
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.
Mendaftarkan agen A2A dengan Gemini Enterprise
Anda dapat mendaftarkan agen A2A ke 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 gunakan untuk mendaftarkan agen.
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": "0.3", "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 Preview agent details > Next.
Selesaikan penyiapan menggunakan salah satu metode berikut:
Jika Anda ingin agen mengakses resource Google Cloud 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 mendaftarkan agen A2A menggunakan REST API, ikuti langkah-langkah berikut:
Menambahkan resource otorisasi ke Gemini Enterprise (opsional)
Jika agen harus mengakses Google Cloud resource atas nama pengguna, jalankan perintah berikut untuk mendaftarkan resource otorisasi yang Anda buat di bagian Konfigurasi detail otorisasi (opsional) dengan Gemini Enterprise:
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_NUMBER/locations/LOCATION/authorizations?authorizationId=AUTH_ID" \
-d '{
"name": "projects/PROJECT_NUMBER/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.PROJECT_NUMBER: jumlah project Google Cloud Anda.ENDPOINT_LOCATION: multi-region untuk permintaan API Anda. Tentukan salah satu nilai berikut:usuntuk multi-region ASeuuntuk multi-region Uni Eropaglobaluntuk 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 peroleh saat membuat kredensial OAuth.OAUTH_CLIENT_SECRET: rahasia klien OAuth 2.0 yang Anda dapatkan saat membuat kredensial OAuth.OAUTH_AUTH_URI: URI Otorisasi. Untuk memberi otorisasi aplikasi Anda, buat URI Otorisasi tertentu menggunakan detail dari file JSON kredensial OAuth Anda. Salin template berikut, lalu ganti placeholder dengan nilai spesifik Anda.https://accounts.google.com/o/oauth2/v2/auth?client_id=OAUTH_CLIENT_ID&redirect_uri=https%3A%2F%2Fvertexaisearch.cloud.google.com%2Fstatic%2Foauth%2Foauth.html&scope=YOUR_CUSTOM_SCOPES&include_granted_scopes=true&response_type=code&access_type=offline&prompt=consent
YOUR_CUSTOM_SCOPES: Anda dapat menambahkan cakupan yang Anda butuhkan. Misalnya, string cakupan OAuth berikut meminta akses hanya baca ke Google Drive dan Google Dokumen Anda.scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdocuments.readonly
OAUTH_TOKEN_URI: URI token yang Anda peroleh saat Anda membuat kredensial OAuth.
Informasi selengkapnya tentang parameter URI Otorisasi.
Untuk membantu memastikan URI berfungsi dengan benar, verifikasi kolom berikut:
| Parameter | Nilai atau tindakan |
|---|---|
client_id |
Ganti dengan client_id yang ditemukan di JSON yang didownload. |
redirect_uri |
Jangan ubah. Harus berupa
https://vertexaisearch.cloud.google.com/static/oauth/oauth.html. |
scope |
Mencantumkan cakupan Google API
yang diperlukan aplikasi Anda untuk diakses atas nama pengguna. Misalnya, untuk memberikan akses ke BigQuery, gunakan cakupan Jika Anda menggunakan beberapa cakupan, pisahkan
dengan spasi, yang menjadi |
include_granted_scopes |
Harus berupa true. |
response_type |
Harus code untuk menerima kode otorisasi. |
access_type |
Setel ke offline untuk membantu memastikan bahwa Anda menerima token refresh. |
prompt |
Setel ke consent untuk membantu memastikan bahwa pengguna
selalu ditampilkan layar izin. |
Mendaftarkan agen A2A Anda
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. Tentukan salah satu nilai berikut:usuntuk multi-region ASeuuntuk multi-region Uni Eropaglobaluntuk lokasi Global
LOCATION: multi-region penyimpanan data Anda:global,us, ataueuPROJECT_ID: ID project Anda.APP_ID: ID aplikasi yang ingin Anda daftarkan agennya.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. Tentukan salah satu nilai berikut:
usuntuk multi-region ASeuuntuk multi-region Uni Eropaglobaluntuk 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. Tentukan salah satu nilai berikut:
usuntuk multi-region ASeuuntuk multi-region Uni Eropaglobaluntuk 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": "0.3", "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 memperbarui 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. Tentukan salah satu nilai berikut:usuntuk multi-region ASeuuntuk multi-region Uni Eropaglobaluntuk 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 A2A protocol 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. Tentukan salah satu nilai berikut:
usuntuk multi-region ASeuuntuk multi-region Uni Eropaglobaluntuk 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.