Communication entre agents dans SAP — MCP vs A2A, saut par saut
À jour au 2026-10-10
Qu'est-ce que Communication entre agents dans SAP ?
« A2A via MCP » est une erreur de catégorie : MCP relie un agent à des outils et à des données, A2A relie un agent à un autre agent. Cette fiche donne la règle saut par saut pour les architectures SAP — quel protocole sur quel lien, et pourquoi la plupart des designs Joule utilisent les deux. Le détail des protocoles se trouve dans C164 (MCP) et C163 (A2A).
Pourquoi cette fiche a été recentrée
Une version antérieure de cette fiche décrivait « la communication agent-à-agent via MCP ». Ce cadrage mélangeait deux protocoles différents. Le Model Context Protocol (MCP) est un protocole client-serveur : le client d'une application hôte appelle des outils, lit des ressources et utilise des prompts exposés par un serveur. Le protocole Agent2Agent (A2A) est un protocole pair-à-pair : un agent délègue une tâche à un autre agent, opaque, et suit cette tâche tout au long de son cycle de vie. On peut envelopper un agent derrière un outil MCP, et certains designs SAP le font, mais le côté appelant voit alors une fonction, pas un partenaire — pas d'états de tâche, pas de négociation, pas de restitution asynchrone. Cette distinction détermine la conception de la sécurité, la piste d'audit et la gestion des échecs : elle mérite d'être posée avec exactitude.
Pourquoi c'est important
- MCP et A2A répondent à des questions différentes — outils contre pairs — et ce choix change le modèle de sécurité, la piste d'audit et la façon de gérer les travaux de longue durée.
- Le pattern pro-code de SAP lui-même (CAP @cap-js/agents) utilise MCP vers l'intérieur pour les outils et A2A vers l'extérieur pour les autres agents : le design de référence le plus clair pour cette frontière.
- L'A2A bidirectionnel de Joule a été annoncé en disponibilité générale pour le T4 2026 : les schémas d'architecture dessinés aujourd'hui doivent donc étiqueter correctement chaque saut agent.
Points clés
- MCP = agent ↔ outils/ressources/prompts (client-serveur) ; A2A = agent ↔ agent (pairs avec cycle de vie de tâche). « A2A via MCP » confond les deux.
- Les tâches A2A portent des états (submitted, working, input-required, auth-required, completed, failed, canceled, rejected) ; les appels d'outils MCP renvoient des résultats, le travail long passant par une extension Tasks optionnelle.
- La découverte diffère : `server/discover` MCP sur un endpoint connu contre l'Agent Card A2A à `/.well-known/agent-card.json`.
- Règle des sauts : humain→agent = interface utilisateur ; agent→donnée/action SAP = MCP ; agent→agent étranger = A2A.
- CAP @cap-js/agents génère des outils MCP à partir des entités/actions CDS et sert l'agent via A2A ; `@agent.hitl` correspond à l'état A2A `input-required`.
- Envelopper un agent en outil MCP n'est acceptable que pour un travail court, synchrone, de type fonction.
- Les deux types d'actifs relèvent de SAP AI Agent Hub ; les deux tombent sous la SAP API Policy §2.2.2 dès que des API SAP sont atteintes de façon agentique.
Termes employés sur cette page
- MCP (Model Context Protocol)
- Protocole client-serveur par lequel un hôte IA appelle des outils, lit des ressources et utilise des prompts exposés par un serveur ; révision de spec 2026-07-28.
- A2A (Agent2Agent protocol)
- Protocole pair-à-pair, sous l'égide de la Linux Foundation, permettant à un agent de découvrir un autre agent et de lui déléguer des tâches ; la version 1.0 en est la première spécification stable.
- Agent Card
- Document de métadonnées JSON décrivant l'identité, les compétences, le endpoint et l'authentification d'un agent A2A ; peut être signé pour en garantir l'authenticité.
- Task (A2A)
- Unité de travail délégué dotée d'un cycle de vie d'états, suivie par sondage (polling), streaming ou notifications push.
- Hop labelling
- Pratique de conception consistant à marquer chaque lien d'une architecture d'agents comme UI, MCP ou A2A avant de choisir les contrôles de sécurité.
- @agent.hitl
- Annotation CAP qui impose l'approbation humaine avant qu'un agent n'exécute une action, restituée sous forme d'état A2A `input-required`.
Sources
- A2A Protocol — Specification (version 1.0)
- A2A Protocol — Agent Discovery (/.well-known/agent-card.json)
- Model Context Protocol — specification changelog 2026-07-28
- CAP documentation — CAP-level Agents (@cap-js/agents)
- SAP News — The Future of the Enterprise Is Autonomous (Sapphire, May 2026; A2A GA Q4)
- SAP Community — Build a Pro-Code A2A Agent for SAP S/4HANA Cloud with the CAP Agent Plugin (Aug 2026)
- ERP Today — What Customers Need to Know About SAP's API Policy (Sep 2026) — cited for: Agent Communication in SAP
- SAP Help — SAP AI Agent Hub
- SAP News — Autonomous enterprise: business transformation management solutions and SAP AI agents at work at scale (2026-09)
- Model Context Protocol — Authorization specification, 2026-07-28 revision
- SAP Help Portal — MCP Server for SAP BTP administration (connect and authenticate)
- SAP Community — Principal propagation for MCP servers: SAP Integration Suite to SAP S/4HANA (SAP-authored)
- SAP News Center - Joule Work and the SAP Business AI Platform (8 Oct 2026)
- SAP Community - Joule Studio unlocked: From context to control - Joule Studio and SAP BTP for governed AI agents (Oct 6, 2026)
Fiche complète réservée aux abonnés. Ce que la fiche complète ajoute : le cadre de décision complet · la comparaison SAP · Snowflake · Databricks · Fabric · les pièges courants et leur correctif · l'aide-mémoire · les schémas d'architecture · les blocs de code · les chiffres à citer.