Agent Builder est désormais disponible en aperçu technique. Commencez avec un essai Elastic Cloud et consultez la documentation d’Agent Builder ici.
A2A et MCP : le code en action
Cet article est le complément de l'article "Creating an LLM Agent newsroom with A2A protocol and MCP in Elasticsearch !", qui expliquait les avantages de la mise en œuvre des architectures A2A et MCP au sein du même agent afin de profiter pleinement des avantages uniques des deux frameworks. Un référentiel est disponible si vous souhaitez exécuter la démo par vous-même.

Voyons comment les agents de notre salle de presse collaborent en utilisant à la fois A2A et MCP pour produire un article. Le référentiel d'accompagnement pour voir les agents en action est disponible ici.
Étape 1 : Attribution de l'histoire
Le chef de l'information (agissant en tant que client) attribue un sujet :
Étape 2 : Le journaliste demande des recherches
L'agent rapporteur reconnaît qu'il a besoin d'informations générales et délègue à l'agent chercheur par l'intermédiaire de l'A2A :
Étape 3 : Le rapporteur demande le contexte historique à l'agent d'archivage
L'agent rapporteur reconnaît que le contexte historique renforcerait l'histoire. Il délègue à l'agent d'archivage (alimenté par l'agent A2A d'Elastic), via A2A, le soin d'effectuer des recherches dans les archives d'articles de la salle de presse alimentées par Elasticsearch :
Étape 4 : L'agent d'archivage utilise l'agent Elastic A2A avec MCP
L'agent d'archivage utilise l'agent A2A d'Elastic, qui à son tour utilise MCP pour accéder aux outils Elasticsearch. Ceci démontre l'architecture hybride où A2A permet la collaboration des agents tandis que MCP fournit l'accès aux outils :
L'agent d'archivage reçoit des données historiques complètes de l'agent A2A d'Elastic et les renvoie au rapporteur :
Cette étape montre comment l'agent A2A d'Elastic s'intègre dans le flux de travail de la salle de presse. L'Archive Agent (un agent spécifique à la salle de presse) se coordonne avec l'A2A Agent d'Elastic (un spécialiste tiers) pour exploiter les puissantes capacités de recherche et d'analyse d'Elasticsearch. L'agent Elastic utilise MCP en interne pour accéder aux outils Elasticsearch, ce qui montre la séparation nette entre la coordination de l'agent (A2A) et l'accès aux outils (MCP).
Étape 5 : Le chercheur utilise les serveurs MCP
L'agent chercheur accède à plusieurs serveurs MCP pour recueillir des informations :
Étape 6 : Le chercheur renvoie les données au rapporteur
L'agent chargé de la recherche renvoie la recherche complète par l'intermédiaire de l'A2A :
Étape 7 : Le journaliste rédige un article
L'agent rapporteur utilise les données de recherche et ses propres capacités LLM pour rédiger l'article. Pendant la rédaction, le Reporter utilise les serveurs MCP pour le style et les modèles :
Étape 8 : le manque de confiance déclenche une nouvelle recherche
L'agent déclarant évalue son projet et constate qu'une créance a un faible degré de confiance. Il envoie une autre demande à l'agent du chercheur :
Le chercheur vérifie l'allégation à l'aide des serveurs MCP de vérification des faits et renvoie les informations mises à jour :
Étape 9 : Le journaliste révise le texte et le soumet au rédacteur en chef
Le rapporteur incorpore les faits vérifiés et envoie le projet complet à l'agent rédacteur par l'intermédiaire de l'A2A :
Étape 10 : Examens des éditeurs à l'aide des outils MCP
L'agent rédacteur utilise plusieurs serveurs MCP pour réviser l'article :
Le rédacteur en chef approuve l'article et le transmet :
Étape 11 : L'éditeur publie via CI/CD
Enfin, l'agent imprimeur publie l'article approuvé en utilisant les serveurs MCP pour le CMS et le pipeline CI/CD :
L'éditeur confirme la publication via A2A :
Voici la séquence complète du flux de travail A2A dans le référentiel d'accompagnement en utilisant les mêmes agents que ceux décrits ci-dessus.
| # | De | Pour | Action | Protocole | Description |
|---|---|---|---|---|---|
| 1 | Utilisateur | Chef de l'information | Attribuer l'histoire | HTTP POST | L'utilisateur soumet le sujet et l'angle de l'article |
| 2 | Chef de l'information | Interne | Créer une histoire | - | Création d'un enregistrement d'histoire avec un identifiant unique |
| 3 | Chef de l'information | Reporter | Affectation des délégués | A2A | Envoi de l'article via le protocole A2A |
| 4 | Reporter | Interne | Accepter l'affectation | - | Stockage interne de l'affectation |
| 5 | Reporter | Serveur MCP | Générer un plan | MCP/HTTP | Création d'un plan d'article et de questions de recherche |
| 6a | Reporter | Chercheur | Demande de recherche | A2A | Envoie des questions (parallèle avec 6b) |
| 6b | Reporter | Archiviste | Recherche dans les archives | A2A JSONRPC | Recherche d'articles historiques (parallèle avec 6a) |
| 7 | Chercheur | Serveur MCP | Questions de recherche | MCP/HTTP | Utilise l'Anthropique via le MCP pour répondre aux questions |
| 8 | Chercheur | Reporter | Recherche en matière de retour | A2A | Réponses à la recherche sur les retours |
| 9 | Archiviste | Elasticsearch | Index de recherche | API REST ES | Requêtes news_archive index |
| 10 | Archiviste | Reporter | Retour à l'archive | A2A JSONRPC | Renvoie les résultats de la recherche historique |
| 11 | Reporter | Serveur MCP | Générer un article | MCP/HTTP | Création d'un article dans un contexte de recherche ou d'archives |
| 12 | Reporter | Interne | Projet de magasin | - | Sauvegarde interne du projet |
| 13 | Reporter | Chef de l'information | Soumettre le projet | A2A | Soumission d'un projet achevé |
| 14 | Chef de l'information | Interne | Mise à jour de l'histoire | - | Stocke le projet, met à jour le statut à "draft_submitted" |
| 15 | Chef de l'information | Éditeur | Projet de révision | A2A | Routes automatiques vers l'éditeur pour révision |
| 16 | Éditeur | Serveur MCP | Article de synthèse | MCP/HTTP | Analyse du contenu à l'aide d'Anthropic via MCP |
| 17 | Éditeur | Chef de l'information | Retourner à l'examen | A2A | Envoi d'un retour d'information et de suggestions éditoriales |
| 18 | Chef de l'information | Interne | Revue des magasins | - | Stocke les commentaires des éditeurs |
| 19 | Chef de l'information | Reporter | Appliquer les modifications | A2A | Acheminement du retour d'information sur l'examen au rapporteur |
| 20 | Reporter | Serveur MCP | Appliquer les modifications | MCP/HTTP | Révision de l'article en fonction du retour d'information |
| 21 | Reporter | Interne | Projet de mise à jour | - | Mise à jour du projet avec des révisions |
| 22 | Reporter | Chef de l'information | Retour Révisé | A2A | Retourne l'article révisé |
| 23 | Chef de l'information | Interne | Mise à jour de l'histoire | - | Stocker le projet révisé, statut à "révisé" |
| 24 | Chef de l'information | Éditeur | Publier un article | A2A | Routes automatiques vers l'éditeur |
| 25 | Éditeur | Serveur MCP | Générer des étiquettes | MCP/HTTP | Création d'étiquettes et de catégories |
| 26 | Éditeur | Elasticsearch | Index Article | API REST ES | Indexe l'article dans l'index news_archive |
| 27 | Éditeur | Système de fichiers | Sauvegarder la démarque | Fichier E/S | Enregistre l'article au format .md fichier dans /articles |
| 28 | Éditeur | Chef de l'information | Confirmer la publication | A2A | Renvoie l'état de réussite |
| 29 | Chef de l'information | Interne | Mise à jour de l'histoire | - | Mise à jour du statut de l'article à "publié" |
Conclusion
L'A2A et le MCP ont tous deux un rôle important à jouer dans le paradigme moderne de l'infrastructure augmentée-LLM. L'A2A offre une certaine souplesse pour les systèmes multi-agents complexes, mais potentiellement moins de portabilité et une plus grande complexité opérationnelle. MCP offre une approche standardisée pour l'intégration des outils, plus simple à mettre en œuvre et à maintenir, bien qu'il ne soit pas conçu pour gérer l'orchestration multi-agents.
Le choix n'est pas binaire. Comme le montre notre exemple de salle de presse, les systèmes les plus sophistiqués et les plus efficaces soutenus par le LLM combinent souvent les deux approches : les agents se coordonnent et se spécialisent par le biais de protocoles A2A tout en accédant à leurs outils et à leurs ressources par le biais de serveurs MCP. Cette architecture hybride offre les avantages organisationnels des systèmes multi-agents ainsi que les avantages de la normalisation et de l'écosystème du MCP. Cela suggère qu'il n'est peut-être pas nécessaire de faire un choix : il suffit d'utiliser les deux en tant qu'approche standard.
C'est à vous, en tant que développeur ou architecte, de tester et de déterminer le meilleur mélange de ces deux solutions pour obtenir le bon résultat pour votre cas d'utilisation spécifique. Comprendre les points forts, les limites et les applications appropriées de chaque approche vous permettra de construire des systèmes d'IA plus efficaces, plus faciles à maintenir et plus évolutifs.
Que vous construisiez une salle de presse numérique, une plateforme de service à la clientèle, un assistant de recherche ou toute autre application alimentée par le LLM, l'examen attentif de vos besoins de coordination (A2A) et des exigences d'accès aux outils (MCP) vous mettra sur la voie de la réussite.
Ressources supplémentaires
- Elasticsearch Agent Builder : https://www.elastic.co/docs/solutions/search/elastic-agent-builder
- Spécification A2A : https://a2a-protocol.org/latest/specification/
- Intégration A2A et MCP : https://a2a-protocol.org/latest/topics/a2a-and-mcp/
- Modèle de protocole de contexte : https://modelcontextprotocol.io




