Il context window è l’unico meccanismo di memoria di un LLM: a ogni turno l’intera sessione (system prompt, prompt, risposte, tool call) viene riappiattita in una sequenza di token e ripassata al modello. Su Towards Data Science, Jake Minns spiega perché una sessione che parte bene perde il filo molto prima di toccare il limite di token, un fenomeno noto come context rot. Il tema conta per chiunque usi strumenti di agentic coding come Claude Code.
Intrinsic rot e content rot
Minns distingue due cause. L’intrinsic rot è una proprietà dell’architettura: l’attention passa per una softmax che distribuisce un budget fisso, e nessun token può avere peso esattamente zero. Il contesto irrilevante non è mai gratis: man mano che la finestra cresce, il margine tra il token giusto e la massa diffusa degli altri si assottiglia, peggiorando il rapporto segnale-rumore. L’articolo cita anche i benchmark needle-in-a-haystack e la curva a U (Liu et al., 2024): l’accuratezza di recupero è massima all’inizio e alla fine, minima nel mezzo, proprio dove in sessioni lunghe vive gran parte del contenuto.
Il content rot è invece l’accumulo di informazioni stantie, sbagliate o contraddittorie, ed è la parte che possiamo gestire. Minns riprende la tassonomia di Drew Breunig con quattro failure mode calati nel coding: caricare troppo nello scope (confusion), lasciare che una deviazione di debug fissi la teoria (clash), cercare troppo largo e tirare dentro look-alike (distraction), e far indurire una nota sbagliata in verità (poisoning). A questi aggiunge il compounding: ogni errore rende il successivo più probabile, e il modello raramente segnala il proprio degrado.
Governare il contesto
La regola pratica è semplice: il contesto non è storage, è input attivo. Da qui una serie di abitudini: curare un CLAUDE.md minimo e ad alto segnale, spostare procedure in skill e regole in hook, disabilitare MCP e skill non necessari con /mcp o /skills, e lasciar pianificare il modello prima di scrivere. Durante il lavoro, tenere l’obiettivo recente, spingere l’output verboso sui subagent, esternalizzare lo stato durevole e tornare alla ground truth con comandi shell (ad esempio !git status o !npm test).
Quando la sessione “gira male”, Minns invita a resettare invece di insistere, contro il sunk cost: due correzioni sullo stesso punto sono il segnale per fare /clear o /compact secondo lo stato. Cita anche Recovery-Bench di Letta, dove agenti a cui viene passata l’intera storia dei tentativi falliti fanno peggio di chi riparte pulito.
- Il budget utile di contesto sta ben sotto il limite dichiarato.
- Passare a una nuova sessione un handoff brief, non l’intero transcript.
- Isolare debug e detour in fork o subagent, riportando solo la conclusione.
Fonte: Context Rot: Why Claude Code Sessions Decay, and How to Govern Them — https://towardsdatascience.com/governed-context-managing-context-rot-in-claude-code/
Hai qualcosa da aggiungere? Unisciti alla discussione.