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
:
Formato Base64: Os arquivos devem ser codificados em Base64 sem o cabeçalho
data:mime/type;base64,
.
Apenas o conteúdo Base64 puro deve ser incluído no campo bytes
.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: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
contextId
retornado para conversas contínuas - Envie o
contextId
em todas as mensagens subsequentes da mesma conversa
Arquivos
Arquivos
- Use Base64 sem cabeçalho no campo
bytes
- Especifique sempre o
mimeType
correto - Considere o tamanho máximo suportado pelo servidor
Streaming
Streaming
- Trate eventos de ping (
: ping
) adequadamente - Feche a conexão
EventSource
quandofinal: 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.