AgentCard

O AgentCard transmite informações importantes: - Detalhes gerais (versão, nome, descrição, usos) - Habilidades: um conjunto de ações/soluções que o agente pode realizar - Modalidades/tipos de conteúdo padrão compatíveis com o agente. - Requisitos de autenticação. Próximo ID: 19

Representação 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

A versão do protocolo A2A compatível com este agente.

name

string

Um nome legível para o agente. Exemplo: "Agente de receitas"

description

string

Uma descrição do domínio de ação/espaço de solução do agente. Exemplo: "Agente que ajuda os usuários com receitas e culinária".

url

string

Um URL para o endereço em que o agente está hospedado. Isso representa o endpoint preferido declarado pelo agente.

preferredTransport

string

O transporte do endpoint preferido. Se estiver vazio, o padrão será JSONRPC.

additionalInterfaces[]

object (AgentInterface)

Anúncio de outros transportes compatíveis. O cliente pode usar qualquer um dos transportes compatíveis.

provider

object (AgentProvider)

O provedor de serviços do agente.

version

string

A versão do agente. Exemplo: "1.0.0"

documentationUrl

string

Um URL para fornecer mais documentação sobre o agente.

capabilities

object (AgentCapabilities)

Conjunto de recursos A2A compatível com o agente.

securitySchemes

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

Os detalhes do esquema de segurança usados para autenticar com esse agente.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

security[]

object (Security)

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Requisitos de segurança para entrar em contato com o agente. Essa lista pode ser vista como um OR de ANDs. Cada objeto na lista descreve um possível conjunto de requisitos de segurança que precisam estar presentes em uma solicitação. Isso permite especificar, por exemplo, "os autores da chamada precisam usar o OAuth OU uma chave de API E o mTLS". Exemplo: security { schemes { key: "oauth" value { list: ["read"] } } } security { schemes { key: "api-key" } schemes { key: "mtls" } }

defaultInputModes[]

string

protolint:enable REPEATED_FIELD_NAMES_PLURALIZED O conjunto de modos de interação que o agente oferece em todas as habilidades. Isso pode ser substituído por habilidade. Definidos como tipos MIME.

defaultOutputModes[]

string

Os tipos MIME aceitos como saídas desse agente.

skills[]

object (AgentSkill)

As habilidades representam uma unidade de capacidade que um agente pode realizar. Isso pode ser um pouco abstrato, mas representa um conjunto mais focado de ações que o agente tem grande probabilidade de realizar com sucesso.

supportsAuthenticatedExtendedCard

boolean

Indica se o agente oferece um card estendido quando o usuário está autenticado. Ou seja, o card de .well-known é diferente do card de v1.getCard.

signatures[]

object (AgentCardSignature)

Assinaturas da Web JSON calculadas para este AgentCard.

iconUrl

string

Um URL opcional para um ícone do agente.

AgentInterface

Define informações de transporte adicionais para o agente.

Representação JSON
{
  "url": string,
  "transport": string,
  "tenant": string
}
Campos
url

string

O URL em que essa interface é encontrada.

transport

string

O transporte aceitou este URL. Essa é uma string de formulário aberto, fácil de estender para muitos protocolos de transporte. Os principais com suporte oficial são JSONRPC, GRPC e HTTP+JSON.

tenant

string

Locatário a ser definido na solicitação ao chamar o agente. Experimental, ainda pode mudar para o lançamento da versão 1.0.

AgentProvider

Representa informações sobre o provedor de serviços de um agente.

Representação JSON
{
  "url": string,
  "organization": string
}
Campos
url

string

Exemplo de URL de referência dos provedores: "https://ai.google.dev"

organization

string

O nome da organização do provedor. Exemplo: "Google"

SecurityScheme

Representação 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ão scheme.

scheme pode ser apenas de um dos tipos a seguir:

apiKeySecurityScheme

object (APIKeySecurityScheme)

httpAuthSecurityScheme

object (HTTPAuthSecurityScheme)

oauth2SecurityScheme

object (OAuth2SecurityScheme)

openIdConnectSecurityScheme

object (OpenIdConnectSecurityScheme)

mtlsSecurityScheme

object (MutualTlsSecurityScheme)

HTTPAuthSecurityScheme

Representação JSON
{
  "description": string,
  "scheme": string,
  "bearerFormat": string
}
Campos
description

string

Descrição desse esquema de segurança.

scheme

string

O nome do esquema de autenticação HTTP a ser usado no cabeçalho de autorização, conforme definido na RFC7235. Os valores usados PRECISAM ser registrados no registro de esquema de autenticação da IANA. O valor não diferencia maiúsculas de minúsculas, conforme definido na RFC7235.

bearerFormat

string

Uma dica para o cliente identificar como o token de portador é formatado. Os tokens de portador geralmente são gerados por um servidor de autorização. Portanto, essas informações são principalmente para fins de documentação.

OAuth2SecurityScheme

Representação JSON
{
  "description": string,
  "flows": {
    object (OAuthFlows)
  },
  "oauth2MetadataUrl": string
}
Campos
description

string

Descrição desse esquema de segurança.

flows

object (OAuthFlows)

Um objeto que contém informações de configuração para os tipos de fluxo compatíveis.

oauth2MetadataUrl

string

URL dos metadados do servidor de autorização oauth2 RFC8414. O TLS é obrigatório.

OAuthFlows

Representação 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ão flow.

flow pode ser apenas de um dos tipos a seguir:

authorizationCode

object (AuthorizationCodeOAuthFlow)

clientCredentials

object (ClientCredentialsOAuthFlow)

implicit

object (ImplicitOAuthFlow)

password

object (PasswordOAuthFlow)

AuthorizationCodeOAuthFlow

Representação JSON
{
  "authorizationUrl": string,
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Campos
authorizationUrl

string

O URL de autorização a ser usado para esse fluxo. Ele PRECISA estar no formato de um URL. O padrão OAuth2 exige o uso de TLS.

tokenUrl

string

O URL do token a ser usado para esse fluxo. Precisa estar no formato de URL. O padrão OAuth2 exige o uso de TLS.

refreshUrl

string

O URL a ser usado para receber tokens de atualização. Precisa estar no formato de URL. O padrão OAuth2 exige o uso de TLS.

scopes

map (key: string, value: string)

Os escopos disponíveis para o esquema de segurança OAuth2. Um mapa entre o nome do escopo e uma breve descrição dele. O mapa PODE estar vazio.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ClientCredentialsOAuthFlow

Representação JSON
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Campos
tokenUrl

string

O URL do token a ser usado para esse fluxo. Precisa estar no formato de URL. O padrão OAuth2 exige o uso de TLS.

refreshUrl

string

O URL a ser usado para receber tokens de atualização. Precisa estar no formato de URL. O padrão OAuth2 exige o uso de TLS.

scopes

map (key: string, value: string)

Os escopos disponíveis para o esquema de segurança OAuth2. Um mapa entre o nome do escopo e uma breve descrição dele. O mapa PODE estar vazio.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ImplicitOAuthFlow

Representação JSON
{
  "authorizationUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Campos
authorizationUrl

string

O URL de autorização a ser usado para esse fluxo. Ele PRECISA estar no formato de um URL. O padrão OAuth2 exige o uso de TLS.

refreshUrl

string

O URL a ser usado para receber tokens de atualização. Precisa estar no formato de URL. O padrão OAuth2 exige o uso de TLS.

scopes

map (key: string, value: string)

Os escopos disponíveis para o esquema de segurança OAuth2. Um mapa entre o nome do escopo e uma breve descrição dele. O mapa PODE estar vazio.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

PasswordOAuthFlow

Representação JSON
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Campos
tokenUrl

string

O URL do token a ser usado para esse fluxo. Precisa estar no formato de URL. O padrão OAuth2 exige o uso de TLS.

refreshUrl

string

O URL a ser usado para receber tokens de atualização. Precisa estar no formato de URL. O padrão OAuth2 exige o uso de TLS.

scopes

map (key: string, value: string)

Os escopos disponíveis para o esquema de segurança OAuth2. Um mapa entre o nome do escopo e uma breve descrição dele. O mapa PODE estar vazio.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

OpenIdConnectSecurityScheme

Representação JSON
{
  "description": string,
  "openIdConnectUrl": string
}
Campos
description

string

Descrição desse esquema de segurança.

openIdConnectUrl

string

URL conhecido para descobrir os metadados do provedor [[OpenID-Connect-Discovery]].

MutualTlsSecurityScheme

Representação JSON
{
  "description": string
}
Campos
description

string

Descrição desse esquema de segurança.

Segurança

Representação JSON
{
  "schemes": {
    string: {
      object (StringList)
    },
    ...
  }
}
Campos
schemes

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

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

StringList

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED

Representação JSON
{
  "list": [
    string
  ]
}
Campos
list[]

string

AgentSkill

"AgentSkill" representa uma unidade de ação/solução que o agente pode realizar. Isso pode ser considerado um tipo de solução altamente confiável que um agente pode ser encarregado de fornecer. Os agentes têm autonomia para escolher como e quando usar habilidades específicas, mas os clientes precisam ter confiança de que, se a habilidade for definida, essa unidade de ação poderá ser realizada de maneira confiável.

Representação JSON
{
  "id": string,
  "name": string,
  "description": string,
  "tags": [
    string
  ],
  "examples": [
    string
  ],
  "inputModes": [
    string
  ],
  "outputModes": [
    string
  ],
  "security": [
    {
      object (Security)
    }
  ]
}
Campos
id

string

Identificador exclusivo da habilidade no agente.

name

string

Um nome legível para a habilidade.

description

string

Uma descrição legível por humanos (ou LLM) dos detalhes e comportamentos da habilidade.

tags[]

string

Um conjunto de tags para a skill melhorar a categorização/utilização. Exemplo: ["cozinhar", "suporte ao cliente", "faturamento"]

examples[]

string

Um conjunto de exemplos de consultas que essa habilidade foi projetada para responder. Esses exemplos ajudam o usuário a entender como criar solicitações para o agente e alcançar metas específicas. Exemplo: ["Preciso de uma receita de pão"]

inputModes[]

string

Possíveis modalidades de entrada compatíveis.

outputModes[]

string

Possíveis modalidades de saída produzidas

security[]

object (Security)

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Esquemas de segurança necessários para o agente usar essa habilidade. Assim como em AgentCard.security, essa lista representa um OR lógico de objetos de requisito de segurança. Cada objeto é um conjunto de esquemas de segurança que precisam ser usados juntos (um AND lógico). protolint:enable REPEATED_FIELD_NAMES_PLURALIZED

AgentCardSignature

O AgentCardSignature representa uma assinatura JWS de um AgentCard. Isso segue o formato JSON de uma assinatura da Web JSON (JWS) RFC 7515.

Representação JSON
{
  "protected": string,
  "signature": string,
  "header": {
    object
  }
}
Campos
protected

string

Obrigatório. O cabeçalho JWS protegido para a assinatura. Esse valor é sempre um objeto JSON codificado em base64url. Obrigatório.

signature

string

Obrigatório. A assinatura calculada, codificada em base64url. Obrigatório.

header

object (Struct format)

Os valores de cabeçalho JWS não protegidos.