Protocole A2A

Agent Registry indexe les cartes d'agent Agent2Agent (A2A), les interfaces de transport et les compétences intégrées afin que vous et vos agents d'orchestration puissiez découvrir et appeler des agents dans votre environnement Google Cloud . Les agents IA autonomes peuvent utiliser le protocole A2A pour échanger des messages et déléguer des tâches sans partager leur état interne, leurs prompts ni leurs outils.

Relation entre les agents IA, A2A et MCP

Les architectures multi-agents peuvent combiner les normes ouvertes suivantes, qui sont cataloguées par Agent Registry :

  • Protocole Agent2Agent (A2A) : standardise la communication pair à pair entre un client A2A, tel qu'un agent orchestrateur ou une application visible par l'utilisateur, et un agent A2A distant. Le client envoie des messages en langage naturel ou structurés, et reçoit des mises à jour de tâches avec état ou des artefacts sans avoir besoin de visibilité sur le modèle sous-jacent, le substrat de mémoire ou la boucle de raisonnement interne de l'agent distant. Le registre d'agents recense à la fois les agents Google intégrés exposés par des API Google Cloud et les agents A2A personnalisés que vous déployez dans votre propre environnement. Pour obtenir un exemple d'architecture d'hébergement d'agents A2A personnalisés, consultez Présentation des agents A2A sur Cloud Run.
  • Model Context Protocol (MCP) : standardise l'exécution des outils client-serveur, où un agent se connecte à un serveur MCP pour appeler des outils déterministes et lire des ressources de données structurées.

Dans Agent Registry, votre agent orchestrateur peut interroger un seul registre pour découvrir des sous-agents A2A spécialisés pour la délégation en plusieurs étapes, ainsi que des serveurs MCP et des compétences autonomes pour l'utilisation directe d'outils.

Versions du protocole et découverte de la fiche d'agent

Chaque agent compatible A2A décrit son identité, ses points de terminaison et ses capacités dans un document de métadonnées JSON appelé carte d'agent (agent-card.json).

Le registre d'agents est compatible avec les versions 1.0 (recommandée) et 0.3 de la spécification du protocole A2A. Pour en savoir plus sur les champs et les structures de fiches d'agent spécifiques de ces versions, consultez Schéma de fiche d'agent.

Comment Agent Registry indexe-t-il les fiches d'agent ?

Qu'un agent A2A soit ingéré via l'enregistrement automatique ou ajouté via l'enregistrement manuel, le registre d'agents valide sa carte d'agent et crée une ressource de découverte Agent en lecture seule avec les informations suivantes :

  • Charge utile de la carte d'agent : Agent Registry stocke la charge utile JSON complète dans le champ card de la ressource Agent avec type défini sur A2A_AGENT_CARD.
  • Champs de découverte : le registre d'agents extrait les champs displayName, description, version, le champ de transport protocols et le champ skills intégré de la carte d'agent, puis les stocke dans la ressource Agent. Vous pouvez rechercher et filtrer ces fonctionnalités sans récupérer les points de terminaison /.well-known/agent-card.json individuels dans les services.

Les servicesGoogle Cloud et les environnements d'exécution gérés n'exposent pas toujours une URL /.well-known/agent-card.json publique. À la place, vous et vos applications clientes récupérez la fiche d'agent directement depuis Agent Registry. Certains agents fournissent également une fiche d'agent étendue avec des détails supplémentaires qui ne sont disponibles que pour les clients authentifiés. Si une carte d'agent définit capabilities.extendedAgentCard sur true, les clients authentifiés peuvent obtenir la carte d'agent étendue sur le point de terminaison d'exécution de l'agent pour récupérer ces détails.

Liaisons de transport et opérations de base

Une liaison de transport définit la manière dont un client met en forme et envoie des requêtes à un agent A2A sur le réseau. Le protocole A2A est compatible avec les options de transport suivantes, ce qui permet aux agents créés sur différentes plates-formes de communiquer :

  • HTTP+JSON : requêtes HTTPS qui envoient et reçoivent des charges utiles JSON.
  • JSON-RPC : requêtes HTTPS qui encapsulent le nom et les paramètres de l'opération dans un message JSON-RPC.
  • gRPC : appels gRPC binaires via TLS pour une communication à faible latence entre les services.

Le registre d'agents enregistre les types de transport compatibles de chaque agent et les URL de point de terminaison de l'agent sur la ressource Agent. Étant donné que les URL de point de terminaison varient selon les services et les déploiements Google Cloud , évitez de coder les URL en dur dans votre code. Recherchez plutôt l'URL du point de terminaison et le transport de l'agent dans Agent Registry au moment de l'exécution.

Quel que soit le transport utilisé par un agent, les clients interagissent avec l'agent via les mêmes opérations A2A de base :

Opération Description
SendMessage Envoie un message pour démarrer une nouvelle tâche ou poursuivre une conversation. L'agent renvoie une réponse immédiate ou une tâche que vous pouvez suivre.
SendStreamingMessage Envoie un message et diffuse en direct les mises à jour d'état, les réponses partielles et les résultats pendant que l'agent travaille, lorsque l'agent est compatible avec le streaming.
GetTask Vérifie l'état actuel et récupère les résultats d'une tâche existante.
ListTasks Répertorie les tâches d'une conversation ou d'un projet, lorsque l'agent le permet.
SubscribeToTask Se reconnecte à une tâche en cours d'exécution pour diffuser des mises à jour en direct jusqu'à ce que la tâche soit suspendue ou terminée.
CancelTask Demande à l'agent d'arrêter une tâche en cours, lorsque l'annulation est possible.
GetExtendedAgentCard Récupère la fiche d'agent étendue de l'agent avec des détails supplémentaires disponibles uniquement pour les clients authentifiés.

Cycle de vie des tâches et état multitour

A2A sépare la continuité de la conversation des unités d'exécution individuelles à l'aide de deux identifiants :

  • ID de contexte (contextId) : regroupe les interactions multitours associées au sein d'une session partagée afin que l'agent distant puisse conserver le contexte de la conversation entre les requêtes séquentielles.
  • ID de tâche (taskId) : identifie une unité de travail asynchrone ou synchrone spécifique créée lorsqu'un client A2A envoie un message.

Lorsqu'un agent distant traite une requête, la tâche passe par les états de cycle de vie A2A suivants :

État Catégorie Description
TASK_STATE_SUBMITTED Actif L'agent distant a accepté la requête et mis la tâche en file d'attente pour exécution.
TASK_STATE_WORKING Actif L'agent distant raisonne, appelle des outils ou génère des artefacts pour la tâche.
TASK_STATE_INPUT_REQUIRED Suspendue L'exécution est suspendue en attendant une entrée de suivi, une clarification ou une confirmation human-in-the-loop (avec intervention humaine) sur les mêmes taskId et contextId.
TASK_STATE_AUTH_REQUIRED Suspendue L'exécution est suspendue jusqu'à ce que le client termine l'authentification ou un flux de consentement utilisateur pour une ressource en aval.
TASK_STATE_COMPLETED Terminal La tâche s'est terminée correctement et a renvoyé sa réponse finale ou ses artefacts de sortie.
TASK_STATE_FAILED Terminal La tâche s'est arrêtée en raison d'une erreur d'exécution ou d'un service en aval.
TASK_STATE_CANCELED Terminal La tâche a été annulée avant d'être terminée.
TASK_STATE_REJECTED Terminal L'agent distant a refusé d'exécuter la tâche demandée.

Compétences A2A, compétences autonomes et outils MCP

Le registre d'agents indexe trois mécanismes de fonctionnalités distincts afin que vous puissiez choisir le modèle d'intégration adapté à chaque workflow :

  • Compétences A2A intégrées : le champ skills de la ressource de découverte Agent d'un agent contient des métadonnées JSON, y compris id, name, description, tags et examples, intégrées à la fiche de l'agent. Les compétences A2A intégrées indiquent les tâches de haut niveau qu'un agent orchestrateur peut déléguer à cet agent distant via un transport A2A.
  • Compétences autonomes : les ressources de premier niveau Skill et SkillRevision indépendantes dans Agent Registry contiennent des archives ZIP avec versions, avec des instructions dans un fichier SKILL.md et des scripts facultatifs. Un agent télécharge une compétence autonome dans son propre contexte plutôt que de déléguer l'exécution à un autre agent. Pour une comparaison complète entre les compétences A2A intégrées et les compétences autonomes, consultez Différences entre les compétences autonomes et les compétences A2A.
  • Outils MCP : le champ tools d'une ressource de découverte McpServer contient des schémas de fonction structurés exposés par un serveur MCP enregistré qu'un agent appelle directement pour interroger des données ou exécuter des opérations déterministes.

Sécurité, gouvernance et appels d'agents au moment de l'exécution

Agent Registry sert de catalogue pour découvrir les agents A2A. L'authentification, l'autorisation, l'inspection du contenu, la journalisation d'audit et l'application des quotas se produisent au moment de l'exécution, lorsque votre client ou votre agent d'orchestration appelle l'agent cible :

Étapes suivantes