Gestione del contesto
Perché il costo delle sessioni lunghe cresce in modo non lineare e quali strategie mantengono limitata la cronologia.
L'API non mantiene lo stato. A ogni turno viene reinviata l'intera conversazione, quindi i token di input aumentano con la cronologia — e il costo aumenta di conseguenza, a ogni chiamata successiva.
La natura del problema
Una conversazione di N turni, ciascuno dei quali aggiunge circa T token, comporta complessivamente un consumo di token di input nell'ordine di N²T/2 anziché NT. Raddoppiare la durata della sessione quadruplica all'incirca la spesa per l'input. Ecco perché un agente che sembrava economico per dieci minuti diventa allarmante dopo un'ora.
Quattro approcci che funzionano
| Schema | Come | Compromesso |
|---|---|---|
| Finestra scorrevole | Mantieni gli ultimi K turni ed elimina gli altri | Perde completamente il contesto iniziale |
| Riepilogo progressivo | Sostituisci periodicamente i turni precedenti con un riepilogo scritto dal modello | Richiede una chiamata aggiuntiva; conserva l'essenziale |
| Una nuova sessione per ogni attività | Riparti da zero quando cambia l'argomento | Gratuito e solitamente corretto |
| Esternalizza | Mantieni lo stato in file o in un database e carica solo ciò che serve al passaggio corrente | Più lavoro, risultato migliore |
Riepilogare i turni precedenti
def compact(history, keep=6):
class="s">""class="s">"Replace everything but the last `keep` turns with one summary turn."class="s">""
if len(history) <= keep:
return history
old, recent = history[:-keep], history[-keep:]
summary = summarise(old) class=class="s">"c"># one cheap Haiku call
return [{class="s">"role": class="s">"user", class="s">"content": fclass="s">"Summary of earlier discussion: {summary}"}] + recent
Esegui la sintesi con un modello economico. È un'attività di compressione, non di ragionamento.
I risultati degli strumenti sono solitamente i responsabili
- Uno strumento che restituisce 500 righe inserisce 500 righe in ogni richiesta successiva. Limita le righe oppure restituisci un riepilogo insieme a un riferimento per recuperare i dettagli su richiesta.
- Il contenuto completo dei file letti da un agente rimane nel contesto. Leggi la sezione che ti serve, non l'intero file.
- Screenshot e immagini vengono reinviati come qualsiasi altro contenuto: rimuovili una volta descritti.
- Log di compilazione e stack trace: conserva le prime e le ultime 50 righe, elimina quelle centrali.
Negli strumenti agentici, avviare una nuova sessione tra attività non correlate è l'ottimizzazione più economica disponibile. In Claude Code si usa
/clear.