Home / Documentazione / Gestione del contesto

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

SchemaComeCompromesso
Finestra scorrevoleMantieni gli ultimi K turni ed elimina gli altriPerde completamente il contesto iniziale
Riepilogo progressivoSostituisci periodicamente i turni precedenti con un riepilogo scritto dal modelloRichiede una chiamata aggiuntiva; conserva l'essenziale
Una nuova sessione per ogni attivitàRiparti da zero quando cambia l'argomentoGratuito e solitamente corretto
EsternalizzaMantieni lo stato in file o in un database e carica solo ciò che serve al passaggio correntePiù 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

Negli strumenti agentici, avviare una nuova sessione tra attività non correlate è l'ottimizzazione più economica disponibile. In Claude Code si usa /clear.