AgentCard

La fiche 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 de l'agent lisible par l'humain. Exemple : "Agent de recettes"

description

string

Description du domaine d'action/de l'espace de solutions de l'agent. Exemple : "Agent qui aide les utilisateurs avec des 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 capacité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 L'ensemble des modes d'interaction que l'agent prend en charge 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 unité de capacité qu'un agent peut effectuer. Cela peut être un peu abstrait, mais 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

Transport 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 "Authorization", 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 compatibles

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. Optimized translation here. La norme OAuth2 exige l'utilisation de TLS.

tokenUrl

string

URL du jeton à utiliser pour ce flux. Optimized translation here. La norme OAuth2 exige l'utilisation de TLS.

refreshUrl

string

URL à utiliser pour obtenir des jetons d'actualisation. Optimized translation here. La norme OAuth2 exige l'utilisation de TLS.

scopes

map (key: string, value: string)

Niveaux d'accès disponibles pour le schéma de sécurité OAuth2. Il s'agit d'un mappage entre le nom du niveau d'accès et une brève description. Le mappage 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. Optimized translation here. La norme OAuth2 exige l'utilisation de TLS.

refreshUrl

string

URL à utiliser pour obtenir des jetons d'actualisation. Optimized translation here. La norme OAuth2 exige l'utilisation de TLS.

scopes

map (key: string, value: string)

Niveaux d'accès disponibles pour le schéma de sécurité OAuth2. Il s'agit d'un mappage entre le nom du niveau d'accès et une brève description. Le mappage 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. Optimized translation here. La norme OAuth2 exige l'utilisation de TLS.

refreshUrl

string

URL à utiliser pour obtenir des jetons d'actualisation. Optimized translation here. La norme OAuth2 exige l'utilisation de TLS.

scopes

map (key: string, value: string)

Niveaux d'accès disponibles pour le schéma de sécurité OAuth2. Il s'agit d'un mappage entre le nom du niveau d'accès et une brève description. Le mappage 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. Optimized translation here. La norme OAuth2 exige l'utilisation de TLS.

refreshUrl

string

URL à utiliser pour obtenir des jetons d'actualisation. Optimized translation here. La norme OAuth2 exige l'utilisation de TLS.

scopes

map (key: string, value: string)

Niveaux d'accès disponibles pour le schéma de sécurité OAuth2. Il s'agit d'un mappage entre le nom du niveau d'accès et une brève description. Le mappage 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 bien connue permettant de 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 pour la skill afin d'améliorer la catégorisation/l'utilisation. Exemple : ["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

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.