Planificateur de voyage multi-agents
Construire avec Google ADK un pipeline qui lance trois agents de recherche en parallèle (transport, hébergement, activités), assemble un itinéraire structuré puis vérifie le budget en Python.
Organiser un déplacement, c'est trois recherches indépendantes (comment y aller, où dormir, quoi faire) suivies d'un travail d'assemblage et d'une vérification du budget. C'est exactement la forme d'un pipeline multi-agents : on parallélise ce qui est indépendant, on enchaîne ce qui dépend du reste, et on confie au code ce qui doit être exact.
Dans ce lab, vous construisez ce pipeline avec Google ADK (Agent Development Kit, le framework open source de Google pour écrire des agents en Python) et un modèle Gemini appelé avec une simple clé d'API. Les données (vols, hôtels, activités) sont fictives et servies par des outils Python : tout tourne sur votre poste.
Ce que vous allez construire
flowchart LR
U["Demande : Lyon vers Lisbonne, 2 voyageurs, 3 nuits, 900 EUR"] --> P
subgraph P["ParallelAgent recherches"]
T["transport + outil chercher_transports"]
H["hebergement + outil chercher_hebergements"]
A["activites + outil chercher_activites"]
end
P --> S["assembleur (sortie structurée Itineraire)"]
S --> B["controle_budget (code Python, sans LLM)"]
B --> R["Itinéraire + verdict budgétaire"]
- Un
ParallelAgentlance les trois spécialistes en même temps ; chacun écrit son résultat dans l'état de session (un dictionnaire partagé). - Un assembleur lit ces trois résultats et produit un itinéraire validé par un schéma Pydantic.
- Un agent personnalisé (
BaseAgent) recalcule le coût à partir du catalogue, jamais à partir des chiffres écrits par le modèle.
Pour qui ?
- Développeurs Python à l'aise avec
async/await, les dictionnaires etpip. - Vous avez déjà écrit un agent ADK simple avec un outil (sinon, commencez par un lab ADK de niveau intermédiaire).
Prérequis
- Python 3.10 ou plus récent,
pip install -r files/requirements.txt(google-adk 2.10.0). - Une clé d'API Gemini créée dans Google AI Studio, placée dans un fichier
.env(modèle : .env.example). - Aucune connaissance de Google Cloud n'est nécessaire.
Programme
| Module | Leçon | Ce que vous faites |
|---|---|---|
| 1. Cas d'usage et architecture | Pourquoi un pipeline parallèle puis séquentiel | Découper le problème, choisir les agents de workflow |
| 2. Construire pas à pas | Outils et agents de recherche en parallèle | Écrire les outils, les 3 spécialistes, output_key |
| 2. Construire pas à pas | Assembleur structuré et contrôle du budget | output_schema, injection d'état, BaseAgent déterministe |
| 3. Tester, évaluer, exploiter | Tester sans clé, exécuter pour de vrai, exploiter | Faux modèle, test réel, adk web, pistes de production |
En local ou sur GCP ?
| En local (ce lab) | Sur Google Cloud (pour aller plus loin) | |
|---|---|---|
| Modèle | Gemini via clé d'API (GOOGLE_GENAI_USE_VERTEXAI=FALSE) | Gemini via Vertex AI (GOOGLE_GENAI_USE_VERTEXAI=TRUE + projet) |
| Exécution | python agent.py ou adk web | Cloud Run ou Vertex AI Agent Engine |
| Données | Catalogue fictif en Python | Vos API de réservation réelles derrière les mêmes outils |
| Coût | Quelques appels au modèle | Appels au modèle + hébergement |
Le code ne change pas entre les deux : seules les variables d'environnement changent.
Le code
Tout est dans le dossier files/ : agent.py, donnees.py, test_agent.py, requirements.txt.
Resources
- example.env.example1 KB
- pyagent.py10 KBView
- pydonnees.py2 KBView
- txtrequirements.txt1 KBView
- pytest_agent.py3 KBView
References
- ADK : agents séquentiels (SequentialAgent)google.github.io
- ADK : agents parallèles (ParallelAgent)google.github.io
- ADK : agents personnalisés (BaseAgent)google.github.io
- ADK : l'état de session (state)google.github.io
- ADK : Workflows, le successeur des agents de workflowgoogle.github.io
- Gemini API : sortie structuréeai.google.dev
- google/adk-python (code source)github.com