Course

Deux agents ADK qui coopèrent en A2A, privés sur Cloud Run

Faire coopérer un agent « commandes » et un agent « stock » avec le protocole A2A : test local sur deux ports, puis deux services Cloud Run privés où seul le compte de service de l'un peut appeler l'autre, avec des jetons d'identité ; enfin tout supprimer.

Expert 5 lessons 3h30
Start the course
Progress 0% · 0/5

This content is not translated yet. Showing the original version.

Deux agents ADK qui coopèrent en A2A, privés sur Cloud Run

Une équipe ventes a un agent qui prépare des devis. Une équipe logistique a un agent qui connaît le stock. Elles ne partagent ni leur code ni leurs bases : elles veulent que leurs agents se parlent par un protocole standard, chacun restant déployé, sécurisé et maintenu par son équipe. C'est exactement le rôle du protocole A2A (Agent2Agent).

Pour qui ?

Niveau expert : vous maîtrisez ADK (agents, outils, runner), Cloud Run et les bases d'IAM. Vous voulez une architecture multi-agents répartie, où l'appel entre agents est authentifié.

Ce que vous construisez

flowchart LR
  U["Client (vous, avec un jeton d'identité)"] -->|"A2A JSON-RPC SendMessage"| C["Cloud Run lab-a2a-commandes (privé) : agent_commandes"]
  C -->|"A2A + jeton du compte lab-a2a-commandes"| S["Cloud Run lab-a2a-stock (privé) : agent_stock"]
  X["Tout autre appelant"] -.->|"403"| S
  C --> V["Vertex AI Gemini"]
  S --> V

Prérequis

  • Python 3.10+, gcloud connecté, un projet avec les API run, aiplatform, cloudbuild, artifactregistry.
  • ADK 2.10 avec l'extra A2A (pip install "google-adk[a2a]==2.10.0"), qui installe a2a-sdk (1.2.2 lors de nos tests).
  • Le code : files/ — deux agents, un client A2A, des tests, un Dockerfile, deployer.sh, nettoyer.sh.

Programme

ModuleLeçonCe que vous faites
1. Cas d'usage et architectureDeux agents, un protocoleA2A, carte d'agent, tâches ; sous-agent local ou agent distant
2. Construire pas à pasL'agent stock exposé en A2Ato_a2a, carte d'agent, URL annoncée
L'agent commandes et le test sur 2 portsRemoteA2aAgent, AgentTool, client JSON-RPC
3. Déployer et testerDeux services privés et une seule autorisationune image, deux comptes de service, run.invoker, jeton d'identité
Tester de bout en bout et nettoyerappel réel, propagation IAM, journaux, suppression

En local ou sur GCP ?

En local (obligatoire d'abord)Sur GCP
Agents2 processus uvicorn, ports 8001 et 80022 services Cloud Run
Transporthttp://localhostHTTPS, URL *.run.app
Authentificationaucunejeton d'identité Google, vérifié par Cloud Run
Coûtappels Gemini+ Cloud Build, Artifact Registry, Cloud Run à la requête (ordre de grandeur : quelques centimes)

Resources

Download all (.zip)

References