AgentCard

Manifes yang menjelaskan dirinya sendiri untuk agen. Deskripsi ini menyediakan metadata penting, termasuk identitas, kemampuan, keterampilan, metode komunikasi yang didukung, dan persyaratan keamanan agen. ID Berikutnya: 20

Representasi JSON
{
  "name": string,
  "description": string,
  "supportedInterfaces": [
    {
      object (AgentInterface)
    }
  ],
  "provider": {
    object (AgentProvider)
  },
  "version": string,
  "capabilities": {
    object (AgentCapabilities)
  },
  "securitySchemes": {
    string: {
      object (SecurityScheme)
    },
    ...
  },
  "securityRequirements": [
    {
      object (SecurityRequirement)
    }
  ],
  "defaultInputModes": [
    string
  ],
  "defaultOutputModes": [
    string
  ],
  "skills": [
    {
      object (AgentSkill)
    }
  ],
  "signatures": [
    {
      object (AgentCardSignature)
    }
  ],
  "documentationUrl": string,
  "iconUrl": string
}
Kolom
name

string

Wajib. Nama agen yang dapat dibaca manusia. Contoh: "Recipe Agent"

description

string

Wajib. Deskripsi agen yang dapat dibaca manusia, membantu pengguna dan agen lain memahami tujuannya. Contoh: "Agen yang membantu pengguna dengan resep dan memasak".

supportedInterfaces[]

object (AgentInterface)

Wajib. Daftar antarmuka yang didukung dan diurutkan. Entri pertama lebih disukai.

provider

object (AgentProvider)

Penyedia layanan agen.

version

string

Wajib. Versi agen. Contoh: "1.0.0"

capabilities

object (AgentCapabilities)

Wajib. Set Kemampuan A2A yang didukung oleh agen.

securitySchemes

map (key: string, value: object (SecurityScheme))

Detail skema keamanan yang digunakan untuk mengautentikasi dengan agen ini.

Objek yang berisi daftar pasangan "key": value. Contoh: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

securityRequirements[]

object (SecurityRequirement)

Persyaratan keamanan untuk menghubungi agen.

defaultInputModes[]

string

Wajib. protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Kumpulan mode interaksi yang didukung agen di semua skill. Setelan ini dapat diganti per skill. Ditentukan sebagai jenis media.

defaultOutputModes[]

string

Wajib. Jenis media yang didukung sebagai output dari agen ini.

skills[]

object (AgentSkill)

Wajib. Keterampilan mewakili kemampuan agen. Konsep ini sebagian besar bersifat deskriptif, tetapi merepresentasikan serangkaian perilaku yang lebih terfokus yang kemungkinan akan berhasil dilakukan oleh agen.

signatures[]

object (AgentCardSignature)

Tanda Tangan Web JSON yang dihitung untuk AgentCard ini.

documentationUrl

string

URL yang menyediakan dokumentasi tambahan tentang agen.

iconUrl

string

Opsional. URL ke ikon untuk agen.

AgentInterface

Mendeklarasikan kombinasi URL target, transpor, dan versi protokol untuk berinteraksi dengan agen. Hal ini memungkinkan agen mengekspos fungsi yang sama melalui beberapa mekanisme pengikatan protokol.

Representasi JSON
{
  "url": string,
  "protocolBinding": string,
  "tenant": string,
  "protocolVersion": string
}
Kolom
url

string

Wajib. URL tempat antarmuka ini tersedia. Harus berupa URL HTTPS absolut yang valid dalam produksi. Contoh: "https://api.example.com/a2a/v1", "https://grpc.example.com/a2a"

protocolBinding

string

Wajib. Binding protokol yang didukung di URL ini. Ini adalah string formulir terbuka, yang dapat dengan mudah diperluas untuk binding protokol lainnya. Plugin inti yang didukung secara resmi adalah JSONRPC, GRPC, dan HTTP+JSON.

tenant

string

Opsional. String buram yang digunakan untuk merutekan permintaan ke agen atau tenant tertentu saat beberapa agen ditayangkan di belakang satu endpoint A2A. Jika disetel, klien HARUS menyertakan nilai ini di kolom tenant dari semua pesan permintaan yang dikirim ke antarmuka ini. Server bertanggung jawab untuk menafsirkan nilai dan merutekan permintaan yang sesuai; protokol tidak menentukan format atau semantiknya.

protocolVersion

string

Wajib. Versi A2A protocol yang diekspos oleh antarmuka ini. Gunakan versi minor terbaru yang didukung per versi utama. Contoh: "0.3", "1.0"

AgentProvider

Mewakili penyedia layanan agen.

Representasi JSON
{
  "url": string,
  "organization": string
}
Kolom
url

string

Wajib. URL untuk situs penyedia agen atau dokumentasi yang relevan. Contoh: "https://ai.google.dev"

organization

string

Wajib. Nama organisasi penyedia agen. Contoh: "Google"

AgentCapabilities

Menentukan kemampuan opsional yang didukung oleh agen.

Representasi JSON
{
  "extensions": [
    {
      object (AgentExtension)
    }
  ],
  "streaming": boolean,
  "pushNotifications": boolean,
  "extendedAgentCard": boolean
}
Kolom
extensions[]

object (AgentExtension)

Daftar ekstensi protokol yang didukung oleh agen.

streaming

boolean

Menunjukkan apakah agen mendukung respons streaming.

pushNotifications

boolean

Menunjukkan apakah agen mendukung pengiriman notifikasi push untuk info terbaru tugas asinkron.

extendedAgentCard

boolean

Menunjukkan apakah agen mendukung penyediaan kartu agen yang diperluas saat diautentikasi.

AgentExtension

Pernyataan ekstensi protokol yang didukung oleh Agen.

Representasi JSON
{
  "uri": string,
  "description": string,
  "required": boolean,
  "params": {
    object
  }
}
Kolom
uri

string

URI unik yang mengidentifikasi ekstensi.

description

string

Deskripsi yang dapat dibaca manusia tentang cara agen ini menggunakan ekstensi.

required

boolean

Jika benar, klien harus memahami dan mematuhi persyaratan ekstensi.

params

object (Struct format)

Opsional. Parameter konfigurasi khusus ekstensi.

SecurityScheme

Menentukan skema keamanan yang dapat digunakan untuk mengamankan endpoint agen. Ini adalah jenis gabungan yang dibedakan berdasarkan Objek Skema Keamanan OpenAPI 3.2. Lihat: https://spec.openapis.org/oas/v3.2.0.html#security-scheme-object

Representasi JSON
{

  // Union field scheme can be only one of the following:
  "apiKeySecurityScheme": {
    object (APIKeySecurityScheme)
  },
  "httpAuthSecurityScheme": {
    object (HTTPAuthSecurityScheme)
  },
  "oauth2SecurityScheme": {
    object (OAuth2SecurityScheme)
  },
  "openIdConnectSecurityScheme": {
    object (OpenIdConnectSecurityScheme)
  },
  "mtlsSecurityScheme": {
    object (MutualTlsSecurityScheme)
  }
  // End of list of possible types for union field scheme.
}
Kolom

Kolom union scheme.

scheme hanya dapat berupa salah satu dari hal berikut:

apiKeySecurityScheme

object (APIKeySecurityScheme)

Autentikasi berbasis kunci API.

httpAuthSecurityScheme

object (HTTPAuthSecurityScheme)

Autentikasi HTTP (Dasar, Pemilik, dll.).

oauth2SecurityScheme

object (OAuth2SecurityScheme)

Autentikasi OAuth 2.0.

openIdConnectSecurityScheme

object (OpenIdConnectSecurityScheme)

Autentikasi OpenID Connect.

mtlsSecurityScheme

object (MutualTlsSecurityScheme)

Autentikasi TLS bersama.

APIKeySecurityScheme

Menentukan skema keamanan menggunakan kunci API.

Representasi JSON
{
  "description": string,
  "location": string,
  "name": string
}
Kolom
description

string

Deskripsi opsional untuk skema keamanan.

location

string

Wajib. Lokasi kunci API. Nilai yang valid adalah "query", "header", atau "cookie".

name

string

Wajib. Nama parameter header, kueri, atau cookie yang akan digunakan.

HTTPAuthSecurityScheme

Menentukan skema keamanan menggunakan autentikasi HTTP.

Representasi JSON
{
  "description": string,
  "scheme": string,
  "bearerFormat": string
}
Kolom
description

string

Deskripsi opsional untuk skema keamanan.

scheme

string

Wajib. Nama skema Autentikasi HTTP yang akan digunakan di header Authorization, seperti yang ditentukan dalam RFC7235 (misalnya, "Bearer"). Nilai ini harus didaftarkan dalam registry Skema Autentikasi IANA.

bearerFormat

string

Petunjuk kepada klien untuk mengidentifikasi cara token pembawa diformat (misalnya, "JWT"). Terutama untuk tujuan dokumentasi.

OAuth2SecurityScheme

Menentukan skema keamanan menggunakan OAuth 2.0.

Representasi JSON
{
  "description": string,
  "flows": {
    object (OAuthFlows)
  },
  "oauth2MetadataUrl": string
}
Kolom
description

string

Deskripsi opsional untuk skema keamanan.

flows

object (OAuthFlows)

Wajib. Objek yang berisi informasi konfigurasi untuk alur OAuth 2.0 yang didukung.

oauth2MetadataUrl

string

URL ke metadata server otorisasi OAuth2 RFC 8414. TLS diperlukan.

OAuthFlows

Menentukan konfigurasi untuk alur OAuth 2.0 yang didukung.

Representasi JSON
{

  // Union field flow can be only one of the following:
  "authorizationCode": {
    object (AuthorizationCodeOAuthFlow)
  },
  "clientCredentials": {
    object (ClientCredentialsOAuthFlow)
  },
  "implicit": {
    object (ImplicitOAuthFlow)
  },
  "password": {
    object (PasswordOAuthFlow)
  },
  "deviceCode": {
    object (DeviceCodeOAuthFlow)
  }
  // End of list of possible types for union field flow.
}
Kolom

Kolom union flow.

flow hanya dapat berupa salah satu dari hal berikut:

authorizationCode

object (AuthorizationCodeOAuthFlow)

Konfigurasi untuk alur Kode Otorisasi OAuth.

clientCredentials

object (ClientCredentialsOAuthFlow)

Konfigurasi untuk alur Kredensial Klien OAuth.

implicit
(deprecated)

object (ImplicitOAuthFlow)

Tidak digunakan lagi: Gunakan Kode Otorisasi + PKCE sebagai gantinya.

password
(deprecated)

object (PasswordOAuthFlow)

Tidak digunakan lagi: Gunakan Kode Otorisasi + PKCE atau Kode Perangkat.

deviceCode

object (DeviceCodeOAuthFlow)

Konfigurasi untuk alur Kode Perangkat OAuth.

AuthorizationCodeOAuthFlow

Menentukan detail konfigurasi untuk alur Kode Otorisasi OAuth 2.0.

Representasi JSON
{
  "authorizationUrl": string,
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  },
  "pkceRequired": boolean
}
Kolom
authorizationUrl

string

Wajib. URL otorisasi yang akan digunakan untuk alur ini.

tokenUrl

string

Wajib. URL token yang akan digunakan untuk alur ini.

refreshUrl

string

URL yang akan digunakan untuk mendapatkan token refresh.

scopes

map (key: string, value: string)

Wajib. Cakupan yang tersedia untuk skema keamanan OAuth2.

Objek yang berisi daftar pasangan "key": value. Contoh: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

pkceRequired

boolean

Menunjukkan apakah PKCE (RFC 7636) diperlukan untuk alur ini. PKCE harus selalu digunakan untuk klien publik dan direkomendasikan untuk semua klien.

ClientCredentialsOAuthFlow

Menentukan detail konfigurasi untuk alur Kredensial Klien OAuth 2.0.

Representasi JSON
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Kolom
tokenUrl

string

Wajib. URL token yang akan digunakan untuk alur ini.

refreshUrl

string

URL yang akan digunakan untuk mendapatkan token refresh.

scopes

map (key: string, value: string)

Wajib. Cakupan yang tersedia untuk skema keamanan OAuth2.

Objek yang berisi daftar pasangan "key": value. Contoh: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ImplicitOAuthFlow

Tidak digunakan lagi: Gunakan Kode Otorisasi + PKCE sebagai gantinya.

Representasi JSON
{
  "authorizationUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Kolom
authorizationUrl

string

URL otorisasi yang akan digunakan untuk alur ini. Nilai ini HARUS dalam bentuk URL. Standar OAuth2 mewajibkan penggunaan TLS

refreshUrl

string

URL yang akan digunakan untuk mendapatkan token refresh. Nilai ini HARUS dalam bentuk URL. Standar OAuth2 memerlukan penggunaan TLS.

scopes

map (key: string, value: string)

Cakupan yang tersedia untuk skema keamanan OAuth2. Peta antara nama cakupan dan deskripsi singkat untuk cakupan tersebut. Peta MUNGKIN kosong.

Objek yang berisi daftar pasangan "key": value. Contoh: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

PasswordOAuthFlow

Tidak digunakan lagi: Gunakan Kode Otorisasi + PKCE atau Kode Perangkat.

Representasi JSON
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Kolom
tokenUrl

string

URL token yang akan digunakan untuk alur ini. Nilai ini HARUS dalam bentuk URL. Standar OAuth2 memerlukan penggunaan TLS.

refreshUrl

string

URL yang akan digunakan untuk mendapatkan token refresh. Nilai ini HARUS dalam bentuk URL. Standar OAuth2 memerlukan penggunaan TLS.

scopes

map (key: string, value: string)

Cakupan yang tersedia untuk skema keamanan OAuth2. Peta antara nama cakupan dan deskripsi singkat untuk cakupan tersebut. Peta MUNGKIN kosong.

Objek yang berisi daftar pasangan "key": value. Contoh: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

DeviceCodeOAuthFlow

Menentukan detail konfigurasi untuk alur Kode Perangkat OAuth 2.0 (RFC 8628). Alur ini dirancang untuk perangkat dengan batasan input seperti perangkat IoT, dan alat CLI tempat pengguna melakukan autentikasi di perangkat terpisah.

Representasi JSON
{
  "deviceAuthorizationUrl": string,
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Kolom
deviceAuthorizationUrl

string

Wajib. URL endpoint otorisasi perangkat.

tokenUrl

string

Wajib. URL token yang akan digunakan untuk alur ini.

refreshUrl

string

URL yang akan digunakan untuk mendapatkan token refresh.

scopes

map (key: string, value: string)

Wajib. Cakupan yang tersedia untuk skema keamanan OAuth2.

Objek yang berisi daftar pasangan "key": value. Contoh: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

OpenIdConnectSecurityScheme

Menentukan skema keamanan menggunakan OpenID Connect.

Representasi JSON
{
  "description": string,
  "openIdConnectUrl": string
}
Kolom
description

string

Deskripsi opsional untuk skema keamanan.

openIdConnectUrl

string

Wajib. URL Discovery OpenID Connect untuk metadata provider OIDC.

MutualTlsSecurityScheme

Mendefinisikan skema keamanan menggunakan autentikasi mTLS.

Representasi JSON
{
  "description": string
}
Kolom
description

string

Deskripsi opsional untuk skema keamanan.

SecurityRequirement

Menentukan persyaratan keamanan untuk agen.

Representasi JSON
{
  "schemes": {
    string: {
      object (StringList)
    },
    ...
  }
}
Kolom
schemes

map (key: string, value: object (StringList))

Peta skema keamanan ke cakupan yang diperlukan.

Objek yang berisi daftar pasangan "key": value. Contoh: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

StringList

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Daftar string.

Representasi JSON
{
  "list": [
    string
  ]
}
Kolom
list[]

string

Nilai string individual.

AgentSkill

Mewakili kemampuan atau fungsi berbeda yang dapat dilakukan agen.

Representasi JSON
{
  "id": string,
  "name": string,
  "description": string,
  "tags": [
    string
  ],
  "examples": [
    string
  ],
  "inputModes": [
    string
  ],
  "outputModes": [
    string
  ],
  "securityRequirements": [
    {
      object (SecurityRequirement)
    }
  ]
}
Kolom
id

string

Wajib. ID unik untuk kemampuan agen.

name

string

Wajib. Nama yang dapat dibaca manusia untuk keahlian.

description

string

Wajib. Deskripsi mendetail tentang skill.

tags[]

string

Wajib. Sekumpulan kata kunci yang menjelaskan kemampuan skill.

examples[]

string

Contoh perintah atau skenario yang dapat ditangani oleh kemampuan ini.

inputModes[]

string

Kumpulan jenis media input yang didukung untuk skill ini, yang menggantikan default agen.

outputModes[]

string

Kumpulan jenis media output yang didukung untuk skill ini, yang menggantikan default agen.

securityRequirements[]

object (SecurityRequirement)

Skema keamanan yang diperlukan untuk keterampilan ini.

AgentCardSignature

AgentCardSignature merepresentasikan tanda tangan JWS dari AgentCard. Bagian ini mengikuti format JSON dari JSON Web Signature (JWS) RFC 7515.

Representasi JSON
{
  "protected": string,
  "signature": string,
  "header": {
    object
  }
}
Kolom
protected

string

Wajib. Wajib. Header JWS yang dilindungi untuk tanda tangan. Ini selalu berupa objek JSON yang dienkode base64url.

signature

string

Wajib. Tanda tangan yang dihitung, dienkode base64url.

header

object (Struct format)

Nilai header JWS yang tidak dilindungi.