Context window, context rot e sessioni stateless
I concetti da capire prima di riempire una chat o avviare un agente
La context window è la quantità di informazioni che un modello può usare in una richiesta o conversazione. Non è memoria infinita: se la riempi con log, file, tentativi e discussioni laterali, il modello può diventare meno affidabile e più costoso. Context rot indica proprio questo degrado pratico. Le sessioni API sono spesso stateless se non passi o persisti tu la cronologia, quindi conviene salvare decisioni e specifiche in file, non solo nella chat.
Risposta breve
La context window è la memoria di lavoro del modello: contiene prompt, file, cronologia, tool e output usati per generare la risposta. Context rot è il degrado che arriva quando quel contesto diventa rumoroso. Stateless significa che una richiesta non ricorda automaticamente le precedenti se l'app o l'API non le reinvia o non usa un sistema di stato.
- Una context window grande permette task lunghi, ma non rende utile ogni token allo stesso modo.
- Una chat lunga può peggiorare perché informazioni importanti vengono sepolte sotto rumore, log e tentativi vecchi.
- Ripartire da una chat pulita funziona meglio quando le decisioni sono state salvate in file, spec o istruzioni leggere.
- AGENTS.md e skill aiutano solo se restano sintetici: anche loro entrano nel contesto e hanno un costo.
Confronto rapido
| Criterio | Concetto | Perché conta |
|---|---|---|
| Context window | È il perimetro di testo, codice, file, tool e cronologia che il modello può vedere in un turno | Se il materiale utile non entra o viene compresso male, la risposta dipende da riassunti, retrieval o istruzioni mancanti |
| Context rot | È il degrado che arriva quando il contesto contiene troppo rumore rispetto al task corrente | Il modello può seguire vecchie ipotesi, perdere il punto, ripetere errori o spendere token prima ancora di lavorare |
| Sessione stateless | Ogni richiesta è indipendente se non passi cronologia, previous response, conversation object o contesto equivalente | Non basta dire in una nuova chat 'come prima' se le decisioni importanti non sono state salvate da qualche parte |
| Compaction | È una riduzione del contesto che conserva stato utile con meno token | Aiuta sessioni lunghe, ma una sintesi può perdere dettagli: per decisioni importanti conviene scrivere file espliciti |
| Istruzioni persistenti | File come AGENTS.md vengono caricati all'inizio del lavoro e danno regole stabili | Sono preziosi per norme ricorrenti, ma se diventano enciclopedici consumano contesto in ogni sessione |
Esempi pratici
Questi esempi non sono prezzi in dollari: mostrano come cambia qualità, costo e affidabilità quando il contesto cresce o viene ripulito.
Chat lunga di debug
Molti log e tentativi vecchi · Risposte più caute e ripetitive
Effetto sul contesto
Contesto rumoroso
Scelta pratica
Apri una chat pulita con bug, file, log minimo e test
Quando il thread contiene ipotesi superate, ripartire da un brief pulito può costare meno che continuare ad aggiungere messaggi.
Spec salvata in file
Spec sintetica e aggiornata · Patch più mirata
Effetto sul contesto
Contesto stabile
Scelta pratica
Riparti dalla spec invece che dalla memoria della chat
Una spec rende la chat sacrificabile: puoi aprire una sessione nuova senza perdere decisioni di prodotto e criteri di verifica.
AGENTS.md troppo lungo
Regole, eccezioni e storia del progetto · Meno spazio per task reale
Effetto sul contesto
Costo fisso a ogni sessione
Scelta pratica
Tieni solo norme ricorrenti, sposta dettagli in doc linkati
Le istruzioni globali vanno trattate come memoria costosa: utili se cambiano il comportamento spesso, dannose se sono archivio.
Cos'è la context window
La context window è la quantità di informazione che il modello può considerare mentre genera una risposta. Include prompt, messaggi precedenti, file, tool disponibili, risultati di strumenti e istruzioni di sistema. Google la descrive come una memoria di breve termine: può essere molto grande, ma resta limitata e va usata con criterio.
- Una context window più grande permette di caricare più materiale, ma aumenta anche costo e superficie di confusione.
- Il modello non vede ciò che non viene incluso, recuperato, riassunto o salvato in uno stato accessibile.
- Nei task lunghi conviene distinguere contesto stabile, contesto temporaneo e rumore operativo.
Cos'è il context rot
Context rot è il nome pratico del degrado che si vede quando una sessione si riempie di informazioni meno rilevanti. Codex lo collega a context pollution: log, stack trace, note esplorative e output intermedi possono seppellire requisiti e decisioni. Il problema non è solo il limite massimo: è il rapporto tra segnale e rumore.
- Segnali tipici: il modello ripete vecchie ipotesi, ignora vincoli recenti o chiede di nuovo cose già chiarite.
- Il rischio cresce quando l'agente esplora molto prima di avere un obiettivo chiaro.
- Un riassunto aiuta, ma non sostituisce una spec o un file decisionale ben tenuto.
Cosa significa stateless
Stateless significa che una richiesta non porta con sé memoria automatica. OpenAI documenta che ogni richiesta di text generation è indipendente e stateless se non passi tu messaggi precedenti o usi API stateful. In un'app chat questo dettaglio può essere nascosto dall'interfaccia, ma sotto il costo resta: la cronologia o uno stato equivalente devono arrivare al modello.
- In una API stateless, se vuoi continuità devi reinviare messaggi, previous response o conversation state.
- In una chat consumer, la piattaforma può gestire lo stato per te, ma la context window resta comunque finita.
- In un agente di coding, il modo più robusto per portare avanti decisioni è salvarle in file versionati.
Perché una chat pulita può migliorare il risultato
Una chat pulita non è una superstizione: riduce rumore, rimuove tentativi falliti e obbliga a esplicitare il task. Funziona soprattutto quando parti da un brief aggiornato: obiettivo, vincoli, file rilevanti, decisioni prese e verifiche. Senza questo passaggio, una chat nuova rischia solo di perdere memoria utile.
- Riparti pulito dopo esplorazioni lunghe, debug falliti o cambi di direzione.
- Porta nella nuova sessione solo decisioni, fonti, file e test necessari.
- Mantieni nel repository la verità stabile: spec, issue, README, AGENTS.md o skill.
Quando usare compaction o riassunti
La compaction riduce il contesto preservando lo stato necessario per continuare. OpenAI la presenta come un modo per bilanciare qualità, costo e latenza nelle conversazioni lunghe. È utile, ma non è magia: una compaction opaca o un riassunto troppo breve possono perdere dettagli che contano.
- Usala per sessioni lunghe con molti passaggi tecnici o tool call.
- Non affidarle decisioni critiche senza salvarle anche in forma leggibile.
- Se il task cambia, meglio una nuova sessione con spec aggiornata che una catena compatta troppo lunga.
Regola pratica
La regola è semplice: tutto ciò che serve spesso va in una fonte stabile e sintetica; tutto ciò che serve una volta resta nella chat; tutto ciò che è rumore va eliminato o spostato in un lavoro isolato. Così risparmi token e migliori il comportamento dell'agente.
- Stabile e ricorrente: AGENTS.md, skill, documentazione e script.
- Temporaneo ma utile: task brief, log minimo, file rilevanti, output di test.
- Rumore: debug falliti, raw output lunghi, ipotesi scartate e conversazioni laterali.
Domande frequenti
Context window vuol dire memoria permanente?
No. È memoria di lavoro per la richiesta o sessione corrente. La memoria permanente richiede sistemi separati: cronologia gestita dall'app, conversation state, retrieval, file o istruzioni persistenti.
Una context window più grande risolve il context rot?
Non da sola. Una finestra più grande permette più materiale, ma può anche contenere più rumore. Serve comunque selezionare, riassumere e salvare decisioni importanti.
Quando devo aprire una chat nuova?
Aprila quando la sessione ha molte ipotesi superate, log lunghi o cambi di direzione. Prima salva in un file compatto ciò che deve sopravvivere: obiettivo, decisioni, vincoli e test.
AGENTS.md fa risparmiare token?
Può far risparmiare ripetizione umana, ma non è gratis: viene letto all'inizio del lavoro. Conviene usarlo per regole ricorrenti, non per accumulare ogni dettaglio del progetto.