Corso / builder / capitolo 4

Dare memoria e stato: agenti che ricordano

durata: 17 minprerequisiti: builder cap. 1-3percorso: builder
ALLA FINE SAPRAI
· distinguere la memoria di conversazione dallo stato persistente fra sessioni
· decidere cosa dello stato di un agente vale la pena scrivere e conservare
· riconoscere quando uno stato disallineato dalla realtà causa decisioni sbagliate
Persona dai capelli scuri legge un libro seduta a una scrivania con monitor, tastiera, mouse e portapenne.

Hai mai dato a un agente una serie di istruzioni dettagliate, chiuso la finestra, riaperto il giorno dopo e scoperto che si era dimenticato tutto? La conversazione precedente è sparita, e devi ricominciare da capo. È frustrante, soprattutto se l’agente lavorava su qualcosa che evolve nel tempo: una lista di compiti, un insieme di preferenze, un progetto che avanza a pezzi.

Questa lezione ti fa vedere la differenza fra la memoria dentro una conversazione e lo stato che persiste fra le sessioni. Ti mostra come dare a un agente la capacità di ricordare ciò che conta, e come accorgerti quando quello che ricorda non corrisponde più alla realtà.

Due tipi di memoria molto diversi

Quando parli con un assistente, lui tiene traccia della conversazione mentre procede. Tu gli scrivi qualcosa, lui risponde, tu correggi, lui si adegua. Finché la finestra resta aperta, l’agente ha sotto mano tutto lo scambio. Questa è la memoria di conversazione, ed è quella che usi già senza pensarci.

Il problema arriva quando chiudi e riapri. La conversazione sparisce, e con essa tutto ciò che l’agente aveva capito del tuo lavoro, delle tue preferenze, delle tue convenzioni. Se lo usi una volta al mese per una domanda isolata, questo non è un problema. Se invece ci lavori ogni giorno su compiti ricorrenti, ricominciare da zero ogni volta diventa insostenibile.

Lo stato persistente è qualcosa di diverso. È un insieme di informazioni che l’agente scrive da qualche parte, fuori dalla conversazione, e rilegge quando serve. Non è automatico: devi progettarlo, decidere cosa vale la pena conservare, e dargli un posto dove metterlo. Può essere un file di testo, un foglio di calcolo condiviso, un database, qualsiasi cosa che sopravviva alla chiusura della finestra.

L’analogia migliore è quella del collega che prende appunti. Durante la giornata ti ricorda tutto quello che gli hai detto nelle ultime ore, perché ce l’ha in testa. Ma se il giorno dopo deve ripartire dallo stesso punto, gli servono gli appunti. Senza, ricomincia da zero.

Fumetti di conversazione, freccia verso documento con elenco puntato, freccia verso persona che legge con lampadina sopra la testa.

In pratica: un agente che gestisce una lista di compiti

Immagina di usare un agente per tenere traccia dei tuoi impegni settimanali. Gli scrivi cosa devi fare, lui tiene la lista aggiornata, ti ricorda le scadenze, ti aiuta a decidere le priorità. Dentro la stessa conversazione funziona bene: aggiungi un compito, lui lo registra, togli un compito, lui lo cancella.

Ma se chiudi e riapri il giorno dopo, la lista è sparita. Per farla persistere, devi dargli uno stato. La soluzione più semplice è un file condiviso. All’inizio della conversazione, gli dici di leggere il file, usarlo come punto di partenza, e riscriverlo ogni volta che la lista cambia. In questo modo, la prossima sessione parte da dove eri rimasto.

Ecco come si presenta in concreto. Prima di tutto, crei un file di testo chiamato compiti.md e lo metti in una cartella accessibile all’agente. Poi apri una nuova conversazione e scrivi:

Leggi il file compiti.md nella cartella Progetti.
Usa quella lista come punto di partenza.
Ogni volta che aggiungo, tolgo o modifico un compito, riscrivi il file con la versione aggiornata.
Conferma quando hai letto il file e dimmi quanti compiti ci sono.

L’agente legge il file, ti dice cosa trova, e da quel momento ogni modifica che fai viene scritta. Chiudi, riapri domani, gli dici di nuovo di leggere il file, e ripartite dallo stesso punto. La lista è sopravvissuta alla chiusura della finestra.

Cosa vale la pena conservare

Non tutto merita di diventare stato persistente. La regola pratica è questa: scrivi ciò che, se sparisse, ti farebbe ricominciare da capo. Una lista di compiti sì, un brainstorming fatto una volta sola probabilmente no. Le preferenze su come formatti le tue mail sì, una bozza che hai già corretto e archiviato no.

Lo stato persistente ha un costo. Ogni volta che l’agente deve rileggere qualcosa, impiega token e tempo. Se il file diventa enorme, rallenta, e rischi che le informazioni più vecchie inquinino le decisioni nuove. Meglio conservare poco e pertinente, e pulire regolarmente ciò che non serve più.

Un’altra cosa da tenere a mente: lo stato deve essere leggibile anche da te. Se l’agente scrive in un formato che solo lui capisce, perdi la capacità di controllare cosa sta conservando. Un file di testo semplice, un foglio di calcolo, un elenco puntato sono tutti ottimi: li apri, li leggi, capisci subito se qualcosa non va.

Quando lo stato mente

Il problema più insidioso dello stato persistente è il disallineamento. Succede quando ciò che l’agente ha scritto non corrisponde più alla realtà, ma lui continua a usarlo come se fosse vero. Un compito che hai già finito ma è ancora nella lista. Un contatto che ha cambiato ruolo ma l’agente lo tratta ancora come prima. Un budget che è stato rivisto ma il file non è stato aggiornato.

Quando lo stato è disallineato, le decisioni dell’agente diventano sbagliate. Ti propone di lavorare su qualcosa che hai già chiuso. Ti dà per scontato un vincolo che non esiste più. Ti ricorda una scadenza che è slittata. E tu devi correggerlo ogni volta, il che vanifica il vantaggio di avere uno stato.

La soluzione è semplice ma richiede disciplina: controlla lo stato regolarmente. Aprilo, leggilo, verifica che sia allineato. Se trovi qualcosa di vecchio o sbagliato, correggilo subito. Non aspettare che l’agente se ne accorga, perché non succederà. Lui usa quello che trova scritto, e se quello che trova è obsoleto, agisce di conseguenza.

Un buon ritmo è controllare lo stato all’inizio di ogni sessione di lavoro con l’agente. Gli dici di leggere il file, lui ti riporta cosa c’è, tu confermi o correggi. Prende trenta secondi e ti evita errori costosi.

Una cosa da fare

Scegli un compito ricorrente che affidi a un agente, qualcosa che fai almeno una volta alla settimana. Può essere una lista, un insieme di regole, un registro di informazioni che cambiano nel tempo. Crea un file semplice per conservare quello stato, e configura l’agente per leggerlo all’inizio di ogni sessione e riscriverlo quando cambia qualcosa.

Fallo funzionare per una settimana. Chiudi e riapri ogni giorno, verifica che lo stato persista, correggi subito se trovi qualcosa di disallineato. Alla fine della settimana, decidi se il vantaggio di non ricominciare da zero vale lo sforzo di tenere lo stato aggiornato. Se la risposta è sì, hai un pattern che puoi replicare su altri compiti.

Prompt pronti

Per inizializzare uno stato persistente con una lista di compiti:

Leggi il file [nome-file.md] nella cartella [percorso].
Usa quella lista come stato iniziale.
Ogni volta che aggiungo, modifico o rimuovo un elemento, riscrivi il file con la versione aggiornata.
Conferma quando hai letto il file e riassumi cosa contiene.

Per verificare e correggere uno stato prima di lavorarci:

Leggi il file [nome-file.md] e dimmi cosa contiene.
Verificherò che sia allineato alla situazione attuale.
Se ti dico di correggere qualcosa, aggiorna il file e confermami la modifica.

Per pulire uno stato che è diventato troppo grande:

Leggi il file [nome-file.md].
Rimuovi tutte le voci più vecchie di [30 giorni / già completate / non più rilevanti].
Riscrivi il file con solo ciò che è ancora attivo.
Dimmi quante voci hai rimosso.

Fallo davvero

Il posto più semplice per provare questi tre prompt oggi stesso è uno strumento che può leggere e scrivere file: Claude Desktop o Claude Code con il server filesystem del capitolo precedente, puntato su una cartella nuova creata apposta per l’esperimento. Dentro ci metti un solo file, stato.md, con tre righe vere del tuo lavoro: due compiti aperti e una scadenza.

Poi fai il giro completo della “una cosa da fare”, ma compresso in un quarto d’ora invece che in una settimana, per vedere subito i meccanismi. Sessione uno: primo prompt, l’agente legge lo stato e lavori normalmente; a fine sessione gli fai aggiornare il file e chiudi la conversazione. Sessione due, conversazione nuova: secondo prompt, e verifichi che l’agente riparta da dove eri rimasto senza che tu abbia rispiegato niente. Poi il collaudo del disallineamento: modifica tu a mano stato.md scrivendo una cosa falsa, per esempio un compito già chiuso rimesso tra gli aperti, apri una terza conversazione e guarda l’agente proportelo come lavoro da fare. Trenta secondi di esperimento che valgono l’intera sezione «quando lo stato mente»: l’agente non sospetta mai del proprio stato, lo esegue.

Per lo stato che attraversa non solo sessioni ma anche persone o agenti diversi, il formato robusto è il template di handoff: uno stato.md con in più le decisioni prese, i confini e la definizione di fatto.

Dove andare adesso

Questa lezione ti ha mostrato come dare a un agente uno stato che persiste fra le sessioni. Nel prossimo capitolo, Orchestrare più agenti: chi fa cosa, vediamo cosa succede quando più agenti lavorano insieme e come coordinare i loro stati senza che si pestino i piedi.

Se vuoi approfondire le strategie per gestire memoria e contesto in modo più sofisticato, leggi il paper «Memoria e contesto: lo stato dell’arte», che esplora tecniche avanzate per decidere cosa conservare e cosa scartare.

Scrivi per cercare fra corso, playbook, skill, paper…