
Hoy Google lanzó su protocolo de agente a agente de código abierto, imaginativamente llamado
No estoy tan seguro, así que decidí investigar más a fondo y comprobar cuál será la posición de A2A en el universo agéntico. Analizaremos cómo funciona A2A en la vida real y una comparación con MCP.
Usar A2A es sorprendentemente similar a MCP. Puedes ejecutar varios agentes/servidores A2A y el cliente A2A puede conectarse a todos ellos. La buena noticia es que, por lo general, no es necesario ejecutar los agentes A2A junto con el cliente A2A.
Puse en marcha los tres agentes de ejemplo localmente.
Un servidor A2A informa al mundo sobre sus capacidades mediante una "Tarjeta de Agente" en formato JSON. Por ejemplo, la tarjeta de agente para Google ADK se ve así:
{ "name": "Reimbursement Agent", "description": "This agent handles the reimbursement process for the employees given the amount and purpose of the reimbursement.", "url": "http://localhost:10002/", "version": "1.0.0", "capabilities": { "streaming": true, "pushNotifications": false, "stateTransitionHistory": false }, "defaultInputModes": [ "text", "text/plain" ], "defaultOutputModes": [ "text", "text/plain" ], "skills": [ { "id": "process_reimbursement", "name": "Process Reimbursement Tool", "description": "Helps with the reimbursement process for users given the amount and purpose of the reimbursement.", "tags": [ "reimbursement" ], "examples": [ "Can you reimburse me $20 for my lunch with the clients?" ] } ] }
Continuemos con el cliente. Las instrucciones para poner en funcionamiento la aplicación web de demostración están aquí.
Una vez que la aplicación web esté en ejecución, puedes acceder a ella desde tu navegador. El cliente se parece un poco a Gemini AI Studio, con el diseño Material Design característico de Google.
URL: localhost:12000
Primero, necesitamos agregar todos los agentes al cliente especificando su URL base. Como en mi caso ejecuté todos los agentes localmente, su URL base fue:
Nota al margen: dentro del protocolo, la URL final se parece a esto:
https://localhost:10002/.well-known/agent.json
Ahora puedes ver los tres agentes que están conectados:
Puedes ver el historial de chat aquí
Toda la lista de eventos
Y toda la lista de tareas
La configuración es bastante básica
Quiero comprobar si el cliente A2A puede usar varios agentes para lograr un mismo objetivo . Así que probé si podía combinar el agente de reclamaciones de gastos con el agente de tipos de cambio. Y funcionó.
Mi tarea consistía en reclamar un gasto de 5 euros por una cerveza en Alemania durante un viaje de negocios, el 4 de abril de 2025. La conversación tuvo varias idas y venidas, y finalmente se obtuvo la cantidad correcta en dólares estadounidenses en el formulario de reclamación de gastos.
Me gusta que A2A sea un modelo cliente-servidor puro que puede ejecutarse y alojarse remotamente. El cliente no tiene que especificar ni iniciar los agentes/servidores.
La configuración del agente es bastante sencilla: basta con especificar la URL base. La "Tarjeta del Agente" se encarga del intercambio de contexto. Además, se pueden agregar y eliminar agentes una vez iniciado el cliente.
En el formato de demostración actual, resulta un poco difícil comprender cómo se comunican los agentes entre sí y realizan tareas complejas. El cliente llama a cada agente por separado para diferentes tareas, lo que es muy similar a la llamada a múltiples herramientas.
Ahora que he probado A2A, es hora de compararlo con MCP, sobre el que escribí anteriormente.
Si bien tanto A2A como MCP buscan mejorar el desarrollo de sistemas de agentes de IA, en teoría abordan necesidades distintas. A2A opera a nivel de agente a agente, centrándose en la interacción entre entidades independientes, mientras que MCP opera a nivel LLM, enfocándose en enriquecer el contexto y las capacidades de los modelos de lenguaje individuales.
Y para dar una idea de sus principales similitudes y diferencias según su documentación protocolaria:
Característica | A2A | MCP |
---|---|---|
Caso de uso principal | Comunicación y colaboración entre agentes | Proporcionar contexto y herramientas (API/SDK externos) a los LLM |
Arquitectura central | Cliente-servidor (agente a agente) | Cliente-host-servidor (aplicación-LLM-recurso externo) |
Interfaz estándar | Especificación JSON, Tarjeta de agente, Tareas, Mensajes, Artefactos | JSON-RPC 2.0, Recursos, Herramientas, Memoria, Avisos |
Características principales | Colaboración multimodal, dinámica y segura, gestión de tareas, descubrimiento de capacidades | Modularidad, límites de seguridad, reutilización de conectores, SDK, descubrimiento de herramientas |
Protocolo de comunicación | HTTP, JSON-RPC, SSE | JSON-RPC 2.0 sobre stdio, HTTP con SSE (o HTTP transmisible) |
Enfoque en el rendimiento | Comunicación asincrónica para el manejo de carga | Gestión eficiente del contexto, procesamiento paralelo y almacenamiento en caché para un alto rendimiento |
Adopción y comunidad | Buen apoyo inicial de la industria, ecosistema naciente | Adopción sustancial de toda la industria, comunidad de rápido crecimiento |
Aunque Google lo presentó como un protocolo complementario de MCP, mi primera prueba muestra que sus propósitos y funciones se superponen de forma abrumadora . Ambos abordan la necesidad de los desarrolladores de aplicaciones de IA de utilizar múltiples agentes y herramientas para lograr objetivos complejos. Actualmente, carecen de un buen mecanismo para registrar y descubrir otros agentes y herramientas sin configuración manual.
MCP tuvo un comienzo temprano y ya obtuvo un gran apoyo tanto de la comunidad de desarrolladores como de las grandes empresas. A2A es una plataforma muy joven, pero ya cuenta con un sólido apoyo inicial de muchos clientes empresariales de Google Cloud.
Creo que esta es una gran noticia para los desarrolladores, ya que tendrán más opciones en protocolos agente-agente abiertos y estándar . Solo el tiempo dirá cuál prevalecerá, o incluso podrían fusionarse en un único estándar.