Module 4 — Les 5 patterns de dégradation
Objectif
À la fin de ce module, tu sauras diagnostiquer les 5 patterns de dégradation et appliquer la mitigation adaptée.
Les 5 patterns
| Pattern | Symptôme | Cause | Mitigation |
|---|---|---|---|
| Lost-in-middle | Info présente mais ignorée | Position au milieu du contexte | Déplacer aux bords, ajouter résumés |
| Poisoning | Hallucination persistante malgré correction | Fausse info entrée dans le contexte | Tronquer avant le point de poison |
| Distraction | Performance baisse avec contenu additionnel | Info non pertinente compétitionne | Filtrer avant chargement |
| Confusion | Réponses mélangeant plusieurs tâches | Multi-tâches dans un seul contexte | Isoler par session |
| Clash | Réponses contradictoires | Sources contradictoires en contexte | Établir priorité, marquer conflits |
Pattern 1 : Lost-in-Middle
Détection :
- L’info existe dans le contexte mais le modèle l’ignore
- Réponses contredisant les données fournies
- Le modèle “oublie” des instructions données plus tôt
Exemple :
User: "N'oublie pas d'utiliser Zustand, pas Redux"
[... 50 messages plus tard ...]
Agent: "J'ai installé Redux et configuré le store..."
Mitigation :
- Placer les contraintes au début ET à la fin
- Ajouter des résumés aux bords des longs documents
- Utiliser des headers explicites comme ancres d’attention
Pattern 2 : Context Poisoning
Détection :
- Hallucination qui persiste malgré correction explicite
- Mauvais outil appelé ou mauvais paramètres
- Qualité dégradée sur des tâches précédemment réussies
Exemple :
Tour 5 : L'agent lit un document obsolète disant que l'API est v1
Tour 10 : L'agent continue de citer v1 malgré correction
Tour 15 : Toutes les décisions sont basées sur v1
Mitigation :
- Identifier le premier tour où la fausse info est entrée
- Tronquer ou redémarrer avant ce point
- Recharger uniquement les sources vérifiées
- Noter la source rejetée pour éviter répétition
Ne JAMAIS : ajouter des corrections par-dessus le contexte empoisonné. L’erreur originale garde du poids attentionnel.
Pattern 3 : Context Distraction
Détection :
- Performance baisse quand des documents non pertinents sont ajoutés
- Même un seul document non pertinent a un impact disproportionné
Recherche : L’impact suit une fonction en escalier, pas linéaire. Le premier distractor est le plus coûteux.
Mitigation :
- Filtrer par pertinence avant chargement
- Utiliser des appels d’outils à la place du pré-chargement
- Score de pertinence : exclure tout ce qui est sous le seuil
Pattern 4 : Context Confusion
Détection :
- Réponses s’adressant au mauvais aspect d’une requête
- Appels d’outils appropriés pour une tâche différente
- Outputs mélangeant des exigences de plusieurs sources
Exemple :
Contexte contient :
- Tâche A : refactor auth
- Tâche B : ajouter logging
Agent : "J'ai ajouté le logging dans le middleware d'auth"
→ Mélange des contraintes des deux tâches
Mitigation :
- Segmenter les tâches dans des contextes séparés
- Utiliser des marqueurs de “reset de contexte” entre tâches
- Une session = une tâche
Pattern 5 : Context Clash
Détection :
- Sources correctes mais contradictoires
- Le modèle choisit aléatoirement entre elles
- Pas de signal de conflit
Exemple :
Doc A : "L'endpoint est /charges" (v1)
Doc B : "L'endpoint est /payments" (v2)
Mitigation :
- Filtrer les versions obsolètes avant chargement
- Marquer explicitement les conflits :
conflit:
sujet: endpoint de facturation
source_a: docs/v1.md → /charges
source_b: docs/v2.md → /payments
priorité: docs/v2.md
raison: version en production
Le framework des 4 buckets
Quand tu détectes un pattern, applique l’une de ces 4 stratégies :
| Stratégie | Quand | Comment |
|---|---|---|
| Write | Utilisation > 70% | Sauver contexte hors fenêtre (fichiers, scratchpads) |
| Select | Distraction / confusion | Ne charger que le contexte pertinent |
| Compress | Tout est pertinent mais trop volumineux | Résumer tout en préservant les décisions |
| Isolate | Multi-tâches | Splitter en subagents avec contextes séparés |
Checklist de validation
- Je reconnais les 5 patterns de dégradation
- Je sais quel pattern correspond à mes symptômes
- Je peux appliquer la mitigation adaptée
- Je connais le framework des 4 buckets
Piège courant
Diagnostiquer “dégradation” quand c’est un problème de prompt. → Avant de diagnostiquer un pattern de dégradation, vérifie que le même prompt fonctionne correctement à faible contexte (2K tokens). Si ça échoue déjà à 2K, le problème est le prompt, pas le contexte.
Prochaine étape
→ Module 5 (Compaction intentionnelle fréquente) pour apprendre à compacter proprement