Protocole A2A pour agents
Surface Agent2Agent (A2A), agent card, inscription, certificats via tâches, MCP et webhooks.
Agent Trust implémente Agent2Agent (A2A) v1.0.0. Les agents s’inscrivent avec une identité et effectuent des opérations PKI d’émission, renouvellement et révocation de certificats via des tâches.
Agent card#
Chaque déploiement publie une carte lisible par machine :
GET /.well-known/agent-card.jsonElle annonce endpoints A2A, authentification acceptée (bearerAuth et/ou mtlsAuth) et skills. Les clients doivent la lire au démarrage : c’est la référence du déploiement.
Authentification#
| Schéma | Méthode |
|---|---|
| Bearer / JWT | Authorization: Bearer [jwt] validé avec le secret configuré ; sub devient l’identité agent. |
| mTLS | Certificat client sur listener mTLS ; SPIFFE URI, subject key identifier ou common name mappé à l’identité. |
| Kerberos | Comptes de service joints au domaine via Authorization: Negotiate. |
Auth mode : off (anonyme, IP comme identité, compatibilité), jwt ou oidc (session navigateur ou certificat mTLS).
Inscrire un agent#
POST /a2a/v1/register| Champ | Notes |
|---|---|
| agentId | Identité unique, liée au premier appelant. |
| displayName / agentCardJson | Nom et capacités lisibles. |
| publicKeyPem / certThumbprint | Preuve requise par la politique ; définie par le client, non modifiable par admin. |
| tags[] | Étiquettes libres pour règles et groupes. |
| webhookUrl | Webhook HTTPS outbound facultatif, appelant authentifié requis. |
agentId est lié à l’identité du premier appelant ; un autre ne peut pas le reprendre. Utilisez un ID unique ; sans agentId, agents d’une même IP fusionnent en une identité.
Chain of Command#
Pour swarms avec consentement, skills déléguées, vouchers signés et rapports d’exécution, voir le guide Chain of Command.
Tâches#
Opérations de certificat asynchrones et interrogeables :
| Méthode et chemin | Fonction |
|---|---|
| POST /a2a/v1/tasks/send | Créer une tâche avec message, par exemple CSR en pièce jointe. |
| GET /a2a/v1/tasks/ | Lire l’état et les artifacts. |
| POST /a2a/v1/tasks//cancel | Annuler une tâche en cours. |
| POST /a2a/v1/tasks//subscribe | Flux SSE des mises à jour. |
Envoyez la CSR comme file part, attendez completed, puis récupérez l’artifact de chaîne. Le tutoriel d’auto-inscription montre le flux complet.
Flux et idempotence#
- SSE pour message:stream et subscribe.
- X-Idempotency-Key empêche les doublons lors des reprises avec la même clé.
Webhooks#
Les agents peuvent enregistrer un webhook HTTPS outbound sur hôte public avec appelant authentifié, plutôt que d’interroger. Les livraisons sont vérifiables ; les échecs apparaissent dans le registre et l’audit.
Outils MCP Compliance#
Les agents MCP peuvent appeler directement les outils compliance du gateway, par exemple examiner un prompt avant envoi et appliquer allow/deny/flag/mask. Voir le tutoriel Claude Code, Cursor et MCP.
États des tâches#
| État | Signification |
|---|---|
| submitted | Créée, en attente. |
| working | En traitement. |
| input-required | Entrée supplémentaire requise. |
| completed | Terminée, artifacts disponibles. |
| canceled | Annulée par agent ou admin. |
| failed / rejected | Échec ou refus, par exemple identité bloquée. |
| auth-required | L’agent doit s’authentifier avant de poursuivre. |