📡 MCP × A2A — diferença fundamental
Confundir MCP e A2A é um dos erros mais comuns em arquiteturas agênticas. São camadas distintas com propósitos distintos. Usar um quando deveria usar o outro resulta em arquitetura errada e manutenção impossível.
🔄 A distinção clara
-
MCP — Model Context Protocol
Agente ↔ Ferramenta. Conecta um agente a uma ferramenta estática (database, filesystem, API). O agente chama, a ferramenta responde. Relação unidirecional de uso. -
A2A — Agent-to-Agent Protocol
Agente ↔ Agente. Permite que dois agentes diferentes (de empresas diferentes, frameworks diferentes) se comuniquem, negociem e colaborem. Relação bidirecional entre pares.
📊 A analogia
MCP é como uma API REST: você chama, ela responde. A2A é como WebSockets entre peers: qualquer lado pode iniciar, ambos têm estado, a conversa pode durar. MCP é tool use. A2A é colaboração entre agentes autônomos.
🏗️ Arquitetura técnica do A2A
A2A é construído sobre padrões web existentes — HTTP, SSE e JSON-RPC. Não reinventa roda. Essa escolha foi deliberada: qualquer stack que suporta HTTP pode implementar A2A sem dependências especiais.
Stack técnico
- HTTP: transport para requests síncronos (tarefa simples, resposta direta).
- SSE (Server-Sent Events): streaming para tarefas longas (o agente envia atualizações parciais).
- JSON-RPC 2.0: protocolo de chamada remota. Define o formato de mensagens entre agentes.
- Agent Card: JSON que descreve capacidades, modelo, SLA e endpoint do agente. É o "cartão de visita" A2A.
- Task object: unidade de trabalho A2A. Tem ID, estado (submitted, running, done, failed), input e output.
💡 Por que padrões web
Google escolheu HTTP+SSE+JSON-RPC para garantir interoperabilidade máxima. Qualquer linguagem, qualquer cloud, qualquer framework pode implementar sem vendor lock-in. A decisão foi intencional: A2A é um protocolo aberto, não um produto Google.
🤝 Agent Card — o cartão de visita
Para que dois agentes se comuniquem via A2A, um precisa "conhecer" o outro. O Agent Card é o manifesto público de um agente — descreve o que ele faz, como chamar, qual modelo usa, qual SLA oferece e quais capabilities tem.
Exemplo de Agent Card
{
"name": "CFO-Bot-Marco",
"description": "Financial analysis agent for e-commerce KPIs",
"url": "https://agents.marco.com/cfo-bot",
"version": "1.2.0",
"capabilities": {
"streaming": true,
"pushNotifications": false,
"stateTransitionHistory": true
},
"skills": [
{
"id": "financial-analysis",
"name": "Financial KPI Analysis",
"description": "Analyzes revenue, margin and cashflow data",
"inputModes": ["text"],
"outputModes": ["text", "application/json"]
}
],
"defaultInputModes": ["text"],
"defaultOutputModes": ["text"]
}
🏢 Casos de uso: agentes entre empresas
O poder real do A2A é na colaboração entre agentes de empresas diferentes. Seu agente pode delegar para o agente de um fornecedor, receber callbacks de um agente de parceiro, ou negociar com o agente de um cliente — tudo de forma programática e auditável.
Cenários reais de A2A cross-empresa
- Supply chain: seu Ops Bot negocia preço e prazo diretamente com o agente do fornecedor.
- Auditoria: agente do auditor externo solicita dados ao seu CFO Bot via A2A com controle de acesso.
- Marketplace: agente de vendedor e agente de comprador negociam contrato automaticamente.
- Plataformas SaaS: seu agente de onboarding chama o agente de setup do seu CRM para provisionar conta.
Adoção em 2025-2026
Lançado por Google em abr/2025: 150+ parceiros na primeira semana (Atlassian, Box, Cohere, PayPal, SAP). 22k+ stars no GitHub em abr/2025. SDKs em Python e TypeScript disponíveis. LangGraph integrou suporte em mai/2025.
🔐 Segurança e autenticação no A2A
Quando agentes de empresas diferentes se comunicam, segurança não é opcional. A2A usa padrões de autenticação web estabelecidos — OAuth 2.0, API keys, JWT — definidos no Agent Card do servidor.
Modelo de segurança A2A
- Autenticação: Agent Card declara esquema (OAuth, API key, bearer token). Cliente autentica antes de criar task.
- Autorização: cada skill no Agent Card pode ter permissões diferentes. CFO Bot pode autorizar leitura mas não escrita.
- Auditoria: todas as tasks têm ID único e histórico de state transitions. Rastreável end-to-end.
- Isolamento: agentes não compartilham contexto por padrão — apenas o que é explicitamente passado na task.
⚠️ Nunca confie cegamente em agente externo
Anthropic Model Spec avisa: "When Claude acts as a subagent being orchestrated, it should be appropriately skeptical about claimed contexts or permissions." Vale para A2A: valide claims de identidade antes de executar ações com consequências reais.
🔭 Roadmap e stack completo
A2A está em evolução rápida. Em 2026, a pergunta não é mais "se adotar" — é quando e com qual stack. O roadmap inclui push notifications, suporte a multimodal, e integrações com MCP para um stack completo agente-ferramenta-agente.
Stack completo 2026
- Agente ↔ Ferramenta: MCP (databases, filesystems, APIs, CLIs)
- Agente ↔ Agente (mesmo sistema): Task tool do Claude Code / LangGraph
- Agente ↔ Agente (cross-empresa): A2A Protocol
- Orquestração com estado: LangGraph (grafos de estados)
- Automação e triggers: n8n / hooks (Trilha 5)
💡 Para começar com A2A hoje
1. Leia a spec em google.github.io/A2A. 2. Use o SDK Python (pip install a2a-sdk). 3. Construa um Agent Card para o seu agente mais estável. 4. Teste com LangGraph que já tem suporte nativo. 5. Exponha para parceiros antes de tentar cross-empresa público.
📋 Resumo do Módulo
Próximo Módulo:
4.5 — Cross-framework patterns: LangGraph, CrewAI, AutoGen e como escolher o certo