AgentCard

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 (AgentInterface)
    }
  ],
  "provider": {
    object (AgentProvider)
  },
  "version": string,
  "documentationUrl": string,
  "capabilities": {
    object (AgentCapabilities)
  },
  "securitySchemes": {
    string: {
      object (SecurityScheme)
    },
    ...
  },
  "security": [
    {
      object (Security)
    }
  ],
  "defaultInputModes": [
    string
  ],
  "defaultOutputModes": [
    string
  ],
  "skills": [
    {
      object (AgentSkill)
    }
  ],
  "supportsAuthenticatedExtendedCard": boolean,
  "signatures": [
    {
      object (AgentCardSignature)
    }
  ],
  "iconUrl": string
}
Champs
protocolVersion

string

Version du protocole A2A compatible avec cet agent.

name

string

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

description

string

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

string

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

string

Transport du point de terminaison préféré. Si ce champ est vide, la valeur par défaut est JSONRPC.

additionalInterfaces[]

object (AgentInterface)

Annonce de transports supplémentaires compatibles. Le client peut utiliser n'importe quel transport compatible.

provider

object (AgentProvider)

Fournisseur de services de l'agent.

version

string

Version de l'agent. Exemple : "1.0.0"

documentationUrl

string

URL permettant de fournir des informations supplémentaires sur l'agent.

capabilities

object (AgentCapabilities)

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

security[]

object (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[]

string

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[]

string

Types MIME acceptés comme sorties de cet agent.

skills[]

object (AgentSkill)

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

boolean

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[]

object (AgentCardSignature)

Signatures Web JSON calculées pour cette AgentCard.

iconUrl

string

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

string

URL de cette interface.

transport

string

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

string

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

string

Exemple d'URL de référence des fournisseurs : "https://ai.google.dev"

organization

string

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

SecurityScheme

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)

httpAuthSecurityScheme

object (HTTPAuthSecurityScheme)

oauth2SecurityScheme

object (OAuth2SecurityScheme)

openIdConnectSecurityScheme

object (OpenIdConnectSecurityScheme)

mtlsSecurityScheme

object (MutualTlsSecurityScheme)

HTTPAuthSecurityScheme

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

string

Description de ce schéma de sécurité.

scheme

string

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

string

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 (OAuthFlows)
  },
  "oauth2MetadataUrl": string
}
Champs
description

string

Description de ce schéma de sécurité.

flows

object (OAuthFlows)

Objet contenant des informations de configuration pour les types de flux acceptés

oauth2MetadataUrl

string

URL des métadonnées du serveur d'autorisation oauth2 RFC8414. TLS est obligatoire.

OAuthFlows

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)
  }
  // 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)

clientCredentials

object (ClientCredentialsOAuthFlow)

implicit

object (ImplicitOAuthFlow)

password

object (PasswordOAuthFlow)

AuthorizationCodeOAuthFlow

Représentation JSON
{
  "authorizationUrl": string,
  "tokenUrl": 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.

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

ClientCredentialsOAuthFlow

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

ImplicitOAuthFlow

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

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

OpenIdConnectSecurityScheme

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

string

Description de ce schéma de sécurité.

openIdConnectUrl

string

URL connue pour découvrir les métadonnées du fournisseur [[OpenID-Connect-Discovery]].

MutualTlsSecurityScheme

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

string

Description de ce schéma de sécurité.

Sécurité

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

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

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

StringList

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED

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

string

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 (Security)
    }
  ]
}
Champs
id

string

Identifiant unique de la compétence au sein de cet agent.

name

string

Nom de la compétence lisible par l'humain.

description

string

Description lisible par un humain (ou un LLM) des détails et des comportements de la compétence.

tags[]

string

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[]

string

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[]

string

Modalités d'entrée possibles acceptées.

outputModes[]

string

Modes de sortie possibles générés

security[]

object (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

string

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

signature

string

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

header

object (Struct format)

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