Descoberta pública de agentes
Use estes exemplos para moldar o JSON que outro cliente A2A busca antes de decidir se seu agente pode concluir uma tarefa.
6 modelos JSON prontos para copiar · A2A v1.0
Navegue por modelos práticos A2A v1.0, entenda suas decisões de design, e depois adapte qualquer exemplo para o seu próprio agente.
Use estes exemplos para moldar o JSON que outro cliente A2A busca antes de decidir se seu agente pode concluir uma tarefa.
Adapte provedor, skills, tags, capabilities, e metadados de segurança para que os revisores entendam o que o agente faz e quem o opera.
Padronize descrições de endpoint, autenticação, e skills entre agentes internos antes que as equipes os integrem em fluxos de trabalho.
Modelos JSON
Lida com perguntas sobre produtos, consultas de pedidos, devoluções, e transferências de escalonamento.
Por que é construído assim
{
"name": "Agente de Suporte ao Cliente",
"description": "Responde a perguntas de suporte ao cliente, recupera o contexto do pedido e encaminha problemas não resolvidos para uma equipe humana.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/customer-support",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Exemplo Inc.",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": true,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"text/plain",
"application/json"
],
"skills": [
{
"id": "resolve-customer-support-request",
"name": "Resolver solicitação de suporte ao cliente",
"description": "Classifica uma solicitação de suporte ao cliente, reúne o contexto necessário, propõe uma resolução e escala quando a confiança está baixa.",
"tags": [
"support",
"orders",
"returns"
],
"examples": [
"Ajude-me a devolver meu pedido."
]
}
],
"securitySchemes": {
"oauth2": {
"oauth2SecurityScheme": {
"flows": {
"clientCredentials": {
"tokenUrl": "https://api.example.com/a2a/customer-support/oauth/token",
"scopes": {
"agent.invoke": "Invoke agent skills"
}
}
}
}
}
},
"security": [
{
"oauth2": [
"agent.invoke"
]
}
]
}Encontra horários de compromisso disponíveis e prepara confirmações de reserva.
Por que é construído assim
{
"name": "Agente de Reservas",
"description": "Pesquisa disponibilidade, propõe opções de reserva e prepara reservas para aprovação.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/booking",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Exemplo Inc.",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": false,
"pushNotifications": true,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "find-and-prepare-booking",
"name": "Encontre e prepare a reserva",
"description": "Verifica a disponibilidade de recursos, compara janelas de reserva e retorna uma proposta de reserva estruturada.",
"tags": [
"booking",
"calendar",
"availability"
],
"examples": [
"Encontre um compromisso de 30 minutos amanhã à tarde."
]
}
],
"securitySchemes": {
"apiKey": {
"apiKeySecurityScheme": {
"location": "header",
"name": "X-API-Key"
}
}
},
"security": [
{
"apiKey": []
}
]
}Compara produtos, disponibilidade, preços, e restrições de compra.
Por que é construído assim
{
"name": "Agente de Compras",
"description": "Compara produtos com as restrições do usuário e retorna opções de compra classificadas com compensações.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/shopping",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Exemplo Inc.",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": false,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "compare-shopping-options",
"name": "Compare opções de compras",
"description": "Avalia produtos candidatos, filtra por restrições e retorna recomendações classificadas com justificativa.",
"tags": [
"shopping",
"commerce",
"recommendations"
],
"examples": [
"Compare laptops leves abaixo de US$ 1.200."
]
}
],
"securitySchemes": {
"oauth2": {
"oauth2SecurityScheme": {
"flows": {
"clientCredentials": {
"tokenUrl": "https://api.example.com/a2a/shopping/oauth/token",
"scopes": {
"agent.invoke": "Invoke agent skills"
}
}
}
}
}
},
"security": [
{
"oauth2": [
"agent.invoke"
]
}
]
}Revisa tarefas de código, propõe patches, e explica decisões de implementação.
Por que é construído assim
{
"name": "Agente de Programação",
"description": "Auxilia nas tarefas de engenharia de software analisando código, propondo alterações e retornando notas de implementação.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/coding",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Exemplo Inc.",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": true,
"extendedAgentCard": true
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"text/plain",
"application/json"
],
"skills": [
{
"id": "implement-code-change",
"name": "Implementar mudança de código",
"description": "Lê uma solicitação de codificação, inspeciona arquivos relevantes, retorna uma proposta de patch e resume as etapas de verificação.",
"tags": [
"coding",
"review",
"patches"
],
"examples": [
"Adicione paginação à API de usuários."
]
}
],
"securitySchemes": {
"apiKey": {
"apiKeySecurityScheme": {
"location": "header",
"name": "X-API-Key"
}
}
},
"security": [
{
"apiKey": []
}
]
}Coleta fontes, extrai evidências, e retorna notas de pesquisa estruturadas.
Por que é construído assim
{
"name": "Agente de Pesquisa",
"description": "Coleta material de origem, extrai evidências e produz notas de pesquisa estruturadas com citações.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/research",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Exemplo Inc.",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": false,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain"
],
"defaultOutputModes": [
"text/plain",
"application/json"
],
"skills": [
{
"id": "prepare-research-brief",
"name": "Preparar resumo de pesquisa",
"description": "Pesquisa fontes aprovadas, extrai afirmações e evidências e retorna um resumo conciso da pesquisa.",
"tags": [
"research",
"evidence",
"citations"
],
"examples": [
"Prepare um resumo citado sobre a política de energia renovável."
]
}
]
}Coordena aprovações, verificações de status, e atualizações de fluxo de trabalho de back-office.
Por que é construído assim
{
"name": "Agente de Fluxo de Trabalho Interno",
"description": "Coordena aprovações internas, verifica o status do sistema e prepara atualizações de fluxo de trabalho para equipes de operações.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/workflow",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Exemplo Inc.",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": false,
"pushNotifications": true,
"extendedAgentCard": true
},
"defaultInputModes": [
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "coordinate-internal-workflow",
"name": "Coordenar o fluxo de trabalho interno",
"description": "Recebe a intenção do fluxo de trabalho, verifica os requisitos da política, reúne aprovações e relata o status final.",
"tags": [
"workflow",
"operations",
"approval"
],
"examples": [
"Solicite aprovação para implantar a atualização da folha de pagamento."
]
}
],
"securitySchemes": {
"oauth2": {
"oauth2SecurityScheme": {
"flows": {
"clientCredentials": {
"tokenUrl": "https://api.example.com/a2a/workflow/oauth/token",
"scopes": {
"agent.invoke": "Invoke agent skills"
}
}
}
}
}
},
"security": [
{
"oauth2": [
"agent.invoke"
]
}
]
}Adapte com confiança
Cada exemplo de Agent Card é intencionalmente completo o suficiente para copiar, mas o Agent Card não deve ser publicado sem alterações. Trate-o como um mapa de campos para seu próprio servidor A2A: substitua identidade, endpoint, provedor, autenticação, capabilities, modos, e detalhes de skills por valores de produção.
Os Agent Cards mais fortes explicam o limite da tarefa do agente tanto em linguagem simples quanto em metadados legíveis por máquina. Um cliente deve conseguir saber o que o agente pode fazer, o que não pode fazer, qual URL chamar, e se credenciais são necessárias.
Substitua cada URL example.com pelo seu endpoint A2A implantado e site do provedor.
Reescreva o nome da skill, descrição, tags (obrigatórias na v1.0), e exemplos para o limite de tarefa real.
Defina provider.organization e incremente a version de nível superior sempre que o conteúdo do Agent Card mudar.
Remova campos de autenticação apenas quando o endpoint for intencionalmente público.
Mantenha defaultInputModes e defaultOutputModes alinhados com o que seu servidor realmente aceita e retorna.
Valide o JSON final e publique-o em /.well-known/agent-card.json no domínio do seu serviço.
Pronto para construir
Abra qualquer padrão no Gerador de Agent Card, revise o JSON, e valide-o antes de publicar.
Do blog
Learn how A2A x402 brings HTTP 402 Payment Required to Agent Cards, enabling autonomous agents to declare pricing, meter usage, and settle calls in real time.
9 min readLer o guiaHow-toLearn how to create an agent.json file for A2A v1.0, including required Agent Card fields, the well-known URL, response headers, and common mistakes.
11 min readLer o guiaIntegrationLearn how to publish an A2A Agent Card from Google ADK, LangGraph, CrewAI, or Semantic Kernel by mapping framework concepts to standard discovery fields.
10 min readLer o guiaOs artigos são publicados em inglês.