AI and Automation26 luglio 20267 min di lettura

Context window di Claude Code: gestirla come un budget di token

Una sessione nuova di Claude Code spende già circa 20.000 token prima che tu scriva. Ecco come /context, /compact e /clear tengono viva la finestra da 200K.

white and blue analog tachometer gauge

La gestione della context window in Claude Code è la pratica di controllare cosa resta nella finestra da 200.000 token del modello, così l'agente rimane preciso man mano che la sessione cresce. Una context window non è spazio di archiviazione gratuito. È un budget di lavoro, e si degrada mentre si riempie.

Quasi tutti incontrano questo limite allo stesso modo. La sessione va per le lunghe, Claude inizia a dimenticare il file che ha modificato dieci minuti prima, e la soluzione sembra magia quando qualcuno finalmente scrive /clear. Non c'è nessuna magia. È gestione di un budget. Ecco come si riempie la finestra, perché una finestra piena fa danni, e i pochi comandi che la tengono in ordine.

La versione in 30 secondi

  • La finestra contiene 200.000 token di default. Una sessione nuova ne spende già circa 20.000 per il setup, e altri 33.000 circa restano riservati all'auto-compattazione.
  • La precisione cala man mano che la finestra si riempie. È il context rot, e comincia molto prima del limite massimo.
  • /context mostra la ripartizione, /compact riassume il thread, /clear lo azzera.
  • Compatta al 50-70% di riempimento, non aspettare l'auto-trigger al 95%. Apri una sessione nuova per ogni task.
  • Sposta le letture pesanti nei subagent, così spendono il loro budget e non il tuo.

Cos'è la context window di Claude Code?

La context window è ogni token che Claude vede in un dato momento: il system prompt, le definizioni dei tool, il tuo CLAUDE.md, le skill caricate e tutto lo scambio della conversazione. Il default è 200.000 token. Opus 4.6 e successivi, e Sonnet 4.6, arrivano a una finestra da un milione di token quando la attivi.

Parte già carica. Una sessione nuova spende circa 20.000 token per il system prompt, le definizioni dei tool e il CLAUDE.md prima ancora che tu scriva una parola. Claude Code tiene inoltre da parte un buffer per l'auto-compattazione, circa 33.000 token all'inizio del 2026, scesi dai 45.000 precedenti. Quindi su una finestra da 200K parti con circa 147K di spazio utile, non con i 200K pieni.

Perché una finestra piena rende Claude peggiore

La finestra ha un tetto rigido, ma i problemi veri arrivano molto prima di toccarlo. I ricercatori l'hanno chiamato context rot: la precisione del modello scende man mano che l'input si allunga, su molti tipi di task, non solo sul recupero di un ago nel pagliaio.

Il calo ha una forma. Quando la finestra è piena a meno della metà, il modello guarda soprattutto l'inizio e la fine e scorre veloce il centro. Oltre la metà, l'attenzione si sposta verso i token più recenti e i primi svaniscono. In una sessione di codice questo vuol dire che il vincolo dato al terzo messaggio è la prima cosa a saltare. Anthropic chiama la risposta context engineering: trattare i token dati al modello come una risorsa scarsa e sceglierli con cura.

L'obiettivo quindi non è sopravvivere fino al tetto dei 200K. È tenere la finestra abbastanza piccola perché il modello ragioni ancora bene su ciò che contiene.

I cinque comandi che governano il budget

Claude Code ti dà pochi strumenti. Quattro comandi leggono o rimodellano la finestra. Uno riporta il costo.

  • /context mostra dove va ogni token: system prompt, tool, file di memoria, skill e conversazione, con il buffer di auto-compattazione riservato in evidenza. Lancialo per primo quando la sessione ti sembra pesante.
  • /status riporta le metriche di sessione senza cambiare nulla.
  • /compact riassume la conversazione fino a quel punto e sostituisce la cronologia grezza con quel riassunto, tiene il ragionamento e lascia andare il peso in token. /compact focus on X guida cosa il riassunto conserva.
  • /clear cancella la conversazione e riporta il contesto a zero. È il reset quando passi a un lavoro slegato.
  • /usage (anche /cost) riporta la spesa rispetto ai limiti del piano.

Lasciato a sé, Claude Code auto-compatta quando la finestra tocca circa il 95% della capacità. Quel default arriva tardi. Al 95% il modello ha già ragionato per un po' su una finestra gonfia, e il riassunto che scrive sotto pressione è più debole di uno che attivi di proposito.

Come spendiamo il budget

Tre abitudini tengono viva la finestra. Nessuna è ingegnosa. Tutte costano poco.

Apri una sessione nuova per ogni task. La regola pratica di Anthropic è task nuovo, sessione nuova. Un refactoring, la caccia a un bug e una passata alla documentazione non condividono quasi nulla. Trascinarne uno nel successivo paga l'affitto su token che il modello poi deve ignorare. Chiudi, /clear, riparti pulito.

Compatta presto, non al 95%. Quando resti sullo stesso task ma il thread si allunga, lancia /compact tu, da qualche parte tra il 50 e il 70% di riempimento. Tieni le decisioni e la lista dei file; lasci andare l'output grezzo dei tool che ha mangiato lo spazio. Aggiungi una riga al CLAUDE.md che dice a Claude cosa una compattazione deve conservare, per esempio la lista completa dei file modificati e il comando di test, così il riassunto non butta via proprio ciò che ti serviva.

Leggi /context prima di dare la colpa al modello. Quando Claude diventa smemorato, di solito la finestra è piena all'80% di un solo dump gigante o di un tool che ha restituito 40.000 token di JSON. /context te lo mostra in una schermata. La soluzione è quasi sempre strutturale, un cambio in ciò che gli dai da leggere più che un prompt più furbo.

Un esempio concreto. Apri una sessione per sistemare un test che fallisce e, a metà strada, chiedi a Claude anche di rifattorizzare il modulo e aggiornare la documentazione. Al terzo lavoro il modello rilancia il test in modo sbagliato, perché l'errore iniziale è sepolto sotto due task successivi. La risposta del budget: finisci la correzione del test, /clear, poi apri il refactoring come sessione a sé, con la sua finestra pulita.

La finestra da un milione di token risolve tutto?

Opus e Sonnet ora arrivano a una finestra da un milione di token, e la domanda ovvia è se questo chiuda la questione. No. Una finestra più grande alza il tetto; non abolisce il context rot. Perdi comunque precisione man mano che la finestra si riempie, solo più tardi e a costo più alto, perché paghi per ogni token in entrata e in uscita. Alcuni sviluppatori tengono di proposito la finestra da 200K invece di quella da un milione, perché il budget più piccolo impone la disciplina che tiene l'output affilato. La dimensione della finestra è un tetto. Il budget resta da gestire.

Togli lavoro dalla finestra: subagent e CLAUDE.md

Il token migliore è quello che nella tua finestra non entra mai. Due meccanismi spostano il lavoro altrove.

I subagent girano in una context window separata, tutta loro. Affida a un subagent la lettura di una cartella grande o un'indagine lunga: spende il suo budget e restituisce alla sessione principale un riassunto breve. La lettura da 40.000 token resta nella finestra del subagent, non nella tua. Per tutto ciò che è esplorativo, è la mossa a più alto rendimento.

Il CLAUDE.md si carica a ogni sessione, quindi è budget permanente. Trattalo così. Un CLAUDE.md gonfio è una tassa sul conteggio dei token, in ogni sessione, prima ancora che tu scriva. Tienilo corto e sempre attivo, sposta le regole da far rispettare negli hook e la conoscenza contestuale nelle skill. La versione lunga di questa divisione l'abbiamo scritta in un articolo dedicato al CLAUDE.md, e le abitudini a livello di sessione stanno nel nostro flusso di lavoro quotidiano con Claude Code.

Tutta la disciplina si riduce a un'idea. La finestra è un budget con un saldo fisso e un costo che scorre, e l'agente si intorpidisce man mano che il saldo cala. Controllala con /context, spendila su un solo task, ricaricala con /clear.

Foto di Chris Liverani su Unsplash

Domande frequenti

/clear cancella il mio codice o solo la conversazione?

/clear cancella solo la cronologia della conversazione nella sessione corrente. I file su disco, la cronologia git e tutto ciò che hai già salvato restano intatti. Quello che perdi è la memoria di Claude sulla discussione: il ragionamento, le istruzioni precedenti, i file che aveva letto. Se quel contesto conta ancora, usa /compact, che ne tiene un riassunto. Usa /clear quando il task successivo parte davvero da zero.

Ogni quanto conviene lanciare /clear in Claude Code?

Usa i confini tra i task, non un timer. Ogni volta che passi a un lavoro slegato, una feature nuova, un bug diverso, una passata alla documentazione, lancia /clear e riparti pulito. Dentro un singolo task lungo, usa invece /compact per tenere il ragionamento del thread. Un segnale grezzo: se faticheresti a spiegare come la richiesta attuale si collega a quella precedente, la finestra sta portando peso morto e un reset aiuta.

Perché Claude dimentica le istruzioni in una sessione lunga?

Perché l'attenzione non è uniforme su una finestra piena. Superata più o meno la metà, il modello pende verso i token più recenti e i primi svaniscono. Un'istruzione data all'inizio di una sessione lunga è proprio il tipo di token iniziale che scivola via. È il context rot, ed è il motivo per cui compattare presto o ripetere un vincolo chiave a metà sessione funziona meglio del semplice andare avanti.

La finestra da un milione di token costa più di quella da 200K?

Sì. Paghi per ogni token in entrata e in uscita, quindi una finestra più grande che riempi davvero costa di più a turno rispetto a una sessione snella da 200K. La finestra più ampia inoltre non elimina il context rot, lo rimanda soltanto. Per gran parte del lavoro di codice, una finestra più piccola tenuta in ordine con /compact e /clear è più economica e più lucida di una finestra enorme lasciata riempire.

Articoli correlati

Studio

Inizia un progetto.

Un partner unico per il prodotto digitale che devi costruire. Produzione più veloce, tecnologie moderne, costi ridotti. Un team, una fattura.