Ao registrar explicitamente agentes ou servidores do Protocolo de Contexto de Modelo (MCP) com o Agent Registry usando as APIs Services, você precisa fornecer arquivos de configuração que descrevam as funcionalidades deles.
O registro de agentes valida os arquivos enviados de acordo com especificações externas de código aberto antes de indexá-los para descobrir habilidades e ferramentas do agente.
Este documento fornece exemplos e links para as estruturas JSON esperadas para cards do agente e especificações da ferramenta MCP.
Esquema do card do agente
Ao registrar um agente compatível com A2A, o payload agent-card.json precisa seguir a especificação oficial do Agent2Agent (A2A).
O tamanho máximo do arquivo de especificação é de 10 KB.
Os campos de matriz skills são compatíveis com o índice de pesquisa de palavras-chave.
O registro de agentes é compatível com as versões 0.3 e 1.0 do card do agente A2A.
Esquema da versão 1.0 (recomendado)
Para a versão 1.0 dos cards de agente A2A, o payload precisa obedecer à especificação v1.0 oficial do A2A. Nessa especificação, você declara endpoints de transporte em uma matriz supportedInterfaces.
{
"name": "string",
"description": "string",
"version": "string",
"supportedInterfaces": [
{
"url": "string",
"protocolBinding": "string",
"protocolVersion": "string",
"tenant": "string"
}
],
"capabilities": {
"streaming": false,
"pushNotifications": false,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain"
],
"defaultOutputModes": [
"text/plain"
],
"skills": [
{
"id": "string",
"name": "string",
"description": "string",
"tags": [
"string"
],
"examples": [
"string"
]
}
]
}
Definições de campo (versão 1.0)
name: o nome legível do agente.description: um resumo de alto nível da finalidade do agente.version: a versão do agente, por exemplo,1.0.0.supportedInterfaces: uma matriz de combinações de transporte e URL compatíveis. Cada interface contém o seguinte:url: o URL do endpoint em que essa interface é alcançada.protocolBinding: a vinculação de protocolo compatível com este URL, por exemplo,HTTP+JSON,JSONRPCouGRPC.protocolVersion: a versão do protocolo A2A que essa interface expõe, por exemplo,1.0.0.tenant: opcional. O identificador do proprietário do agente.
capabilities: opcional. Especifica recursos operacionais compatíveis, como:extensions: opcional. Uma matriz de extensões de protocolo.streaming: opcional. Um booleano que indica se o agente é compatível com respostas de streaming.pushNotifications: opcional. Um booleano que indica se as notificações push são compatíveis com atualizações de tarefas.extendedAgentCard: opcional. Um booleano que indica se o agente fornece um card do agente estendido quando autenticado.
defaultInputModes: opcional. Uma matriz de tipos MIME aceitos como entrada.defaultOutputModes: opcional. Uma matriz de tipos MIME produzidos como saída.skills: uma matriz de recursos que o agente tem:id: um identificador programático exclusivo para a habilidade.name: um nome legível para a habilidade.description: uma explicação detalhada do que a habilidade faz.tags: uma matriz de strings de palavras-chave usadas para categorizar a habilidade.examples: uma matriz de exemplos de comandos ou cenários.
Esquema da versão 0.3
Para a versão 0.3 dos cards de agente A2A, o payload precisa obedecer à
especificação v0.3.0. Nessa especificação, o URL de inferência principal e a versão do protocolo são declarados como campos de nível superior.
{
"name": "string",
"description": "string",
"version": "string",
"protocolVersion": "string",
"url": "string",
"skills": [
{
"id": "string",
"name": "string",
"description": "string",
"tags": [
"string"
],
"examples": [
"string"
]
}
],
"capabilities": {
"streaming": false,
"pushNotifications": false,
"stateTransitionHistory": false
},
"defaultInputModes": [
"text/plain"
],
"defaultOutputModes": [
"text/plain"
]
}
Definições de campo (versão 0.3)
name: o nome legível do agente.description: um resumo de alto nível da finalidade do agente.version: a versão do agente, por exemplo,1.0.2.protocolVersion: a versão do protocolo A2A implementada pelo agente. Como a versão 1.0 descontinua esse campo de nível superior, o valor precisa ser0.3ou qualquer versão de patch0.3, como0.3.1, para esse esquema.url: o URL do endpoint em que o agente pode ser contatado.capabilities: opcional. Especifica recursos operacionais compatíveis, comostreaming,pushNotificationsoustateTransitionHistory.defaultInputModes: opcional. Uma matriz de tipos MIME aceitos como entrada.defaultOutputModes: opcional. Uma matriz de tipos MIME produzidos como saída.skills: uma matriz de recursos que o agente tem:id: um identificador programático exclusivo para a habilidade.name: um nome legível para a habilidade.description: uma explicação detalhada do que a habilidade faz.tags: uma matriz de strings de palavras-chave usadas para categorizar a habilidade.examples: uma matriz de exemplos de comandos ou cenários.
Esquema da ferramenta MCP
Ao registrar um servidor MCP, o payload toolspec.json precisa incluir uma lista
de ferramentas que aderem ao
esquema de objeto Tool do MCP.
O payload esperado é um objeto JSON com um único campo tools, exatamente como ele é retornado pela solicitação padrão de lista ou ferramentas do MCP.
O tamanho máximo do arquivo de especificação é de 10 KB.
{
"tools": [
{
"name": "string",
"description": "string",
"inputSchema": {
"type": "object",
"properties": {}
},
"annotations": {
"title": "string",
"readOnlyHint": false,
"destructiveHint": true,
"idempotentHint": false,
"openWorldHint": true
}
}
]
}
Definições de campo
tools: uma matriz de ferramentas fornecidas pelo servidor:name: o identificador programático da ferramenta.description: uma explicação legível da finalidade da ferramenta.inputSchema: um objeto de esquema JSON que define os parâmetros esperados para a ferramenta.annotations: dicas comportamentais que orientam como os agentes de orquestração interagem com a ferramenta:title: um título legível para a ferramenta.readOnlyHint: setrue, a ferramenta só vai recuperar dados e não modificar o ambiente. O padrão éfalse.destructiveHint: setrue, a ferramenta vai realizar operações que podem causar mudanças permanentes. O padrão étrue.idempotentHint: setrue, chamar a ferramenta repetidamente não terá efeito adicional. O padrão éfalse.openWorldHint: setrue, a ferramenta interage com sistemas externos. O padrão étrue.