A2A — Protocolo Agente a Agente
¿Qué es A2A?
A2A (Agent-to-Agent) es un protocolo abierto para que los agentes de IA se descubran, autentiquen y comuniquen entre sí. Un sitio que aloja un agente publica una Agent Card — un manifiesto JSON en /.well-known/agent.json — que declara la identidad del agente, capacidades, skills y la URL donde otros agentes pueden alcanzarlo. El protocolo fue introducido por Google en abril de 2025 y donado a la Linux Foundation ese mismo año.
A2A se encuentra en una capa diferente a MCP. MCP define cómo un agente llama a una herramienta; A2A define cómo un agente llama a otro agente. Los dos componen: un servidor MCP expone herramientas a un solo agente; un endpoint A2A expone un agente completo a la red de agentes más amplia.
Por qué importa A2A
El ecosistema de agentes en 2025-2026 está convergiendo en un patrón multi-agente: un agente orientado al usuario (Claude, ChatGPT, Gemini) coordina con agentes especialistas alojados por otros servicios. El agente de reservas en un sitio de viajes es un especialista; el agente de reembolsos en un sitio de e-commerce es otro. El agente orientado al usuario necesita una forma de descubrir esos especialistas, aprender qué pueden hacer y llamarlos — sin integración SDK por proveedor.
A2A es el protocolo para esa capa de descubrimiento y enrutamiento. Una Agent Card le dice al agente llamador:
- Quién eres — nombre, descripción, versión, proveedor.
- Qué puedes hacer — una lista de skills nombrados, cada uno con su propia descripción.
- Cómo alcanzarte — la URL de tu endpoint de agente y el transporte soportado (HTTP, SSE, WebSocket).
- Cómo autenticarte — el esquema de auth, incluyendo flujos OAuth o entrega de API key.
Sin A2A, un agente que encuentra tu sitio no tiene ruta desde "este sitio existe" a "este sitio puede ayudarme con reembolsos vía este endpoint exacto y esta auth exacta."
Cómo funciona A2A
Hay dos piezas: la Agent Card (descubrimiento) y el endpoint A2A (ejecución).
1. La Agent Card es un archivo JSON estático en /.well-known/agent.json. Una Agent Card mínima válida:
{
"name": "Acme Support Agent",
"description": "Handles customer inquiries, refunds, and order status.",
"version": "1.0.0",
"url": "https://acme.example.com/agent",
"capabilities": {
"streaming": true,
"pushNotifications": false
},
"skills": [
{
"id": "process-refund",
"name": "Process Refund",
"description": "Issue a refund for a given order ID."
},
{
"id": "order-status",
"name": "Order Status",
"description": "Look up the status of an order by order ID."
}
]
}
2. El endpoint A2A en la URL declarada en la card acepta peticiones para esos skills. El protocolo usa mensajería estilo JSON-RPC sobre HTTP (con SSE opcional para streaming) y soporta un formato de mensaje estructurado.
A2A vs otros protocolos de interop de agentes
| Protocolo | Propósito | Transporte | Qué expone |
|---|---|---|---|
| A2A | Agente llama a otro agente | HTTP/SSE | Un agente completo con skills nombrados |
| MCP | Agente llama a una herramienta | JSON-RPC sobre HTTP/SSE | Herramientas discretas en un servidor |
| OpenAPI | Agente llama a una API REST | HTTP | Endpoints API con schemas |
| SKILL.md | Dice al agente cómo usar un servicio | Markdown estático | Manual de juego prosa para servicio HTTP |
| WebMCP | Agente llama a un sitio web a través del navegador | API del navegador | Formularios HTML anotados |
A2A es el único de estos donde el llamado es él mismo un agente, no una herramienta o API estática.
Campos de la Agent Card
name— nombre legible. Requerido.description— qué hace el agente, en prosa. Requerido.url— dónde vive el endpoint A2A. Requerido.version— string de versión. Recomendado.provider— info del proveedor.capabilities— flags:streaming,pushNotifications,stateTransitionHistory.skills— array de objetos skill conid,name,description.authentication— detalles del esquema auth.defaultInputModes/defaultOutputModes— tipos de contenido soportados.
AgentGrade valida que la card existe, parsea como JSON y contiene al menos name y url.
Quién usa A2A
A2A lanzó con respaldo de Google y una coalición de socios. Adoptadores públicos en 2025-2026 incluyen:
- Google — el autor original; A2A está integrado en Vertex AI Agent Builder.
- Linux Foundation — A2A fue donado a la LF para gobernanza neutral.
- Atlassian — publicó Agent Cards para agentes de Jira y Confluence.
- Box, MongoDB, PayPal, SAP, ServiceNow, Workday — socios tempranos del ecosistema.
Cómo añadir A2A a tu servicio
- Decide si tienes un agente para exponer. A2A es para agentes, no APIs estáticas.
- Autora la Agent Card en
/.well-known/agent.json. - Pon en pie el endpoint A2A en la URL de la card. El SDK Python en github.com/google/A2A es la implementación de referencia.
- Implementa al menos un skill.
- Prueba con un llamador.
- Enlaza desde llms.txt o SKILL.md.
Errores comunes que detectan los escáneres
- No hay Agent Card —
/.well-known/agent.jsondevuelve 404. - La card devuelve HTML, no JSON — rutas catch-all SPA devuelven HTML para cada ruta.
nameourlfaltantes.urlapunta a 404.- Array de skills vacío.
- CORS bloquea el fetch.
FAQ
¿A2A reemplaza a MCP?
No. Resuelven problemas distintos. MCP es para un agente llamando a una herramienta; A2A es para un agente llamando a otro agente.
¿Necesito A2A si tengo OpenAPI?
Solo si tu servicio es un agente (razona, planifica, mantiene estado entre turnos).
¿A2A es requerido para puntuación de AgentGrade?
A2A es una verificación informativa, no puntuada.
¿Qué pasa si mi Agent Card miente sobre capacidades?
La card declara lo que el agente reclama; el agente llamador eventualmente lo descubrirá vía peticiones fallidas.
¿Puedo publicar múltiples Agent Cards?
La especificación es una card por origen.
¿Cuál es la relación entre A2A y Vertex AI Agent Builder de Google?
Vertex AI Agent Builder es el runtime de agente hosted de Google; produce y consume A2A.
¿Cómo descubren los agentes las Agent Cards?
Fetch directo de /.well-known/agent.json, o siguiendo un enlace desde /llms.txt.
¿A2A soporta pago?
La especificación incluye declaraciones de capacidad pero el pago se delega al esquema auth subyacente. Sitios que combinan A2A con x402 típicamente declaran el requisito de pago en la descripción del skill.
Madurez de la especificación
Estándar abierto, adopción temprana. A2A está gobernado por la Linux Foundation. El SDK Python es la implementación de referencia.
Saber más
- Especificación del Protocolo A2A — docs oficiales
- Repositorio A2A en GitHub — implementaciones de referencia
- MCP — protocolo acompañante para llamadas de herramientas