Suntem întrebați asta cam la fiecare al doilea discovery call: „Ar trebui să standardizăm pe A2A sau pe MCP?"
Premisa întrebării e greșită. Nu sunt competitori. Rezolvă probleme diferite la straturi diferite, iar un sistem agentic sănătos le folosește pe ambele.
La ce e MCP
MCP (Model Context Protocol) e un standard pentru suprafețe de tool-uri. Răspunde la: cum descoperă și apelează un agent bazat pe LLM tool-uri care nu fac parte din training-ul lui? Document retrieval, query-uri de bază de date, API-uri de calendar, servicii interne — fiecare tool publică un server MCP, agentul se conectează, listează capabilități, invocă.
Forma e: un agent ↔ multe tool-uri. Tool-ul e pasiv; agentul decide când să-l apeleze.
MCP îți dă: schema discovery, parametri tipați, return-uri structurate, granițe de autentificare, sandboxing. E, în esență, un standard RPC reglat pentru clienți agentici.
La ce e A2A
A2A (Agent-to-Agent protocols, dintre care sunt câteva — A2A de la Google, AGNTCY, altele) e un standard pentru colaborare între agenți. Răspunde la: cum se coordonează mai mulți agenți semi-autonomi, cum predau subtask-uri și cum agregă rezultate?
Forma e: agent ↔ agent, cu stare. Ambele părți au propriile bucle de raționament. Handoff-urile includ context, rezultate intermediare, uneori ownership-ul unui subtask.
A2A îți dă: agent cards (advertising de capabilități), lifecycle-uri de task, message passing, streaming opțional și human-in-the-loop. Nu e RPC — e mai aproape de un sistem de actori tipat.
De ce confuzia
Ambele implică agenți care vorbesc cu ceva printr-un protocol cu payload-uri structurate. Ambele produc JSON. Ambele au roluri de client și server. Văzute de la 30.000 de picioare, par același lucru.
Dar nivelul de autonomie de fiecare parte e distincția reală:
- Server MCP: pasiv. Răspunde la apeluri. Nu are buclă proprie de raționament.
- Agent A2A: activ. Poate refuza task-uri, propune alternative, preda către alți agenți, cere clarificări.
Dacă cealaltă parte e „adu-mi rândul ăsta din baza de date", asta e MCP. Dacă cealaltă parte e „investighează anomalia asta și spune-mi ce găsești", asta e A2A.
Arhitectura care chiar merge
În fiecare sistem multi-agent pe care l-am livrat, descompunerea arată cam așa:
- Vârful stack-ului: un orchestrator (adesea el însuși un agent) rutează cererile utilizatorilor către agenți specialiști.
- Agenții specialiști comunică prin A2A. Handoff-urile păstrează contextul; supervisor-ii urmăresc starea task-urilor.
- Specialiștii folosesc tool-uri prin MCP. Agentul de retrieval are o conexiune MCP la un vector DB și una la un serviciu de fulltext search. „Ops agent" are o conexiune MCP la un sistem de ticketing.
A2A e cum se coordonează agenții. MCP e cum acționează fiecare agent.
Concluzia pragmatică
Adoptă MCP întâi — rezolvă problema cea mai imediată (vorbitul cu tool-uri), are ecosistemul mai larg azi (majoritatea provider-ilor LLM livrează suport MCP nativ), iar calea de upgrade de la „apeluri ad-hoc de tool-uri" la MCP e clară.
Adoptă A2A când ai mai mult de un agent care trebuie să predea muncă. Dacă sistemul tău are un singur agent + multe tool-uri, A2A e overkill — nu coordonezi pe nimeni. În momentul în care adaugi un al doilea agent specialist care trebuie să vorbească cu primul, A2A începe să se justifice.
Nu alege. Stivuiește-le.