Mendaftarkan dan mengelola agen A2A

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.

    Buka 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/a2av0 untuk Go atau paket a2a.compat.v0_3 untuk 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.

  1. Di konsol Google Cloud , pada halaman APIs & Services, buka halaman Credentials.

    Buka Kredensial

  2. 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.

  3. Klik Buat kredensial, lalu pilih ID klien OAuth.

  4. Di Application type, pilih aplikasi web.

  5. Di bagian URI pengalihan yang diberi otorisasi, tambahkan URI berikut:

    • https://vertexaisearch.cloud.google.com/oauth-redirect
    • https://vertexaisearch.cloud.google.com/static/oauth/oauth.html
  6. Klik Create.

  7. Di panel OAuth client created, klik Download JSON. JSON yang didownload mencakup Client ID, Authorization URI, Token URI, dan Client secret untuk 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:

  1. Di konsol Google Cloud , buka halaman Gemini Enterprise.

    Gemini Enterprise

  2. Klik nama aplikasi yang ingin Anda gunakan untuk mendaftarkan agen.

  3. Klik Agents > Add Agents.

  4. Di bagian Choose an agent type, klik Add untuk Custom agent via A2A.

  5. 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"
      ]
    }
    
  6. Klik Preview agent details > Next.

  7. Selesaikan penyiapan menggunakan salah satu metode berikut:

    • Jika Anda ingin agen mengakses resource Google Cloud atas nama Anda, ikuti langkah-langkah berikut:

      1. Masukkan Client ID, Client secret, Authorization URI, dan Token URI yang Anda buat di bagian Mendapatkan detail otorisasi.

      2. Masukkan Cakupan.

      3. 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:
    • us untuk multi-region AS
    • eu untuk multi-region Uni Eropa
    • global untuk lokasi Global
    Untuk mengetahui informasi selengkapnya, lihat Menentukan multi-region untuk penyimpanan data Anda.
  • LOCATION: multi-region penyimpanan data Anda: global, us, atau eu
  • AUTH_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 https://www.googleapis.com/auth/bigquery dan untuk akses hanya baca ke Google Dokumen, gunakan https://www.googleapis.com/auth/documents.readonly.

Jika Anda menggunakan beberapa cakupan, pisahkan dengan spasi, yang menjadi %20 di URL.

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:
    • us untuk multi-region AS
    • eu untuk multi-region Uni Eropa
    • global untuk lokasi Global
    Untuk mengetahui informasi selengkapnya, lihat Menentukan multi-region untuk penyimpanan data Anda.
  • LOCATION: multi-region penyimpanan data Anda: global, us, atau eu
  • PROJECT_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/json atau text/plain.
  • OUTPUT_MODE: jenis media output default. Misalnya, text/plain" atau image/png.
  • CAPABILITIES: objek JSON yang berisi fitur A2A yang didukung. Misalnya \"streaming\": true atau \"pushNotifications\": false.
  • SKILLS: daftar objek AgentSkill yang ditawarkan agen.
  • authorizationConfig: Jika Anda mendapatkan detail otorisasi dan ingin agen mengakses resource Google Cloud atas nama pengguna, tambahkan kolom authorization_config ke resource JSON Anda.

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:
    • us untuk multi-region AS
    • eu untuk multi-region Uni Eropa
    • global untuk lokasi Global
    Untuk mengetahui informasi selengkapnya, lihat Menentukan multi-region untuk penyimpanan data Anda.
  • PROJECT_ID: ID Google Cloud project Anda.
  • LOCATION: multi-region aplikasi Anda: global, us, atau eu.
  • 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:
    • us untuk multi-region AS
    • eu untuk multi-region Uni Eropa
    • global untuk lokasi Global
    Untuk mengetahui informasi selengkapnya, lihat Menentukan multi-region untuk penyimpanan data Anda.
  • PROJECT_ID: ID Google Cloud project Anda.
  • LOCATION: multi-region aplikasi Anda: global, us, atau eu.
  • 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:

  1. Di konsol Google Cloud , buka halaman Gemini Enterprise.

    Gemini Enterprise

  2. Klik nama aplikasi yang menyertakan agen yang ingin Anda perbarui.

  3. Klik Agen.

  4. Klik nama agen A2A (Kustom) yang akan diperbarui, lalu klik Edit.

  5. 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"
      ]
    }
    
  6. 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:
    • us untuk multi-region AS
    • eu untuk multi-region Uni Eropa
    • global untuk lokasi Global
    Untuk mengetahui informasi selengkapnya, lihat Menentukan multi-region untuk penyimpanan data Anda.
  • LOCATION: multi-region penyimpanan data Anda: global, us, atau eu.
  • 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/json atau text/plain.
  • OUTPUT_MODE: jenis media output default. Misalnya, text/plain atau image/png.
  • CAPABILITIES: objek JSON yang berisi fitur A2A yang didukung. Misalnya \"streaming\": true atau \"pushNotifications\": false.
  • SKILLS: daftar objek AgentSkill yang ditawarkan agen.
  • authorizationConfig: Jika Anda mendapatkan detail otorisasi dan ingin agen mengakses resource Google Cloud atas nama pengguna, tambahkan kolom authorization_config ke resource JSON Anda.

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:
    • us untuk multi-region AS
    • eu untuk multi-region Uni Eropa
    • global untuk lokasi Global
    Untuk mengetahui informasi selengkapnya, lihat Menentukan multi-region untuk penyimpanan data Anda.
  • PROJECT_ID: ID Google Cloud project Anda.
  • LOCATION: multi-region aplikasi Anda: global, us, atau eu
  • 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.