AgentCard

AgentCard transmite información clave: - Detalles generales (versión, nombre, descripción, usos) - Habilidades: Conjunto de acciones o soluciones que el agente puede realizar - Modalidades predeterminadas o tipos de contenido admitidos por el agente. - Requisitos de autenticación Next ID: 19

Representación 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
}
Campos
protocolVersion

string

Es la versión del protocolo A2A que admite este agente.

name

string

Nombre del agente legible por humanos. Por ejemplo: "Agente de recetas".

description

string

Es una descripción del dominio de acción o el espacio de solución del agente. Ejemplo: "Agente que ayuda a los usuarios con recetas y cocina".

url

string

Es una URL a la dirección en la que se aloja el agente. Representa el extremo preferido según lo declaró el agente.

preferredTransport

string

Es el transporte del extremo preferido. Si está vacío, el valor predeterminado es JSONRPC.

additionalInterfaces[]

object (AgentInterface)

Anuncio de transportes adicionales admitidos. El cliente puede usar cualquiera de los transportes admitidos.

provider

object (AgentProvider)

Es el proveedor de servicios del agente.

version

string

Es la versión del agente. Ejemplo: "1.0.0"

documentationUrl

string

Es una URL que proporciona documentación adicional sobre el agente.

capabilities

object (AgentCapabilities)

Es el conjunto de capacidades de A2A que admite el agente.

securitySchemes

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

Son los detalles del esquema de seguridad que se usan para la autenticación con este agente.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

security[]

object (Security)

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Requisitos de seguridad para comunicarse con el agente. Esta lista se puede ver como un OR de ANDs. Cada objeto de la lista describe un conjunto posible de requisitos de seguridad que deben estar presentes en una solicitud. Esto permite especificar, por ejemplo, que "los llamadores deben usar OAuth O una clave de API Y mTLS". Ejemplo: security { schemes { key: "oauth" value { list: ["read"] } } } security { schemes { key: "api-key" } schemes { key: "mtls" } }

defaultInputModes[]

string

protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Es el conjunto de modos de interacción que admite el agente en todas las habilidades. Este parámetro se puede anular por habilidad. Se definen como tipos de MIME.

defaultOutputModes[]

string

Son los tipos de MIME admitidos como resultados de este agente.

skills[]

object (AgentSkill)

Las habilidades representan una unidad de capacidad que un agente puede realizar. Esto puede ser algo abstracto, pero representa un conjunto más enfocado de acciones en las que es muy probable que el agente tenga éxito.

supportsAuthenticatedExtendedCard

boolean

Indica si el agente admite proporcionar una tarjeta de agente extendida cuando el usuario se autentica, es decir, si la tarjeta de .well-known es diferente de la tarjeta de v1.getCard.

signatures[]

object (AgentCardSignature)

Son las firmas web JSON calculadas para esta AgentCard.

iconUrl

string

Es una URL opcional a un ícono del agente.

AgentInterface

Define información de transporte adicional para el agente.

Representación JSON
{
  "url": string,
  "transport": string,
  "tenant": string
}
Campos
url

string

Es la URL en la que se encuentra esta interfaz.

transport

string

El transporte admitió esta URL. Es una cadena de formulario abierto que se puede extender fácilmente para muchos protocolos de transporte. Los principales que se admiten oficialmente son JSONRPC, gRPC y HTTP+JSON.

tenant

string

Es el arrendatario que se establecerá en la solicitud cuando se llame al agente. Es experimental y podría cambiar para el lanzamiento de la versión 1.0.

AgentProvider

Representa información sobre el proveedor de servicios de un agente.

Representación JSON
{
  "url": string,
  "organization": string
}
Campos
url

string

URL de referencia de los proveedores. Ejemplo: "https://ai.google.dev"

organization

string

Nombre de la organización de proveedores. Ejemplo: "Google"

SecurityScheme

Representación 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.
}
Campos

Campo de unión scheme.

scheme puede ser una de las siguientes opciones:

apiKeySecurityScheme

object (APIKeySecurityScheme)

httpAuthSecurityScheme

object (HTTPAuthSecurityScheme)

oauth2SecurityScheme

object (OAuth2SecurityScheme)

openIdConnectSecurityScheme

object (OpenIdConnectSecurityScheme)

mtlsSecurityScheme

object (MutualTlsSecurityScheme)

HTTPAuthSecurityScheme

Representación JSON
{
  "description": string,
  "scheme": string,
  "bearerFormat": string
}
Campos
description

string

Es la descripción de este esquema de seguridad.

scheme

string

Nombre del esquema de autenticación HTTP que se usará en el encabezado de autorización, como se define en RFC7235. Los valores que se usen DEBEN registrarse en el registro de esquemas de autenticación de IANA. El valor no distingue mayúsculas de minúsculas, como se define en RFC7235.

bearerFormat

string

Es una sugerencia para que el cliente identifique el formato del token de portador. Los tokens de portador suelen generarse en un servidor de autorización, por lo que esta información se proporciona principalmente con fines de documentación.

OAuth2SecurityScheme

Representación JSON
{
  "description": string,
  "flows": {
    object (OAuthFlows)
  },
  "oauth2MetadataUrl": string
}
Campos
description

string

Es la descripción de este esquema de seguridad.

flows

object (OAuthFlows)

Objeto que contiene información de configuración para los tipos de flujo admitidos

oauth2MetadataUrl

string

URL de los metadatos del servidor de autorización de OAuth2 RFC8414. Se requiere TLS.

OAuthFlows

Representación 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.
}
Campos

Campo de unión flow.

flow puede ser una de las siguientes opciones:

authorizationCode

object (AuthorizationCodeOAuthFlow)

clientCredentials

object (ClientCredentialsOAuthFlow)

implicit

object (ImplicitOAuthFlow)

password

object (PasswordOAuthFlow)

AuthorizationCodeOAuthFlow

Representación JSON
{
  "authorizationUrl": string,
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Campos
authorizationUrl

string

Es la URL de autorización que se usará para este flujo. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

tokenUrl

string

Es la URL del token que se usará para este flujo. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

refreshUrl

string

Es la URL que se usará para obtener tokens de actualización. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

scopes

map (key: string, value: string)

Son los permisos disponibles para el esquema de seguridad de OAuth2. Es un mapa entre el nombre del alcance y una descripción breve de este. El mapa PUEDE estar vacío.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ClientCredentialsOAuthFlow

Representación JSON
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Campos
tokenUrl

string

Es la URL del token que se usará para este flujo. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

refreshUrl

string

Es la URL que se usará para obtener tokens de actualización. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

scopes

map (key: string, value: string)

Son los permisos disponibles para el esquema de seguridad de OAuth2. Es un mapa entre el nombre del alcance y una descripción breve de este. El mapa PUEDE estar vacío.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ImplicitOAuthFlow

Representación JSON
{
  "authorizationUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Campos
authorizationUrl

string

Es la URL de autorización que se usará para este flujo. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

refreshUrl

string

Es la URL que se usará para obtener tokens de actualización. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

scopes

map (key: string, value: string)

Son los permisos disponibles para el esquema de seguridad de OAuth2. Es un mapa entre el nombre del alcance y una descripción breve de este. El mapa PUEDE estar vacío.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

PasswordOAuthFlow

Representación JSON
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Campos
tokenUrl

string

Es la URL del token que se usará para este flujo. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

refreshUrl

string

Es la URL que se usará para obtener tokens de actualización. Debe tener el formato de una URL. El estándar de OAuth2 requiere el uso de TLS.

scopes

map (key: string, value: string)

Son los permisos disponibles para el esquema de seguridad de OAuth2. Es un mapa entre el nombre del alcance y una descripción breve de este. El mapa PUEDE estar vacío.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

OpenIdConnectSecurityScheme

Representación JSON
{
  "description": string,
  "openIdConnectUrl": string
}
Campos
description

string

Es la descripción de este esquema de seguridad.

openIdConnectUrl

string

Es la URL conocida para descubrir los metadatos del proveedor de [[OpenID-Connect-Discovery]].

MutualTlsSecurityScheme

Representación JSON
{
  "description": string
}
Campos
description

string

Es la descripción de este esquema de seguridad.

Seguridad

Representación JSON
{
  "schemes": {
    string: {
      object (StringList)
    },
    ...
  }
}
Campos
schemes

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

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

StringList

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED

Representación JSON
{
  "list": [
    string
  ]
}
Campos
list[]

string

AgentSkill

AgentSkill representa una unidad de acción o solución que el agente puede realizar. Se puede pensar en esto como un tipo de solución altamente confiable que se le puede encargar a un agente. Los agentes tienen autonomía para elegir cómo y cuándo usar habilidades específicas, pero los clientes deben tener la certeza de que, si se define la habilidad, esa unidad de acción se puede realizar de manera confiable.

Representación JSON
{
  "id": string,
  "name": string,
  "description": string,
  "tags": [
    string
  ],
  "examples": [
    string
  ],
  "inputModes": [
    string
  ],
  "outputModes": [
    string
  ],
  "security": [
    {
      object (Security)
    }
  ]
}
Campos
id

string

Es el identificador único de la habilidad dentro de este agente.

name

string

Es un nombre legible para la habilidad.

description

string

Es una descripción legible por humanos (o por LLM) de los detalles y el comportamiento de la habilidad.

tags[]

string

Es un conjunto de etiquetas para que la skill mejore la categorización o el uso. Ejemplo: ["cocina", "asistencia al cliente", "facturación"]

examples[]

string

Es un conjunto de ejemplos de preguntas que esta skill está diseñada para responder. Estos ejemplos deberían ayudar a la persona que llama a comprender cómo formular solicitudes al agente para lograr objetivos específicos. Ejemplo: ["Necesito una receta de pan"]

inputModes[]

string

Son las modalidades de entrada posibles que se admiten.

outputModes[]

string

Modalidades de salida posibles que se producen

security[]

object (Security)

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Esquemas de seguridad necesarios para que el agente aproveche esta habilidad. Al igual que en el objeto AgentCard.security general, esta lista representa un OR lógico de los objetos de requisitos de seguridad. Cada objeto es un conjunto de esquemas de seguridad que se deben usar juntos (un AND lógico). protolint:enable REPEATED_FIELD_NAMES_PLURALIZED

AgentCardSignature

AgentCardSignature representa una firma JWS de una AgentCard. Sigue el formato JSON de una firma web JSON (JWS) de RFC 7515.

Representación JSON
{
  "protected": string,
  "signature": string,
  "header": {
    object
  }
}
Campos
protected

string

Obligatorio. Es el encabezado JWS protegido para la firma. Siempre es un objeto JSON codificado en base64url. Obligatorio.

signature

string

Obligatorio. Es la firma calculada, codificada en base64url. Obligatorio.

header

object (Struct format)

Son los valores del encabezado JWS no protegido.