Track2-GoogleADK - Agents IA pour Data Science avec Google ADK
← DataScienceWithAgents (parent) | ML.NET (C#) →
Formation avancée sur les agents IA pour la Data Science, intégrant les frameworks Google ADK (DS-STAR, MLE-STAR) avec support multi-provider.
Pourquoi cette série
Les frameworks d’agents IA (AutoGPT, CrewAI, ADK) promettent d’automatiser le travail du data scientist. Mais passer du demo au pipeline production-ready demande une compréhension approfondie des patterns d’orchestration. Cette série vous apprend à construire des systèmes multi-agents qui fonctionnent réellement sur des tâches de data science complexes.
Les deux frameworks couverts (DS-STAR et MLE-STAR) représentent l’état de l’art en agents data science, publiés par Google Research. Ils résolvent des problèmes concrets :
| Framework | Problème résolu | Pattern |
|---|---|---|
| DS-STAR | Analyse de datasets hétérogènes | Boucle Planner-Coder-Verifier |
| MLE-STAR | Compétitions Kaggle automatisées | Recherche SOTA + Ablation + Refinement |
La particularité de cette série : le support multi-provider (Gemini, vLLM, OpenAI, OpenRouter) via LiteLLM. Vous n’êtes pas verrouillé à un fournisseur LLM et pouvez tester avec un modèle local gratuit.
Vue d’ensemble
| Statistique | Valeur |
|---|---|
| Notebooks | 10 (Labs 8-17) |
| Kernel | Python 3.11+ |
| Durée totale | ~4 jours |
| Prérequis | Days 1-3 ou équivalent |
Architecture Multi-Provider
Ce track utilise une couche d’abstraction provider permettant de brancher n’importe quel LLM compatible OpenAI :
┌─────────────────────────────────────────────────────────────┐
│ Track2-GoogleADK │
├─────────────────────────────────────────────────────────────┤
│ Provider Abstraction Layer (LiteLLM) │
├──────────────┬──────────────┬──────────────┬────────────────┤
│ Gemini │ OpenAI │ vLLM │ Autre │
│ 3.1 API │ Compatible │ Reverse │ OpenAI API │
└──────────────┴──────────────┴──────────────┴────────────────┘
Providers Supportés
| Provider | Endpoint | Use Case |
|---|---|---|
| Google Gemini 3.1 | API Google | Production, meilleure performance |
| vLLM via reverse proxy | Votre endpoint | Modèles locaux hébergés |
| OpenAI | api.openai.com | Alternative cloud |
| OpenRouter | openrouter.ai | Accès multi-modèles |
Structure
Track2-GoogleADK/
├── config/ # Configuration multi-provider
│ ├── providers.py # Abstraction layer
│ └── .env.example # Template configuration
│
├── utils/ # Utilitaires partagés
│ └── llm_client.py # Client LLM unifié
│
├── Day4-Foundations/ # Introduction à l'agentique
│ ├── Lab8-ADK-Introduction.ipynb
│ └── Lab9-First-ADK-Agent.ipynb
│
├── Day5-DS-Star/ # DS-STAR (Data Science autonome)
│ ├── Lab10-File-Analyzer.ipynb
│ ├── Lab11-Planner-Coder-Loop.ipynb
│ ├── Lab12-DS-Star-Workshop.ipynb
│ ├── Lab12b-Sequential-Orchestration.ipynb
│ ├── Lab12c-Agent-Handoff.ipynb
│ ├── Lab12d-Token-Usage.ipynb
│ └── Lab12e-Session-Persistence.ipynb
│
├── Day6-MLE-Star/ # MLE-STAR (ML Engineering)
│ ├── Lab13-Web-Search-SOTA.ipynb
│ ├── Lab14-Ablation-Refinement.ipynb
│ └── Lab15-Kaggle-Challenge.ipynb
│
└── Day7-Production/ # Intégration GCP
├── Lab16-Data-Science-Agent.ipynb
└── Lab17-Final-Project.ipynb
Progression Pédagogique
Day 4 - Foundations (Labs 8-9)
Introduction au framework ADK et configuration multi-provider.
| Lab | Notebook | Objectif |
|---|---|---|
| 8 | ADK-Introduction | Architecture ADK, configuration providers |
| 9 | First-ADK-Agent | Premier agent pour Data Science |
Day 5 - DS-STAR (Labs 10-12, 12b-12d, 18)
Data Science autonome avec l’architecture Planner-Coder-Verifier.
| Lab | Notebook | Objectif |
|---|---|---|
| 10 | File-Analyzer | Analyse de fichiers hétérogènes |
| 11 | Planner-Coder-Loop | Boucle itérative multi-agents |
| 12 | DS-Star-Workshop | Application complète |
| 12b | Sequential-Orchestration | Contrat C4 : désignation séquentielle, orchestrateur explicite (#14058) |
| 12c | Agent-Handoff | Contrat C5 : handoff entre agents câblé et observable (#14058) |
| 12d | Token-Usage | Contrat C6 : traçabilité de la consommation LLM (#14058) |
| 12e | Session-Persistence | Contrat C1b : conversation multi-tours persistante (#14058) |
Day 6 - MLE-STAR (Labs 13-15)
ML Engineering automatisé style Kaggle.
| Lab | Notebook | Objectif |
|---|---|---|
| 13 | Web-Search-SOTA | Recherche de modèles SOTA |
| 14 | Ablation-Refinement | Optimisation ciblée |
| 15 | Kaggle-Challenge | Compétition Kaggle |
Day 7 - Production (Labs 16-17)
Intégration GCP et projet final.
| Lab | Notebook | Objectif |
|---|---|---|
| 16 | Data-Science-Agent | Agent BigQuery/BQML |
| 17 | Final-Project | Projet intégré |
Installation
Environnement
# Python 3.11+
python -m venv venv
venv\Scripts\activate # Windows
source venv/bin/activate # Linux/Mac
# Toutes les dépendances (depuis la racine du repo)
pip install -r MyIA.AI.Notebooks/ML/DataScienceWithAgents/Track2-GoogleADK/requirements.txtConfiguration
# Depuis le dossier Track2-GoogleADK/
cp .env.example .env # Linux/Mac
copy .env.example .env # Windows
# Puis éditer .env et renseigner les clés API du provider choisiProviders LLM supportés (Labs 8+)
| Provider | Variable clé | Notes |
|---|---|---|
| Google Gemini (recommandé) | GEMINI_API_KEY |
Clé gratuite sur aistudio.google.com |
| OpenAI | OPENAI_API_KEY |
Direct ou via OpenRouter |
| OpenRouter | OPENROUTER_API_KEY |
Accès multi-modèles |
| vLLM local | VLLM_BASE_URL |
Via reverse proxy, pas de clé requise |
| LM Studio | LMSTUDIO_BASE_URL |
Local, http://localhost:1234/v1 |
Définir ACTIVE_PROVIDER=gemini (ou vllm, openai, openrouter, lmstudio) dans .env.
Technologies
| Catégorie | Technologies |
|---|---|
| Abstraction | LiteLLM |
| Google ADK | google-adk, google-generativeai |
| Data Science | Pandas, NumPy, Scikit-Learn |
| ML Engineering | MLflow, Optuna |
| Cloud (Day 7) | BigQuery, Vertex AI, BQML |
Concepts clés
| Concept | Description |
|---|---|
| Provider Abstraction | Couche unifiant tous les LLM via LiteLLM |
| ADK Agent | Agent Google avec tools, sessions, mémoire |
| DS-STAR | Architecture Planner-Coder-Verifier pour Data Science |
| MLE-STAR | Agent ML Engineering avec recherche SOTA et ablation |
| Multi-provider | Switch entre Gemini, vLLM, OpenAI sans changer le code |
Objectifs d’apprentissage
À l’issue de cette série, vous serez capable de :
- Configurer un environnement multi-provider (Gemini, vLLM, OpenAI) via LiteLLM et l’abstraction ADK
- Construire un agent ADK avec des outils personnalisés (file analysis, web search, code execution)
- Orchestrer une boucle Planner-Coder-Verifier pour l’analyse autonome de datasets (DS-STAR)
- Optimiser un pipeline ML via recherche SOTA et ablation systématique (MLE-STAR)
- Déployer un agent data science en production avec BigQuery et Vertex AI
Public cible
- Data Scientists maîtrisant Python
- Ingénieurs ML intéressés par les agents
- Étudiants ayant complété Days 1-3 (LangChain)
Prérequis
Technique
- Python 3.11+ et environnements virtuels
- Connaissances Pandas/NumPy (niveau intermédiaire)
- Notions de Machine Learning
API/Cloud
| Mode | Prérequis | Labs Accessibles |
|---|---|---|
| Local seul | vLLM via reverse proxy | Days 4-6 |
| Gemini API | Clé API gratuite | Days 4-6 |
| GCP complet | Projet + Vertex AI | Days 4-7 |
Quel parcours choisir
Parcours agent data science (~2 jours)
Labs 8-12 en séquence. Maîtriser DS-STAR pour automatiser l’analyse de datasets.
- Labs 8-9 -> architecture ADK, premier agent avec outils
- Labs 10-12 -> DS-STAR (file analyzer, planner-coder, workshop)
Parcours ML engineering (~2 jours)
Labs 13-17 en séquence. MLE-STAR pour les compétitions et le déploiement.
- Labs 13-15 -> recherche SOTA, ablation, Kaggle
- Labs 16-17 -> BigQuery/BQML, projet final
Parcours complet (~4 jours)
Tous les labs (8-17) en séquence. Le parcours recommandé pour une formation complète.
Parcours rapide (~0.5 jour)
Labs 8 + 11 + 15. Architecture ADK, boucle planner-coder, et Kaggle. Les trois labs les plus représentatifs.
FAQ / Troubleshooting
Le provider Gemini renvoie une erreur 429 (rate limit)
Gemini API free tier a un quota limité. Solutions :
# Option 1 : ajouter un délai entre les appels
# Dans votre code : time.sleep(2) entre les appels API
# Option 2 : basculer vers un autre provider
ACTIVE_PROVIDER=openai # ou openrouter
# Option 3 : utiliser vLLM local (pas de rate limit)
ACTIVE_PROVIDER=vllm
VLLM_BASE_URL=http://localhost:8000/v1ModuleNotFoundError: No module named 'google.adk'
Le package google-adk n’est pas encore sur PyPI stable. Installer depuis le dépôt :
pip install -r Track2-GoogleADK/requirements.txt
# ou manuellement :
pip install google-generativeai litellmLiteLLM ne parvient pas à se connecter au provider
Vérifier la configuration .env :
# Debug : afficher la config chargée
python -c "from litellm import completion; print('LiteLLM OK')"
# Vérifier que le .env est bien chargé
python -c "from dotenv import load_dotenv; import os; load_dotenv(); print(os.getenv('ACTIVE_PROVIDER'))"Causes courantes : mauvais chemin .env (doit être dans Track2-GoogleADK/), clé API invalide, ou URL base incorrecte pour vLLM.
Les agents bouclent sans converger (Planner-Coder)
Le pattern Planner-Coder-Verifier peut entrer dans une boucle infinie si le prompt du verifier est trop laxiste. Ajuster :
- Ajouter un critère d’arrêt explicite dans le prompt verifier (ex: “si le résultat est cohérent avec les données, arrêter”)
- Limiter le nombre d’itérations :
max_iterations = 5 - Vérifier que le planner a accès aux résultats du coder (pas seulement au code)
Les Labs 16-17 (GCP) échouent sans projet Google Cloud
Les Labs 16-17 nécessitent un projet GCP avec Vertex AI et BigQuery activés. Si vous n’avez pas accès GCP :
- Les Labs 8-15 sont entièrement autonomes et ne nécessitent que Gemini ou vLLM
- Le Lab 17 (Final Project) peut être adapté avec un dataset local au lieu de BigQuery
Conclusion
Vous avez parcouru l’intégralité du track agentique avancé : du premier agent ADK configurable à un pipeline de data science autonome déployable en production. L’enjeu n’était pas d’empiler des frameworks, mais de comprendre les patterns d’orchestration qui rendent un système multi-agents fiable au-delà de la démonstration.
Ce que vous avez appris
- Isoler le provider avant de choisir le modèle. La couche LiteLLM a traité Gemini, vLLM, OpenAI et OpenRouter comme des backend interchangeables. La leçon durable : verrouiller une application sur un LLM unique est un risque architectural ; isoler le fournisseur derrière une interface est un investissement qui se rentabilise dès la première migration ou coupure de quota.
- Le pattern Planner-Coder-Verifier (DS-STAR). Un agent data science crédible n’est pas un prompt unique, mais une boucle où un planner décompose, un coder exécute, et un verifier confronte le résultat aux données avant d’itérer. La FAQ l’a montré concrètement : un verifier trop laxiste fait boucler le système, et c’est la rigueur du critère d’arrêt qui garantit la convergence.
- La recherche SOTA comme point de départ (MLE-STAR). Avant d’optimiser, l’agent identifie l’état de l’art puis mène une ablation systématique. C’est la transcription agentique du bon réflexe de praticien : on ne tune pas à l’aveugle, on part de la baseline publiée et on isole les variables une à une.
- Du notebook au système déployé. Les Labs 16-17 ont articulé l’agent avec BigQuery et Vertex AI, rappelant que la valeur d’un agent data science se mesure en production — coût, latence, volume de données — et non sur un notebook isolé.
Prochaines étapes
- Croiser l’agentique et le raisonnement formel : la série SymbolicAI couple ces patterns d’orchestration avec des solveurs (CSP/SAT, planificateurs), et GameTheory introduit l’agent stratégique face à d’autres décideurs.
- Approfondir l’hebergement de LLM : les notebooks GenAI détaillent l’auto-hebergement de modèles (Qwen, ComfyUI, vLLM) et le routage multi-modèle — la suite naturelle de votre couche LiteLLM quand vous voudrez quitter les APIs commerciales.
- Décider sous incertitude : la série Probas/PyMC formalise la prise de décision bayésienne (théorie de l’utilité, valeur espérée de l’information) qu’un agent data science mature doit intégrer pour agir, pas seulement analyser.
- Vous exercer en autonomie : reprenez un problème Kaggle récent (Lab 15), traitez-le de bout en bout avec votre provider local, puis confrontez votre démarche à celle qu’a suivie l’agent MLE-STAR.
Le fil rouge
La trame de cette série est la réduction progressive de l’intervention humaine. Les Days 1-3 (Track1-LangChain) vous ont appris à piloter un agent ; DS-STAR lui a confié une analyse de bout en bout ; MLE-STAR lui a donné l’initiative de la recherche et de l’optimisation ; les Labs de production l’ont exposé à des contraintes réelles. La frontière entre « outil que l’on dirige » et « collègue que l’on encadre » est précisément ce que ces patterns d’orchestration déplacent — et c’est la compétence que cette série cherche à transmettre.
Ressources
Licence
Voir la licence du repository principal.
Comment passer de LangChain (Days 1-3) à ADK ?
Les concepts se correspondent directement :
ChatOpenAILiteLLM+ provider configTooldecoratorFunctionToolAgentExecutorRunner+SessionLLMChainConversationMemoryLe Lab 8 (ADK Introduction) reprend les mêmes concepts avec la syntaxe ADK.