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.