Le context rot est un problème d'organisation, pas de modèle
TL;DR
Plus le context window est grand, plus tard le context rot arrive — il n'est pas supprimé. La vraie solution est de structurer son travail en sessions courtes avec des livrables vérifiables. C'est une discipline d'organisation, pas un problème à résoudre par le hardware.
Il y a une croyance répandue dans les discussions sur les agents de coding : si le context window était plus grand, les problèmes de context rot disparaîtraient. Gemini 2.0 Pro avec 2M tokens va tout régler. Claude avec 200k tokens résout ce que GPT-4 ne pouvait pas.
C’est faux. Et la confusion coûte du temps à ceux qui la partagent.
Ce que le context rot révèle vraiment
Quand un agent commence à produire des résultats incohérents après 30-40 échanges, la tentation est de blâmer le modèle ou la taille du contexte. “Si j’avais 500k tokens, ça n’arriverait pas.”
En réalité, le context rot dans un workflow de coding est presque toujours le symptôme d’une tâche mal découpée. Si une session atteint 30 échanges avant de produire quelque chose de vérifiable, c’est que la tâche initiale était trop grosse ou trop vague.
J’ai eu cette réalisation en novembre, sur une session de refactoring. Après 2 heures, l’agent avait produit du code, mais il avait dévié des conventions établies au début, contredit une décision d’architecture prise à l’échange 5, et répété deux fois la même explication sur le pattern Repository. J’ai relu la session : le problème n’était pas le modèle. C’était que j’avais brieffé une tâche de “refactoriser le service de paiement” sans critère de sortie.
La même tâche, découpée en trois sessions de 20 minutes avec des checkpoints Git à chaque fin de session, a produit un résultat propre. Le modèle n’avait pas changé.
La vraie nature du context window
Le context window est une ressource à gérer activement, pas un buffer à remplir. L’analogie avec la RAM est plus juste que celle avec le stockage : on ne résout pas un problème de RAM en achetant plus de RAM si le problème est qu’on n’alloue pas et ne libère pas correctement.
Un context window de 1M tokens ne supprime pas le context rot — il le retarde de quelques heures. Les mêmes dynamiques s’appliquent : les instructions initiales perdent de leur influence à mesure que la session s’allonge, la cohérence se dégrade, les hallucinations augmentent.
La vraie solution est de ne jamais avoir besoin d’un context aussi long.
Ce que ça change dans le workflow
La discipline que j’ai adoptée : chaque session commence par une condition de sortie explicite. “Cette session est terminée quand les tests existants passent et que le service X n’a plus de dépendance directe sur Y.” Dès que la condition est atteinte, on coupe. Pas de “tant qu’on y est, on va aussi faire Z.”
En pratique, la durée médiane d’une session efficace est de 15-25 minutes. Les sessions de plus de 45 minutes sont presque toujours le signe d’une tâche mal découpée — soit on l’interrompt et on repart avec un meilleur découpage, soit on la finit mais on sait qu’on va le refaire.
Ce n’est pas une contrainte du modèle. C’est une méthode de travail. Et la même méthode qui rend les sessions plus courtes rend aussi les tâches plus claires, les commits plus propres, et les revues de code plus simples.
Quand les grands contextes sont utiles
Ça ne veut pas dire que les grands context windows ne servent à rien. Ils sont utiles pour des tâches spécifiques : explorer une codebase inconnue pour en produire une cartographie, analyser un gros log d’erreur, ou comparer deux approches architecturales en ayant les deux en contexte simultanément.
Mais ces tâches sont des sessions d’analyse ponctuelles, pas la structure normale d’un workflow quotidien. Pour le travail de production — écrire du code, le tester, le committer — les sessions courtes gagnent à chaque fois.
Cette discipline de découpage n’est plus qu’une habitude personnelle : je la pousse maintenant dans les AGENTS.md et CLAUDE.md partagés du repo, avec la condition de sortie explicite en convention d’équipe. C’est là qu’elle survit aux individus — pas dans ma tête.