Mendaftarkan dan mengelola agen A2A

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.

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

  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 Web application.

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

  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:

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 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 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=consent
  • OAUTH_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:

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

    Gemini Enterprise

  2. Klik nama aplikasi yang ingin Anda daftarkan agennya.

  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": "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. Klik Pratinjau detail agen > Berikutnya.

  7. Selesaikan penyiapan menggunakan salah satu metode berikut:

    • Jika Anda ingin agen mengakses Google Cloud resource 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 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 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 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/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. Tetapkan 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. Tetapkan 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": "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"
      ]
    }
    
  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 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 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 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.

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