Context engineering : mémoire, résumés et contexte long
Traiter la fenêtre de contexte comme une ressource : l'ordonner, la compresser, la mettre en cache, et construire un assistant à mémoire long terme (SQLite + embeddings) évalué sur 10 scénarios de rappel.
Un LLM ne se souvient de rien : à chaque appel, il ne connaît que ce que vous mettez dans sa fenêtre de contexte. Le context engineering (ingénierie du contexte), c'est l'art de choisir ce qui y entre, dans quel ordre, sous quelle forme, et ce qui en sort. C'est ce qui fait la différence entre un assistant qui oublie votre prénom à chaque session et un assistant qui se souvient que vous êtes allergique aux arachides, sans pour autant lui renvoyer 50 pages d'historique à chaque question.
Fil rouge : l'assistant interne de l'entreprise fictive « Atelier ». Camille, nouvelle développeuse, lui confie des informations au fil d'une première conversation ; le lendemain, dans une nouvelle session, l'assistant doit s'en souvenir, prendre en compte un changement d'équipe, ne pas mélanger Camille avec Bob, et ne rien inventer.
Pour qui ?
- Développeurs qui ont déjà construit une application LLM (chatbot, RAG ou agent) et veulent la rendre plus fiable, moins chère et capable de mémoire.
- À l'aise avec Python, SQL de base et la notion d'embedding (sinon : la formation « Embeddings et recherche sémantique » de la section Pratiquer).
Ce que vous allez construire
flowchart LR
U["Message de Camille"] --> R["Rappel : top-k faits par similarité"]
DB[("SQLite : faits + embeddings")] --> R
R --> B["build_context : consignes, faits, résumé, tours récents, question"]
RS["Résumé glissant"] --> B
B --> M["Gemini"]
M --> A["Réponse"]
U --> X["Extraction : ajouter, remplacer, supprimer"]
X --> DB
A --> RS
Le code est dans files : memoire.py (stockage, rappel, extraction), contexte.py (ordre, budget, résumé glissant), assistant.py (l'assistant), eval_rappel.py et scenarios.json (l'évaluation), demo_contexte.py et catalogue.py (contexte long, cache, RAG), test_memoire.py (tests sans clé).
Prérequis techniques
- Python 3.10 ou plus récent,
pip install -r requirements.txt(requirements.txt). - Une clé d'API Gemini ou un projet Google Cloud avec Vertex AI ; voir .env.example.
Programme
| Module | Contenu | Durée indicative |
|---|---|---|
| 1. La fenêtre de contexte | Tokens, coût, dégradation dans les longs contextes, ordonner et budgéter | 1h |
| 2. Résumés et mémoire long terme | Résumé glissant, extraction de faits, mises à jour, stockage SQLite + embeddings, rappel par similarité | 1h45 |
| 3. Contexte long, cache et RAG | Cache implicite et explicite, document entier contre RAG, mesures réelles | 1h |
| 4. Projet final | Assistant à mémoire persistante, 10 scénarios de rappel, 3 configurations comparées (qualité, tokens, coût) | 1h15 |
En local ou sur Google Cloud ?
| API Gemini (clé) | Vertex AI (projet GCP) | |
|---|---|---|
| Modèles testés le 2026-10-15 | gemini-3.5-flash, gemini-3.5-flash-lite, gemini-embedding-2 | gemini-2.5-flash, gemini-2.5-flash-lite, gemini-embedding-001 (europe-west1) |
| Mémoire | fichier SQLite local | idem en test ; en production, Cloud SQL ou Firestore |
| Cache explicite | client.caches.create(...), supprimé à la fin | même code ; le cache est une ressource du projet, à supprimer |
| Ce qui change dans le code | rien | trois variables d'environnement |
Ce que vous saurez faire
- Mesurer ce que coûte un contexte et décider ce qui mérite d'y entrer.
- Construire une mémoire qui retient, met à jour et oublie, et la rappeler par similarité.
- Choisir entre contexte long, cache et RAG en fonction de vos mesures.
- Évaluer une mémoire sur des scénarios reproductibles, avec des métriques de qualité et de tokens.
الموارد
- example.env.example1 KB
- pyassistant.py3 KBعرض
- pycatalogue.py2 KBعرض
- pycontexte.py3 KBعرض
- pydemo_contexte.py3 KBعرض
- pyeval_rappel.py4 KBعرض
- pymemoire.py7 KBعرض
- txtrequirements.txt1 KBعرض
- jsonscenarios.json3 KBعرض
- pytest_memoire.py5 KBعرض
المراجع
- Effective context engineering for AI agents (Anthropic)anthropic.com — Le contexte comme ressource finie à gérer
- Lost in the Middle: How Language Models Use Long Contexts (Liu et al., 2023)arxiv.org
- MemGPT: Towards LLMs as Operating Systems (Packer et al., 2023)arxiv.org — Mémoire hiérarchique pour agents conversationnels
- Mise en cache du contexte (API Gemini)ai.google.dev
- Mise en cache du contexte (Vertex AI)cloud.google.com
- Contexte long (API Gemini)ai.google.dev
- Embeddings (API Gemini)ai.google.dev — Préfixes de tâche pour gemini-embedding-2
- Compter les tokens (API Gemini)ai.google.dev