Visão Geral
O Agent-to-Agent Protocol (A2A) é um protocolo padronizado desenvolvido pelo Google para permitir comunicação estruturada entre agentes de IA independentes. Utilizando JSON-RPC 2.0 sobre HTTP/HTTPS, o A2A facilita a interoperabilidade entre diferentes sistemas de agentes, permitindo que trabalhem em conjunto de forma eficiente.Protocolo Oficial: O A2A é mantido pelo Google e está disponível em google.github.io/A2A.
O código fonte pode ser encontrado no repositório GitHub.
Características Principais
JSON-RPC 2.0
Protocolo baseado em JSON-RPC 2.0 para comunicação estruturada e padronizada
Multi-turn
Suporte nativo a conversas com múltiplos turnos usando contextId
Upload de Arquivos
Transferência de arquivos via Base64 com suporte a diferentes tipos MIME
Streaming
Comunicação assíncrona via Server-Sent Events (SSE) para respostas em tempo real
Visão Geral Rápida
| Ponto-chave | Resumo |
|---|---|
| Objetivo | Padronizar a conversa entre agentes de IA (independentemente do fornecedor) usando JSON-RPC 2.0 |
| Formato base | Cada chamada é um objeto JSON com jsonrpc:"2.0", id, method e params |
| Métodos principais | message/send • message/stream • tasks/get • tasks/cancel • tasks/pushNotificationConfig/{set|get} • tasks/resubscribe • agent/authenticatedExtendedCard |
| IDs obrigatórios | messageId (UUID v4) dentro de cada mensagem e id/taskId/callId para rastrear requisição e tarefa |
| Recursos de 1ª classe | Conversas multi-turn (contextId) • Upload de arquivos (parts[] tipo file com Base64 + MIME) • Notificações Push via pushNotificationConfig • Autenticação por x-api-key ou Authorization: Bearer |
| Ciclo de vida da tarefa | submitted → working → completed / failed / canceled, relatado em result.status.state |
Métodos do Protocolo
message/send (HTTP Síncrono)
O método principal para enviar mensagens de forma síncrona.Estrutura da Requisição
Estrutura da Requisição
Resposta Típica
Resposta Típica
message/stream (SSE Assíncrono)
Para comunicação em tempo real com streaming de respostas.Requisição Inicial
Requisição Inicial
Eventos SSE
Eventos SSE
Exemplos de Implementação
cURL
JavaScript / Fetch
Python
Upload de Arquivos
O protocolo A2A suporta upload de arquivos através do tipofile em parts:
Conversas Multi-turn
Para manter contexto entre múltiplas mensagens, use ocontextId:
Primeira mensagem
Primeira mensagem
Mensagem subsequente
Mensagem subsequente
Estados da Tarefa
O protocolo A2A define estados específicos para o ciclo de vida das tarefas:| Estado | Descrição |
|---|---|
submitted | Tarefa foi recebida e está na fila |
working | Tarefa está sendo processada |
completed | Tarefa foi concluída com sucesso |
failed | Tarefa falhou durante o processamento |
canceled | Tarefa foi cancelada pelo usuário |
Autenticação
O protocolo suporta diferentes métodos de autenticação:- API Key
- Bearer Token
Dicas e Boas Práticas
IDs únicos
IDs únicos
- Use UUID v4 para todos os IDs obrigatórios (
messageId,id, etc.) - Mantenha consistência nos IDs para rastreamento adequado
Multi-turn
Multi-turn
- Sempre guarde o
contextIdretornado para conversas contínuas - Envie o
contextIdem todas as mensagens subsequentes da mesma conversa
Arquivos
Arquivos
- Use Base64 sem cabeçalho no campo
bytes - Especifique sempre o
mimeTypecorreto - Considere o tamanho máximo suportado pelo servidor
Streaming
Streaming
- Trate eventos de ping (
: ping) adequadamente - Feche a conexão
EventSourcequandofinal: true - Implemente tratamento de reconexão para robustez
CORS
CORS
- Configure CORS no servidor (
Access-Control-Allow-Origin: *) para testes no navegador - Use headers apropriados para produção
Recursos Adicionais
Especificação Oficial
Documentação completa do protocolo A2A mantida pelo Google
Repositório GitHub
Código fonte, exemplos e issues do projeto A2A
Guia de Início Rápido
Configure seu primeiro agente em menos de 2 minutos
Tipos de Agentes
Explore diferentes tipos de agentes compatíveis com A2A
Com o protocolo A2A, você pode integrar rapidamente qualquer agente ou aplicação front-end ao ecossistema Evo AI, garantindo interoperabilidade e comunicação padronizada entre diferentes sistemas de agentes de IA.