Lab ADK : un tuteur pédagogique qui se souvient de vous
Construire avec Google ADK un tuteur qui évalue le niveau, pose des questions adaptées, ajuste la difficulté et retrouve la progression de l'élève d'une session à l'autre grâce à SQLite.
Un bon tuteur ne pose pas la même question à tout le monde. Il commence par évaluer où vous en êtes, il adapte la difficulté à vos réponses, et la semaine suivante il se souvient que vous butiez sur les décorateurs Python. Dans ce lab, vous construisez exactement cela avec Google ADK (Agent Development Kit, le framework open source de Google pour écrire des agents) et une simple clé d'API Gemini.
Pour qui ?
- Vous savez écrire une fonction Python et lancer
pip install. - Vous avez déjà vu un agent ADK minimal (un
Agent, un outil, unRunner). Sinon, lisez d'abord un lab de niveau débutant. - Aucun projet Google Cloud n'est nécessaire.
Ce que vous allez construire
Un tuteur en ligne de commande qui :
- fait passer un test de positionnement de deux questions sur un thème (Python, SQL…) ;
- pose ensuite une question à la fois, au niveau de l'élève (de 1 « débutant » à 5 « expert ») ;
- applique une règle de progression déterministe (deux bonnes réponses d'affilée : niveau +1 ; deux erreurs : niveau -1) ;
- range la progression dans l'état de session ADK avec le préfixe
user:et la persiste dans un fichier SQLite : en relançant le programme le lendemain, le tuteur reprend là où l'élève s'était arrêté.
flowchart LR
E["Élève (terminal)"] --> R["Runner ADK"]
R --> A["Agent tuteur (Gemini)"]
A -->|"appelle"| T1["definir_niveau"]
A -->|"appelle"| T2["enregistrer_reponse"]
T1 --> S["État user:progression"]
T2 --> S
S --> DB[("tuteur.db (SQLite)")]
DB -->|"relu à la session suivante"| A
Prérequis techniques
- Python 3.10 ou plus récent.
- Une clé d'API Gemini (gratuite pour tester) créée dans Google AI Studio.
- Les dépendances de requirements.txt :
google-adk==2.10.0,aiosqlite,python-dotenv,pytest.
Programme
| Module | Leçon | Durée indicative |
|---|---|---|
| 1. Le cas d'usage | Un tuteur adaptatif : besoin, architecture, choix techniques | 30 min |
| 2. Construire | Les outils et l'état user: ; la mémoire SQLite entre sessions | 1h15 |
| 3. Tester et exploiter | Tests sans clé, élève simulé, mise en service | 45 min |
En local ou sur Google Cloud ?
| En local (ce lab) | Sur Google Cloud (pour aller plus loin) | |
|---|---|---|
| Modèle | API Gemini avec une clé (GOOGLE_API_KEY) | Vertex AI (GOOGLE_GENAI_USE_VERTEXAI=TRUE) |
| Stockage des sessions | SqliteSessionService : un fichier tuteur.db | DatabaseSessionService sur Cloud SQL, ou VertexAiSessionService |
| Exécution | python main.py dans un terminal | Cloud Run (adk deploy cloud_run) |
| Coût | quelques appels au modèle par question | idem + base managée |
Le code complet est dans files/ : agent.py, main.py, test_tuteur.py. Tout a été exécuté le 2026-10-15 avec google-adk 2.10.0 et le modèle gemini-3.5-flash.
Resources
- example.env.example1 KB
- pyagent.py4 KBView
- pymain.py4 KBView
- txtrequirements.txt1 KBView
- pytest_tuteur.py3 KBView
References
- ADK : sessions, état et mémoiregoogle.github.io — Vue d'ensemble des services de session
- ADK : l'état de session (préfixes user:, app:, temp:)google.github.io
- ADK : l'objet Sessiongoogle.github.io
- ADK : outils fonctions et ToolContextgoogle.github.io
- google/adk-python (code source)github.com
- Obtenir une clé d'API Geminiai.google.dev