O protocolo A2A do Google completou um ano no dia 9 de abril. Cento e cinquenta organizações aderiram. Vinte e duas mil estrelas no GitHub. Cinco SDKs de produção. O ACP, protocolo concorrente da IBM, foi incorporado a ele sob a Linux Foundation. Azure AI Foundry e Amazon Bedrock AgentCore já trazem ele embutido.

Por toda métrica — exceto a que importa — A2A venceu.

A métrica que importa: nenhum SDK relevante de agentes entrega suporte nativo a A2A hoje. Nenhum. O protocolo que deveria permitir que qualquer agente de IA descobrisse e delegasse tarefas a qualquer outro agente — independente do vendor — passou o primeiro ano inteiro colecionando logos enquanto os SDKs que os desenvolvedores realmente usam seguiram na direção oposta.

Treze dias, quatro muralhas

Entre 3 e 15 de abril de 2026, quatro empresas lançaram suas próprias funcionalidades de delegação multi-agente. Nenhuma delas interopera.

No dia 3 de abril, a Microsoft lançou o Agent Framework v1.0 — o unico framework que sequer tenta coordenação multi-vendor, com conectores para Claude, GPT, Gemini e Bedrock. Suporte a A2A? "Em breve." No dia 8, a Anthropic lançou Managed Agents em beta publico: execução em sandbox, persistência de estado, coordenação multi-agente — exclusivo Claude, zero menção a A2A. No dia 9, o proprio A2A atingiu seu marco de um ano com um press release cheio de numeros e nenhuma integração em SDK. No dia 15, a OpenAI lançou o Agents SDK v0.14 com Sandbox Agents e primitivas de handoff — model-agnostic na teoria, sem A2A na pratica.

Quatro vendors. Treze dias. Quatro dialetos incompatíveis da mesma ideia. E o unico protocolo criado para unificá-los ficou sentado no canto com seus 150 apoiadores organizacionais, assistindo.

Como "zero adoção" se parece no código

Este é o modelo de delegação da Anthropic. Você cria um managed agent pela REST API deles — ele roda no sandbox da Anthropic — e seu coordenador delega por meio de sessões:

import anthropic

client = anthropic.Anthropic()

# Create a managed agent (runs in Anthropic's cloud sandbox)
agent = client.agents.create(
    model="claude-sonnet-4-20260514",
    instructions="You are a research specialist.",
    tools=[{"type": "web_search"}],
)

# Start a session — the coordinator sends a subtask
session = client.sessions.create(
    agent_id=agent.id,
    messages=[{"role": "user", "content": "Analyze A2A adoption metrics"}]
)

Agora a abordagem da OpenAI — runtime diferente, filosofia completamente diferente:

from openai_agents import Agent, handoff

research_agent = Agent(name="researcher", model="gpt-4.1")
coding_agent = Agent(name="coder", model="gpt-4.1")

# Handoff: research_agent transfers full control to coding_agent
research_agent.handoffs = [handoff(coding_agent)]

Dois blocos de código. Dois ecossistemas. Zero superfície de interface compartilhada. Seu agente Claude não consegue chamar handoff() para um agente OpenAI, e seu agente OpenAI não consegue usar sessions.create() na infra da Anthropic. Eles literalmente não compartilham uma unica chamada de metodo.

O A2A define AgentCards para descoberta, um ciclo de vida de tarefas para delegação e streaming — tudo vendor-neutral. Foi construído para ser a camada que tornaria os dois trechos de código acima desnecessários. Em vez disso, ambos os SDKs foram lançados sem sequer reconhecer que ele existe.

Por que 150 logos não viraram adoção

O A2A tem tudo que um padrão precisa, exceto a coisa que faz padrões pegarem: integração sem atrito no ponto de uso. Nenhum pip install a2a cai de paraquedas num projeto Anthropic ou OpenAI. Nenhum middleware traduz automaticamente um handoff() em uma task A2A. O protocolo vive em seu próprio repositório, com seus próprios SDKs, exigindo que desenvolvedores construam e mantenham shims de tradução entre seu framework de orquestração real e o modelo de tarefas do A2A.

Se você tentar conectar SDKs de diferentes vendors via A2A hoje, esbarra no clássico problema N-quadrado: cada par de SDKs precisa de uma bridge customizada. Três vendors são seis bridges. Quatro são doze. Isso escala mais ou menos tão bem quanto fax.

Depois tem a latência. Cada salto de tradução de protocolo adiciona overhead mensurável — o suficiente para que encadear três agentes por camadas de bridge queime tempo de relógio perceptível antes mesmo de qualquer raciocínio começar. Para loops agênticos que iteram repetidamente por raciocínio e uso de ferramentas, isso acumula rápido.

E governança continua sendo um ponto cego em todas as frentes. Seu agente coordenador não consegue inspecionar o raciocínio de um sub-agente rodando na infra de outro vendor. Você está confiando num output que fundamentalmente não pode auditar. A spec do A2A também não endereça isso.

A aposta da Microsoft — e por que é interessante

O Agent Framework v1.0 da Microsoft é o ponto fora da curva que vale observar. É o unico framework em produção que coordena Claude, GPT, Gemini e Bedrock num unico grafo de delegação. Não usa A2A ainda — aquele disclaimer "em breve" está fazendo um trabalho pesado — mas prova que orquestração multi-vendor é tecnicamente viável quando um vendor controla a camada de roteamento.

O porém: alguém precisa ser dono da camada de roteamento. A Microsoft se voluntaria. Isso não é interop — é um tipo diferente de lock-in, uma camada acima.

A arquitetura pragmática

A decisão para quem está construindo hoje é direta, mas amarga: escolha orquestração single-vendor e use ferramentas MCP como válvula de escape de interoperabilidade. O framework de agentes de um vendor é dono do grafo de delegação, MCP cuida do acesso a dados e ferramentas externas. É exatamente o lock-in que a promessa multi-model deveria prevenir.

MCP provou que acesso a ferramentas podia ser padronizado — um protocolo, todo vendor adotou em meses. Delegação agente-a-agente é o mesmo problema uma camada acima, e A2A é o candidato óbvio para resolvê-lo. A spec é sólida. A governança é real. O apoio organizacional é amplo.

Mas um protocolo que não está embutido nos SDKs que os desenvolvedores buscam é um protocolo que só existe no papel. A2A fez um ano. Tem tudo, exceto a unica coisa que conta: uma linha no import de outra pessoa.