AgentCard

Manifeste auto-descriptif pour un agent. Il fournit des métadonnées essentielles, y compris l'identité, les capacités, les compétences, les méthodes de communication prises en charge et les exigences de sécurité de l'agent. Identifiant suivant : 20

Représentation 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
}
Champs
name

string

Obligatoire. Nom de l'agent lisible par l'humain. Exemple : "Agent de recettes"

description

string

Obligatoire. Description de l'agent lisible par l'humain, qui aide les utilisateurs et les autres agents à comprendre son objectif. Exemple : "Agent qui aide les utilisateurs avec des recettes et la cuisine."

supportedInterfaces[]

object (AgentInterface)

Obligatoire. Liste ordonnée des interfaces compatibles. La première entrée est privilégiée.

provider

object (AgentProvider)

Fournisseur de services de l'agent.

version

string

Obligatoire. Version de l'agent. Exemple : "1.0.0"

capabilities

object (AgentCapabilities)

Obligatoire. Ensemble de fonctionnalités A2A compatibles avec l'agent.

securitySchemes

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

Informations sur le schéma de sécurité utilisé pour l'authentification auprès de cet agent.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

securityRequirements[]

object (SecurityRequirement)

Exigences de sécurité pour contacter l'agent.

defaultInputModes[]

string

Obligatoire. protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Ensemble des modes d'interaction compatibles avec l'agent pour toutes les compétences. Cette valeur peut être remplacée pour chaque skill. Définis comme des types de contenus.

defaultOutputModes[]

string

Obligatoire. Types de contenus multimédias acceptés en tant que sorties de cet agent.

skills[]

object (AgentSkill)

Obligatoire. Les compétences représentent les capacités d'un agent. Il s'agit en grande partie d'un concept descriptif, mais il représente un ensemble plus ciblé de comportements dans lesquels l'agent est susceptible de réussir.

signatures[]

object (AgentCardSignature)

Signatures Web JSON calculées pour ce AgentCard.

documentationUrl

string

URL fournissant de la documentation supplémentaire sur l'agent.

iconUrl

string

Facultatif. URL d'une icône pour l'agent.

AgentInterface

Déclare une combinaison d'URL cible, de transport et de version de protocole pour interagir avec l'agent. Cela permet aux agents d'exposer les mêmes fonctionnalités sur plusieurs mécanismes de liaison de protocole.

Représentation JSON
{
  "url": string,
  "protocolBinding": string,
  "tenant": string,
  "protocolVersion": string
}
Champs
url

string

Obligatoire. URL où cette interface est disponible. Doit être une URL HTTPS absolue valide en production. Exemple : "https://api.example.com/a2a/v1", "https://grpc.example.com/a2a"

protocolBinding

string

Obligatoire. L'association de protocole acceptée à cette URL. Il s'agit d'une chaîne de formulaire ouverte, qui peut être facilement étendue à d'autres liaisons de protocole. Les principaux officiellement acceptés sont JSONRPC, GRPC et HTTP+JSON.

tenant

string

Facultatif. Chaîne opaque utilisée pour acheminer les requêtes vers un agent ou un locataire spécifique lorsque plusieurs agents sont diffusés derrière un même point de terminaison A2A. Lorsqu'elle est définie, les clients DOIVENT inclure cette valeur dans le champ tenant de tous les messages de requête envoyés à cette interface. Le serveur est responsable de l'interprétation de la valeur et de l'acheminement des requêtes en conséquence. Le protocole ne définit pas son format ni sa sémantique.

protocolVersion

string

Obligatoire. Version du protocole A2A que cette interface expose. Utilisez la dernière version mineure compatible pour chaque version majeure. Exemples : "0.3", "1.0"

AgentProvider

Représente le fournisseur de services d'un agent.

Représentation JSON
{
  "url": string,
  "organization": string
}
Champs
url

string

Obligatoire. URL du site Web du fournisseur de l'agent ou de la documentation pertinente. Exemple : "https://ai.google.dev"

organization

string

Obligatoire. Nom de l'organisation du fournisseur d'agents. Exemple : "Google"

AgentCapabilities

Définit les fonctionnalités facultatives prises en charge par un agent.

Représentation JSON
{
  "extensions": [
    {
      object (AgentExtension)
    }
  ],
  "streaming": boolean,
  "pushNotifications": boolean,
  "extendedAgentCard": boolean
}
Champs
extensions[]

object (AgentExtension)

Liste des extensions de protocole compatibles avec l'agent.

streaming

boolean

Indique si l'agent accepte les réponses en streaming.

pushNotifications

boolean

Indique si l'agent est compatible avec l'envoi de notifications push pour les mises à jour des tâches asynchrones.

extendedAgentCard

boolean

Indique si l'agent peut fournir une fiche d'agent étendue une fois authentifié.

AgentExtension

Déclaration d'une extension de protocole prise en charge par un agent.

Représentation JSON
{
  "uri": string,
  "description": string,
  "required": boolean,
  "params": {
    object
  }
}
Champs
uri

string

URI unique identifiant l'extension.

description

string

Description lisible de la façon dont cet agent utilise l'extension.

required

boolean

Si la valeur est "true", le client doit comprendre et respecter les exigences de l'extension.

params

object (Struct format)

Facultatif. Paramètres de configuration spécifiques à l'extension.

SecurityScheme

Définit un schéma de sécurité pouvant être utilisé pour sécuriser les points de terminaison d'un agent. Il s'agit d'un type d'union discriminé basé sur l'objet de schéma de sécurité OpenAPI 3.2. Voir : https://spec.openapis.org/oas/v3.2.0.html#security-scheme-object

Représentation 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.
}
Champs

Champ d'union scheme.

scheme ne peut être qu'un des éléments suivants :

apiKeySecurityScheme

object (APIKeySecurityScheme)

Authentification basée sur une clé API.

httpAuthSecurityScheme

object (HTTPAuthSecurityScheme)

Authentification HTTP (de base, par jeton, etc.).

oauth2SecurityScheme

object (OAuth2SecurityScheme)

Authentification OAuth 2.0.

openIdConnectSecurityScheme

object (OpenIdConnectSecurityScheme)

Authentification OpenID Connect.

mtlsSecurityScheme

object (MutualTlsSecurityScheme)

Authentification TLS mutuelle.

APIKeySecurityScheme

Définit un schéma de sécurité à l'aide d'une clé API.

Représentation JSON
{
  "description": string,
  "location": string,
  "name": string
}
Champs
description

string

Description facultative du schéma de sécurité.

location

string

Obligatoire. Emplacement de la clé API. Les valeurs valides sont "query", "header" ou "cookie".

name

string

Obligatoire. Nom du paramètre d'en-tête, de requête ou de cookie à utiliser.

HTTPAuthSecurityScheme

Définit un schéma de sécurité à l'aide de l'authentification HTTP.

Représentation JSON
{
  "description": string,
  "scheme": string,
  "bearerFormat": string
}
Champs
description

string

Description facultative du schéma de sécurité.

scheme

string

Obligatoire. Nom du schéma d'authentification HTTP à utiliser dans l'en-tête "Authorization", tel que défini dans la RFC7235 (par exemple, "Bearer"). Cette valeur doit être enregistrée dans le registre des schémas d'authentification de l'IANA.

bearerFormat

string

Indication au client pour identifier le format du jeton du porteur (par exemple, "JWT"). Principalement à des fins de documentation.

OAuth2SecurityScheme

Définit un schéma de sécurité à l'aide d'OAuth 2.0.

Représentation JSON
{
  "description": string,
  "flows": {
    object (OAuthFlows)
  },
  "oauth2MetadataUrl": string
}
Champs
description

string

Description facultative du schéma de sécurité.

flows

object (OAuthFlows)

Obligatoire. Objet contenant des informations de configuration pour les flux OAuth 2.0 compatibles.

oauth2MetadataUrl

string

URL des métadonnées du serveur d'autorisation OAuth2 RFC 8414. TLS est obligatoire.

OAuthFlows

Définit la configuration des flux OAuth 2.0 compatibles.

Représentation 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.
}
Champs

Champ d'union flow.

flow ne peut être qu'un des éléments suivants :

authorizationCode

object (AuthorizationCodeOAuthFlow)

Configuration du flux OAuth avec code d'autorisation.

clientCredentials

object (ClientCredentialsOAuthFlow)

Configuration du flux d'identifiants client OAuth.

implicit
(deprecated)

object (ImplicitOAuthFlow)

Obsolète : utilisez plutôt le code d'autorisation + PKCE.

password
(deprecated)

object (PasswordOAuthFlow)

Obsolète : utilisez le code d'autorisation + PKCE ou le code de l'appareil.

deviceCode

object (DeviceCodeOAuthFlow)

Configuration du flux de code d'appareil OAuth.

AuthorizationCodeOAuthFlow

Définit les détails de configuration du flux avec code d'autorisation OAuth 2.0.

Représentation JSON
{
  "authorizationUrl": string,
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  },
  "pkceRequired": boolean
}
Champs
authorizationUrl

string

Obligatoire. URL d'autorisation à utiliser pour ce flux.

tokenUrl

string

Obligatoire. URL du jeton à utiliser pour ce flux.

refreshUrl

string

URL à utiliser pour obtenir des jetons d'actualisation.

scopes

map (key: string, value: string)

Obligatoire. Champs d'application disponibles pour le schéma de sécurité OAuth2.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

pkceRequired

boolean

Indique si PKCE (RFC 7636) est requis pour ce flux. PKCE doit toujours être utilisé pour les clients publics et est recommandé pour tous les clients.

ClientCredentialsOAuthFlow

Définit les détails de configuration du flux d'identifiants client OAuth 2.0.

Représentation JSON
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Champs
tokenUrl

string

Obligatoire. URL du jeton à utiliser pour ce flux.

refreshUrl

string

URL à utiliser pour obtenir des jetons d'actualisation.

scopes

map (key: string, value: string)

Obligatoire. Champs d'application disponibles pour le schéma de sécurité OAuth2.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ImplicitOAuthFlow

Obsolète : utilisez plutôt le code d'autorisation + PKCE.

Représentation JSON
{
  "authorizationUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Champs
authorizationUrl

string

URL d'autorisation à utiliser pour ce flux. Elle DOIT se présenter sous la forme d'une URL. La norme OAuth2 exige l'utilisation de TLS.

refreshUrl

string

URL à utiliser pour obtenir des jetons d'actualisation. Elle DOIT se présenter sous la forme d'une URL. La norme OAuth2 exige l'utilisation de TLS.

scopes

map (key: string, value: string)

Champs d'application disponibles pour le schéma de sécurité OAuth2. Mappage entre le nom du champ d'application et une brève description. La carte PEUT être vide.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

PasswordOAuthFlow

Obsolète : utilisez le code d'autorisation + PKCE ou le code de l'appareil.

Représentation JSON
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Champs
tokenUrl

string

URL du jeton à utiliser pour ce flux. Elle DOIT se présenter sous la forme d'une URL. La norme OAuth2 exige l'utilisation de TLS.

refreshUrl

string

URL à utiliser pour obtenir des jetons d'actualisation. Elle DOIT se présenter sous la forme d'une URL. La norme OAuth2 exige l'utilisation de TLS.

scopes

map (key: string, value: string)

Champs d'application disponibles pour le schéma de sécurité OAuth2. Mappage entre le nom du champ d'application et une brève description. La carte PEUT être vide.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

DeviceCodeOAuthFlow

Définit les détails de configuration du flux de code d'appareil OAuth 2.0 (RFC 8628). Ce flux est conçu pour les appareils à saisie limitée, tels que les appareils IoT et les outils CLI, où l'utilisateur s'authentifie sur un autre appareil.

Représentation JSON
{
  "deviceAuthorizationUrl": string,
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Champs
deviceAuthorizationUrl

string

Obligatoire. URL du point de terminaison d'autorisation de l'appareil.

tokenUrl

string

Obligatoire. URL du jeton à utiliser pour ce flux.

refreshUrl

string

URL à utiliser pour obtenir des jetons d'actualisation.

scopes

map (key: string, value: string)

Obligatoire. Champs d'application disponibles pour le schéma de sécurité OAuth2.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

OpenIdConnectSecurityScheme

Définit un schéma de sécurité à l'aide d'OpenID Connect.

Représentation JSON
{
  "description": string,
  "openIdConnectUrl": string
}
Champs
description

string

Description facultative du schéma de sécurité.

openIdConnectUrl

string

Obligatoire. L'URL de découverte OpenID Connect pour les métadonnées du fournisseur OIDC.

MutualTlsSecurityScheme

Définit un schéma de sécurité à l'aide de l'authentification mTLS.

Représentation JSON
{
  "description": string
}
Champs
description

string

Description facultative du schéma de sécurité.

SecurityRequirement

Définit les exigences de sécurité pour un agent.

Représentation JSON
{
  "schemes": {
    string: {
      object (StringList)
    },
    ...
  }
}
Champs
schemes

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

Carte des schémas de sécurité aux niveaux d'accès requis.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

StringList

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED A list of strings.

Représentation JSON
{
  "list": [
    string
  ]
}
Champs
list[]

string

Valeurs de chaîne individuelles.

AgentSkill

Représente une capacité ou une fonction distincte qu'un agent peut effectuer.

Représentation JSON
{
  "id": string,
  "name": string,
  "description": string,
  "tags": [
    string
  ],
  "examples": [
    string
  ],
  "inputModes": [
    string
  ],
  "outputModes": [
    string
  ],
  "securityRequirements": [
    {
      object (SecurityRequirement)
    }
  ]
}
Champs
id

string

Obligatoire. Identifiant unique de la compétence de l'agent.

name

string

Obligatoire. Nom lisible de la compétence.

description

string

Obligatoire. Description détaillée de la compétence.

tags[]

string

Obligatoire. Ensemble de mots clés décrivant les capacités de la compétence.

examples[]

string

Exemples de requêtes ou de scénarios que cette compétence peut traiter.

inputModes[]

string

Ensemble des types de supports d'entrée acceptés pour cette compétence, qui remplacent les valeurs par défaut de l'agent.

outputModes[]

string

Ensemble des types de supports de sortie acceptés pour cette compétence, qui remplacent les valeurs par défaut de l'agent.

securityRequirements[]

object (SecurityRequirement)

Schémas de sécurité nécessaires pour cette skill.

AgentCardSignature

AgentCardSignature représente une signature JWS d'une AgentCard. Il s'agit du format JSON d'une signature Web JSON (JWS) RFC 7515.

Représentation JSON
{
  "protected": string,
  "signature": string,
  "header": {
    object
  }
}
Champs
protected

string

Obligatoire. Obligatoire. En-tête JWS protégé pour la signature. Il s'agit toujours d'un objet JSON encodé en base64url.

signature

string

Obligatoire. Signature calculée, encodée en base64url.

header

object (Struct format)

Valeurs d'en-tête JWS non protégées.