- Représentation JSON
- AgentInterface
- AgentProvider
- SecurityScheme
- HTTPAuthSecurityScheme
- OAuth2SecurityScheme
- OAuthFlows
- AuthorizationCodeOAuthFlow
- ClientCredentialsOAuthFlow
- ImplicitOAuthFlow
- PasswordOAuthFlow
- OpenIdConnectSecurityScheme
- MutualTlsSecurityScheme
- Sécurité
- StringList
- AgentSkill
- AgentCardSignature
La carte d'agent fournit des informations clés : - Informations générales (version, nom, description, utilisations) - Compétences : ensemble d'actions/solutions que l'agent peut effectuer - Modalités/types de contenu par défaut pris en charge par l'agent. - Conditions requises pour l'authentification. Identifiant suivant : 19
| Représentation JSON |
|---|
{ "protocolVersion": string, "name": string, "description": string, "url": string, "preferredTransport": string, "additionalInterfaces": [ { object ( |
| Champs | |
|---|---|
protocolVersion |
Version du protocole A2A compatible avec cet agent. |
name |
Nom d'agent lisible par l'humain. Exemple : "Agent de recettes" |
description |
Description du domaine d'action/de l'espace de solution de l'agent. Exemple : "Agent qui aide les utilisateurs avec les recettes et la cuisine." |
url |
URL de l'adresse à laquelle l'agent est hébergé. Il s'agit du point de terminaison préféré déclaré par l'agent. |
preferredTransport |
Transport du point de terminaison préféré. Si ce champ est vide, la valeur par défaut est JSONRPC. |
additionalInterfaces[] |
Annonce de transports supplémentaires compatibles. Le client peut utiliser n'importe quel transport compatible. |
provider |
Fournisseur de services de l'agent. |
version |
Version de l'agent. Exemple : "1.0.0" |
documentationUrl |
URL permettant de fournir des informations supplémentaires sur l'agent. |
capabilities |
Ensemble de fonctionnalités A2A compatibles avec l'agent. |
securitySchemes |
Informations sur le schéma de sécurité utilisé pour l'authentification auprès de cet agent. Objet contenant une liste de paires |
security[] |
protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Exigences de sécurité pour contacter l'agent. Cette liste peut être considérée comme un "OU" de "ET". Chaque objet de la liste décrit un ensemble possible d'exigences de sécurité qui doivent être présentes dans une requête. Cela permet de spécifier, par exemple, que les appelants doivent utiliser OAuth OU une clé API ET mTLS. Exemple : security { schemes { key: "oauth" value { list: ["read"] } } } security { schemes { key: "api-key" } schemes { key: "mtls" } } |
defaultInputModes[] |
protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Ensemble des modes d'interaction pris en charge par l'agent pour toutes les compétences. Cette valeur peut être remplacée pour chaque skill. Définis comme des types MIME. |
defaultOutputModes[] |
Types MIME acceptés comme sorties de cet agent. |
skills[] |
Les compétences représentent une capacité qu'un agent peut effectuer. Cela peut sembler un peu abstrait, mais cela représente un ensemble d'actions plus ciblées que l'agent est très susceptible de réussir. |
supportsAuthenticatedExtendedCard |
Indique si l'agent est compatible avec la fourniture d'une fiche d'agent étendue lorsque l'utilisateur est authentifié, c'est-à-dire si la fiche de .well-known est différente de celle de v1.getCard. |
signatures[] |
Signatures Web JSON calculées pour cette AgentCard. |
iconUrl |
URL facultative vers une icône pour l'agent. |
AgentInterface
Définit des informations de transport supplémentaires pour l'agent.
| Représentation JSON |
|---|
{ "url": string, "transport": string, "tenant": string } |
| Champs | |
|---|---|
url |
URL de cette interface. |
transport |
Le transport était compatible avec cette URL. Il s'agit d'une chaîne de formulaire ouvert, facilement extensible pour de nombreux protocoles de transport. Les principaux officiellement compatibles sont JSONRPC, GRPC et HTTP+JSON. |
tenant |
Locataire à définir dans la requête lors de l'appel de l'agent. Expérimental, peut encore changer pour la version 1.0. |
AgentProvider
Représente des informations sur le fournisseur de services d'un agent.
| Représentation JSON |
|---|
{ "url": string, "organization": string } |
| Champs | |
|---|---|
url |
Exemple d'URL de référence des fournisseurs : "https://ai.google.dev" |
organization |
Nom de l'organisation du fournisseur. Exemple : "Google" |
SecurityScheme
| Représentation JSON |
|---|
{ // Union field |
| Champs | |
|---|---|
Champ d'union
|
|
apiKeySecurityScheme |
|
httpAuthSecurityScheme |
|
oauth2SecurityScheme |
|
openIdConnectSecurityScheme |
|
mtlsSecurityScheme |
|
HTTPAuthSecurityScheme
| Représentation JSON |
|---|
{ "description": string, "scheme": string, "bearerFormat": string } |
| Champs | |
|---|---|
description |
Description de ce schéma de sécurité. |
scheme |
Nom du schéma d'authentification HTTP à utiliser dans l'en-tête d'autorisation, tel que défini dans la RFC7235. Les valeurs utilisées DOIVENT être enregistrées dans le registre des schémas d'authentification de l'IANA. La valeur n'est pas sensible à la casse, comme défini dans la RFC7235. |
bearerFormat |
Indication au client pour identifier le format du jeton du porteur. Les jetons du porteur sont généralement générés par un serveur d'autorisation. Ces informations sont donc principalement fournies à des fins de documentation. |
OAuth2SecurityScheme
| Représentation JSON |
|---|
{
"description": string,
"flows": {
object ( |
| Champs | |
|---|---|
description |
Description de ce schéma de sécurité. |
flows |
Objet contenant des informations de configuration pour les types de flux acceptés |
oauth2MetadataUrl |
URL des métadonnées du serveur d'autorisation oauth2 RFC8414. TLS est obligatoire. |
OAuthFlows
| Représentation JSON |
|---|
{ // Union field |
| Champs | |
|---|---|
Champ d'union
|
|
authorizationCode |
|
clientCredentials |
|
implicit |
|
password |
|
AuthorizationCodeOAuthFlow
| Représentation JSON |
|---|
{ "authorizationUrl": string, "tokenUrl": string, "refreshUrl": string, "scopes": { string: string, ... } } |
| Champs | |
|---|---|
authorizationUrl |
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. |
tokenUrl |
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 |
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 |
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 |
ClientCredentialsOAuthFlow
| Représentation JSON |
|---|
{ "tokenUrl": string, "refreshUrl": string, "scopes": { string: string, ... } } |
| Champs | |
|---|---|
tokenUrl |
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 |
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 |
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 |
ImplicitOAuthFlow
| Représentation JSON |
|---|
{ "authorizationUrl": string, "refreshUrl": string, "scopes": { string: string, ... } } |
| Champs | |
|---|---|
authorizationUrl |
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 |
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 |
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 |
PasswordOAuthFlow
| Représentation JSON |
|---|
{ "tokenUrl": string, "refreshUrl": string, "scopes": { string: string, ... } } |
| Champs | |
|---|---|
tokenUrl |
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 |
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 |
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 |
OpenIdConnectSecurityScheme
| Représentation JSON |
|---|
{ "description": string, "openIdConnectUrl": string } |
| Champs | |
|---|---|
description |
Description de ce schéma de sécurité. |
openIdConnectUrl |
URL connue pour découvrir les métadonnées du fournisseur [[OpenID-Connect-Discovery]]. |
MutualTlsSecurityScheme
| Représentation JSON |
|---|
{ "description": string } |
| Champs | |
|---|---|
description |
Description de ce schéma de sécurité. |
Sécurité
| Représentation JSON |
|---|
{
"schemes": {
string: {
object ( |
| Champs | |
|---|---|
schemes |
Objet contenant une liste de paires |
StringList
protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
| Représentation JSON |
|---|
{ "list": [ string ] } |
| Champs | |
|---|---|
list[] |
|
AgentSkill
AgentSkill représente une unité d'action/solution que l'agent peut effectuer. Il s'agit d'un type de solution très fiable qu'un agent peut être chargé de fournir. Les agents ont l'autonomie nécessaire pour choisir comment et quand utiliser des compétences spécifiques, mais les clients doivent avoir l'assurance que si la compétence est définie, cette unité d'action peut être effectuée de manière fiable.
| Représentation JSON |
|---|
{
"id": string,
"name": string,
"description": string,
"tags": [
string
],
"examples": [
string
],
"inputModes": [
string
],
"outputModes": [
string
],
"security": [
{
object ( |
| Champs | |
|---|---|
id |
Identifiant unique de la compétence au sein de cet agent. |
name |
Nom de la compétence lisible par l'humain. |
description |
Description lisible par un humain (ou un LLM) des détails et des comportements de la compétence. |
tags[] |
Ensemble de tags permettant d'améliorer la catégorisation/l'utilisation de la skill. Exemple : ["cooking", "customer support", "billing"] ("cuisine", "service client", "facturation") |
examples[] |
Ensemble d'exemples de requêtes auxquelles cette skill est conçue pour répondre. Ces exemples devraient aider l'appelant à comprendre comment formuler des requêtes à l'agent pour atteindre des objectifs spécifiques. Exemple : ["J'ai besoin d'une recette de pain"] |
inputModes[] |
Modalités d'entrée possibles acceptées. |
outputModes[] |
Modes de sortie possibles générés |
security[] |
protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Schémas de sécurité nécessaires pour que l'agent puisse utiliser cette compétence. Comme dans AgentCard.security global, cette liste représente un OR logique des objets d'exigences de sécurité. Chaque objet est un ensemble de schémas de sécurité qui doivent être utilisés ensemble (un AND logique). protolint:enable REPEATED_FIELD_NAMES_PLURALIZED |
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 |
Obligatoire. En-tête JWS protégé pour la signature. Il s'agit toujours d'un objet JSON encodé en base64url. Obligatoire. |
signature |
Obligatoire. Signature calculée, encodée en base64url. Obligatoire. |
header |
Valeurs d'en-tête JWS non protégées. |