A2A y MCP: el código en acción
Este es el artículo complementario al artículo "¡Creando una redacción para agentes LLM con protocolo A2A y MCP en Elasticsearch!", que explicaba los beneficios de implementar tanto las arquitecturas A2A como MCP dentro del mismo agente para aprovechar realmente los beneficios únicos de ambos frameworks. Hay un repositorio disponible si deseas ejecutar la demo por tu cuenta.

Vamos a repasar cómo colaboran nuestros agentes de redacción empleando tanto A2A como MCP para producir un artículo de noticias. El repositorio adjunto para ver a los agentes en acción se puede encontrar aquí.
Paso 1: Asignación de la historia
El Jefe de Noticias (actuando como cliente) asigna una noticia:
Paso 2: El reportero aplicar investigación
El Agente Reportero reconoce que necesita información de fondo y delega al Agente Investigador mediante A2A:
Paso 3: El reportero aplicar contexto histórico al Agente de Archivo
El Reporter Agent reconoce que el contexto histórico fortalecería la historia. Delega al Agente de Archivo (impulsado por el Agente A2A de Elastic) a través de A2A para buscar en el archivo de artículos impulsado por Elasticsearch de la redacción:
Paso 4: El Agente de Archivo emplea el Agente Elastic A2A con MCP
El Archive Agent emplea el A2A Agent de Elastic, que a su vez emplea MCP para acceder a las herramientas de Elasticsearch. Esto demuestra la arquitectura híbrida donde A2A permite la colaboración entre agentes mientras que MCP proporciona acceso a herramientas:
El Agente de Archivo recibe datos históricos completos del Agente A2A de Elastic y los devuelve al Reportero:
Este paso demuestra cómo el Agente A2A de Elastic se integra en el flujo de trabajo de la redacción. El Agente de Archivo (un agente específico de redacción) coordina con el Agente A2A de Elastic (un especialista externo) para aprovechar las poderosas capacidades de búsqueda y análisis de Elasticsearch. El agente de Elastic emplea MCP internamente para acceder a las herramientas de Elasticsearch, mostrando la separación limpia entre la coordinación del agente (A2A) y el acceso a la herramienta (MCP).
Paso 5: El investigador emplea servidores MCP
El Agente Investigador accede a múltiples servidores MCP para recopilar información:
Paso 6: El investigador devuelve los datos al Reportero
El Agente Investigador envía una investigación exhaustiva de vuelta a través de A2A:
Paso 7: Reportero escribe artículo
El Reporter Agent emplea los datos de investigación y sus propias capacidades de LLM para redactar el artículo. Durante la redacción, el Reportero emplea los servidores MCP para el estilo y las plantillas:
Paso 8: la baja confianza desencadena la re-investigación
El Agente Reportero evalúa su borrador y encuentra que una afirmación tiene baja confianza. Envía otra solicitud al Agente Investigador:
El investigador verifica la afirmación empleando servidores MCP de verificación de hechos y devuelve información actualizada:
Paso 9: El reportero revisa y envía al editor
El Reportero incorpora los hechos verificados y envía el borrador completo al Agente Editor a través de A2A:
Paso 10: Revisiones del editor usando herramientas MCP
El Editor Agent emplea múltiples servidores MCP para revisar el artículo:
El editor aprueba el artículo y lo envía hacia adelante:
Paso 11: El editor publica vía CI/CD
Finalmente, el Agente de Impresora publica el artículo aprobado empleando los servidores MCP para la tubería CMS y CI/CD:
El editor confirma la publicación a través de A2A:
Aquí está la secuencia completa del flujo de trabajo A2A en el repositorio adjunto usando los mismos Agentes descritos anteriormente.
| # | De | Para | Acción | Protocolo | Descripción |
|---|---|---|---|---|---|
| 1 | Usuario | Jefe de Noticias | Asignar historia | HTTP POST | El usuario presenta la historia, tema y ángulo |
| 2 | Jefe de Noticias | Interno | Crear historia | - | Crea un registro de historia con un ID único |
| 3 | Jefe de Noticias | Reportero | Asignación de Delegados | A2A | Envía asignación de historia mediante el protocolo A2A |
| 4 | Reportero | Interno | Aceptar Asignación | - | Asignación interna de almacenes |
| 5 | Reportero | Servidor MCP | Generar esquema | MCP/HTTP | Crea un esquema de artículos y preguntas de investigación |
| 6A | Reportero | Investigador | Solicitud de investigación | A2A | Envía preguntas (paralelo con 6b) |
| 6b | Reportero | Archivero | Archivo de búsqueda | A2A JSONRPC | Busca en artículos históricos (paralelo con 6a) |
| 7 | Investigador | Servidor MCP | Preguntas de investigación | MCP/HTTP | Emplea Anthropic vía MCP para responder preguntas |
| 8 | Investigador | Reportero | Investigación de Retorno | A2A | Respuestas de investigación de retornos |
| 9 | Archivero | Elasticsearch | Índice de búsqueda | ES REST API | Consultas news_archive índice |
| 10 | Archivero | Reportero | Archivo de retorno | A2A JSONRPC | Devuelve resultados históricos de búsqueda |
| 11 | Reportero | Servidor MCP | Generar artículo | MCP/HTTP | Crea un artículo con contexto de investigación/archivo |
| 12 | Reportero | Interno | Tiro de la tienda | - | Salvamentos en el draft interno |
| 13 | Reportero | Jefe de Noticias | Enviar Borrador | A2A | Entrega borrador completado |
| 14 | Jefe de Noticias | Interno | Actualización de la historia | - | Borrador de la tienda, actualiza el estado a "draft_submitted" |
| 15 | Jefe de Noticias | Editor | Borrador de revisión | A2A | Rutas automáticas al Editor para su revisión |
| 16 | Editor | Servidor MCP | Artículo de revisión | MCP/HTTP | Analiza contenido usando Anthropic a través de MCP |
| 17 | Editor | Jefe de Noticias | Reseña de Retorno | A2A | Envía comentarios y sugerencias editoriales |
| 18 | Jefe de Noticias | Interno | Reseña de la tienda | - | Comentarios sobre el editor de tiendas |
| 19 | Jefe de Noticias | Reportero | Aplicar ediciones | A2A | Comentarios de la revisión de rutas al Reportero |
| 20 | Reportero | Servidor MCP | Aplicar ediciones | MCP/HTTP | Revisa el artículo basar en los comentarios |
| 21 | Reportero | Interno | Actualización del borrador | - | Borrador de actualizaciones con revisiones |
| 22 | Reportero | Jefe de Noticias | Devolución revisada | A2A | Artículo revisado de declaraciones |
| 23 | Jefe de Noticias | Interno | Actualización de la historia | - | Borrador revisado de las tiendas, estado a "revisado" |
| 24 | Jefe de Noticias | Editor | Publicar artículo | A2A | Rutas automáticas hacia el editor |
| 25 | Editor | Servidor MCP | Generar etiquetas | MCP/HTTP | Crea etiquetas y categorías |
| 26 | Editor | Elasticsearch | Artículo índice | ES REST API | Índice de artículos a índice news_archive |
| 27 | Editor | Sistema de archivos | Almacenar Markdown | E/S de archivos | Almacena el artículo como .md archivo en /articles |
| 28 | Editor | Jefe de Noticias | Confirmar publicación | A2A | Resultados de éxito |
| 29 | Jefe de Noticias | Interno | Actualización de la historia | - | Actualiza el estado de la noticia a "publicado" |
Conclusión
Tanto A2A como MCP tienen papeles importantes en el paradigma moderno de infraestructura de LLM aumentado. A2A ofrece flexibilidad para sistemas complejos multiagente, pero potencialmente menos portabilidad y mayor complejidad operativa. MCP ofrece un enfoque estandarizado para la integración de herramientas que es más sencillo de implementar y mantener, aunque no está diseñado para manejar orquestación multiagente.
La elección no es binaria. Como demuestra nuestro ejemplo de redacción, los sistemas respaldados por LLM más sofisticados y efectivos suelen combinar ambos enfoques: los agentes coordinan y se especializan mediante protocolos A2A mientras acceden a sus herramientas y recursos a través de servidores MCP. Esta arquitectura híbrida ofrece los beneficios organizacionales de los sistemas multiagente junto con los beneficios de estandarización y ecosistema del MCP. Esto sugiere que puede que no sea necesario elegir en absoluto: simplemente usar ambos como un enfoque estándar
Depende de ti, como desarrollador o arquitecto, probar y determinar la mejor combinación de ambas soluciones para crear el resultado adecuado para tu caso de uso específico. Comprender las fortalezas, limitaciones y aplicaciones adecuadas de cada enfoque te permitirá construir sistemas de IA más eficaces, mantenibles y escalables.
Ya sea que estés construyendo una redacción digital, una plataforma de atención al cliente, un asistente de investigación o cualquier otra aplicación impulsada por LLM, considerar cuidadosamente tus necesidades de coordinación (A2A) y requisitos de acceso a herramientas (MCP) te pondrá en el camino hacia el éxito.
Recursos adicionales
- Constructor de agentes Elasticsearch: https://www.elastic.co/docs/solutions/search/elastic-agent-builder
- Especificación A2A: https://a2a-protocol.org/latest/specification/
- Integración de A2A y MCP: https://a2a-protocol.org/latest/topics/a2a-and-mcp/
- Protocolo de Contexto del Modelo: https://modelcontextprotocol.io




