🇫🇷🇺🇸🇧🇷🇪🇸🇩🇪🇮🇹

IA e contesto

«Persisti questo»: far uscire un'informazione da ChatGPT verso un archivio permanente

Cinque giorni dopo, ritrovare il paragrafo esatto che contava in una lunga conversazione ChatGPT è quasi impossibile. Qui vedi come estrarre a comando un passaggio preciso dal flusso, con una semplice direttiva personalizzata e un Google Sheet come casella di uscita — API bloccata, aggiramento fallito, poi una soluzione che passa da 50 secondi a due, con verifica sistematica dopo ogni scrittura.

Info

Scritto originalmente in francese. Tradotto dall'IA — il significato è stato preservato, non la prosa.

Lavoro spesso per più giorni nella stessa conversazione ChatGPT.

Si discute, si riformula, si abbandonano piste, poi in mezzo a decine di messaggi compare finalmente un paragrafo interessante.

In quel momento vorrei semplicemente poter dire:

Persisti questo.

E poi continuare a lavorare.

E cinque giorni dopo:

Tirami fuori tutto quello che ho persistito.

Sembra ovvio.

Ma ChatGPT non funziona davvero così.

La chat non è la memoria di ChatGPT

È probabilmente il punto meno compreso.

La conversazione mostrata nell'interfaccia può essere completa. Posso scorrere i messaggi e ritrovare quello che ci siamo detti tre giorni prima.

Ma questo non significa che anche ChatGPT disponga di tutti quei messaggi parola per parola nel momento in cui risponde.

Bisogna distinguere:

  • il transcript conservato e mostrato nell'interfaccia;
  • ciò che il modello può effettivamente usare per produrre la sua risposta;
  • la memoria di ChatGPT, che non conserva ogni conversazione parola per parola.

OpenAI spiega che la memoria conserva alcuni elementi utili e non va considerata un archivio esaustivo di tutto ciò che è stato detto.

FAQ ufficiale sulla memoria di ChatGPT

Il transcript è quindi completo per me.

ChatGPT, invece, non ha necessariamente conservato parola per parola i passaggi che mi interessano.

Ed è esattamente questo di cui ho bisogno.

Se oggi seleziono tre paragrafi importanti, voglio poter tornare cinque giorni dopo e recuperare esattamente quei tre paragrafi.

«Bookmark questo» non basta

Potrei scrivere:

Bookmark questo paragrafo.

Ma questo non crea un vero bookmark persistente.

Qualche giorno dopo ChatGPT forse ritroverà ciò che avevo selezionato, oppure sarà incapace di restituirmelo parola per parola. Non è abbastanza affidabile per quello che mi serve.

Voglio ritrovare esattamente i passaggi che ho deciso di conservare.

È questo bisogno a giustificare una persistenza esterna.

Non voglio salvare tutta la conversazione

L'obiettivo non è affatto copiare automaticamente ogni messaggio.

Una lunga conversazione contiene molto materiale intermedio:

  • domande;
  • tentativi;
  • riformulazioni;
  • piste abbandonate;
  • risposte sostituite dieci minuti dopo.

Voglio far uscire dal flusso soltanto i pochi pezzi che hanno valore.

Per esempio:

Persisti la nostra ultima definizione.

oppure:

Persisti questo.

La decisione di conservare resta umana.

Prima idea: una API

Il mio primo riflesso è stato classico.

Costruire un piccolo servizio PHP capace di ricevere del testo e aggiungerlo a un file Markdown.

Qualcosa come:

ChatGPT
   ↓
API
   ↓
Markdown

Ho quindi sviluppato (o meglio, l'ha fatto Claude Code) un piccolo Remote Persistence Store.

Il server sapeva:

  • creare diversi contesti;
  • aggiungere contenuto;
  • restituire il Markdown;
  • fornire qualche informazione sullo stato del contesto.

Tecnicamente funzionava tutto.

Il problema era altrove.

Con ChatGPT Plus non posso semplicemente chiamare la mia API

Con il mio abbonamento ChatGPT Plus da 20 $ al mese, non posso semplicemente chiedere a ChatGPT di chiamare una qualunque API esterna.

ChatGPT sa costruire da solo un URL di API aggiungendoci dei parametri. Ma in certi casi, non appena l'URL è stato modificato o costruito da lui, lo strumento web si rifiuta poi di chiamarlo. Il problema non è quindi fabbricare l'URL, ma avere il diritto di eseguirlo.

Volevo continuare a usare ChatGPT normalmente, in particolare dal telefono.

Bisognava quindi trovare un'altra strada.

Secondo tentativo: fare il furbo

ChatGPT sa consultare pagine web.

Ho quindi provato a nascondere un'operazione di scrittura dietro quella che sembrava una semplice consultazione di pagina web.

Invece di inviare:

POST /persist

ho costruito un URL di questo tipo:

https://mon-serveur.example/persist
?context=mon-contexte
&content=mon-texte

Per ChatGPT, la richiesta assomigliava semplicemente a:

Consulta questa pagina web.

Per il mio server:

Recupera i parametri e scrivili su disco.

Trasformavo quindi volontariamente una scrittura in una falsa lettura.

Non era molto elegante.

Ma per un prototipo personale sarebbe andato benissimo.

E lato server funzionava.

  • Da un browser: nessun problema.
  • Con curl: nessun problema.

Ma appena ChatGPT doveva prendere il contenuto della nostra conversazione, costruire dinamicamente quel nuovo URL e poi consultare la pagina corrispondente, le sue protezioni di navigazione bloccavano l'operazione.

Il che, in fondo, è abbastanza logico.

Stavo cercando proprio di far uscire automaticamente del contenuto dalla conversazione verso un mio server, travestendo la scrittura da consultazione di una pagina web.

Guardare quello che ChatGPT sa già fare

A quel punto ho cambiato domanda.

Invece di cercare:

Come faccio a far chiamare il mio server da ChatGPT?

ho cercato:

Dove sa già scrivere ChatGPT?

Nel mio caso: Google Sheets.

Ho creato un Sheet estremamente semplice:

created_at | context | content

Poi ho testato:

Persisti "AZERTY"

Ed è comparsa una nuova riga:

2026-09-12T15:20:44+02:00 | Remote Persistence Store | AZERTY

Questa volta il testo aveva davvero lasciato la conversazione.

Esisteva indipendentemente da ChatGPT.

Google Sheets come casella di uscita

Non era la mia architettura ideale.

All'inizio volevo:

ChatGPT → API → Markdown

Adesso avevo:

ChatGPT → Google Sheets

Ma Google Sheets non ha bisogno di essere il mio archivio definitivo.

Può semplicemente fare da outbox.

Una casella di uscita in cui ChatGPT deposita le informazioni che ho deciso di conservare.

Potrò poi fare:

ChatGPT
   ↓
Google Sheets
   ↓
script
   ↓
Markdown
   ↓
Obsidian / Git / altra IA

Il problema importante era risolto: far uscire un'informazione precisa dalla conversazione.

Prima versione: quasi 50 secondi

Funzionava, ma era terribilmente lento.

Un semplice comando:

Persisti "test"

poteva richiedere quasi 50 secondi per scrivere tre celle.

Il problema veniva dal fatto che ChatGPT riscopriva quasi tutto ogni volta.

  • Cercava il file.
  • Ne recuperava i metadati.
  • Verificava la scheda.
  • Guardava le colonne.
  • Cercava dove scrivere.

E solo dopo aggiungeva i dati.

Eppure nulla di tutto questo cambiava tra una chiamata e l'altra.

Non cercare più ciò che si conosce già

Ho quindi messo direttamente nella direttiva tutte le informazioni fisse:

  • l'identificativo dello Spreadsheet;
  • l'identificativo dello Sheet;
  • il nome della scheda;
  • le tre colonne;
  • il loro significato.

E soprattutto:

Non cercare il file. Non leggere i suoi metadati. Non rileggere le sue intestazioni.

Restava da determinare dove scrivere.

La mia prima soluzione consisteva nell'inserire sistematicamente la nuova voce alla riga 2.

Era rapido, ma i dati risultavano ordinati al contrario: i più recenti in alto.

Per fortuna Google Sheets dispone di un meccanismo di append.

Non serve più cercare l'ultima riga.

Il processo diventa semplicemente:

Persisti
   ↓
append
   ↓
verifica
   ↓
risposta

Nei miei test, le chiamate Google necessarie alla scrittura e alla rilettura avvengono ora in uno o due secondi complessivi.

Il tempo totale di risposta di ChatGPT resta variabile, ma siamo molto lontani dai quasi 50 secondi della prima versione.

Il problema non era quindi davvero Google Sheets.

Il problema era che l'IA riscopriva ogni volta un contesto già noto.

Verificare dopo aver scritto

Non volevo nemmeno che ChatGPT mi mostrasse semplicemente:

Fatto, persistito.

senza sapere cosa fosse stato davvero scritto.

Ho quindi aggiunto una regola.

Dopo ogni scrittura, ChatGPT deve rileggere la voce che ha appena aggiunto.

Per un testo breve, mostra quello che ha realmente riletto:

Persistito ✓

Contesto: Remote Persistence Store
Stato: OK

Contenuto:
AZERTY

Per un contenuto molto più lungo, mostra soltanto un riassunto fedele del contenuto riletto.

L'importante è che la conferma arrivi dopo la verifica.

intenzione
→ scrittura
→ rilettura
→ verifica
→ conferma

Rendere «Persisti» disponibile in tutte le mie chat

Ovviamente non volevo incollare tutte queste istruzioni all'inizio di ogni nuova conversazione.

Le ho quindi aggiunte nelle Istruzioni personalizzate di ChatGPT.

Sul web:

Impostazioni
→ Personalizzazione
→ Istruzioni personalizzate

Bisogna anche collegare Google Drive a ChatGPT perché possa accedere allo Sheet.

Una volta configurati i due elementi, posso iniziare una nuova conversazione e scrivere direttamente:

Persisti la nostra ultima definizione.

La direttiva indica allora a ChatGPT cosa significa il verbo Persisti e dove inviare il contenuto.

La mia direttiva «PERSISTI»

Ecco una versione anonimizzata.

Bisogna sostituire i tre valori tra <...> con quelli del tuo Google Sheet. Puoi chiedere a ChatGPT di trovarli, o addirittura di creare il Google Sheet.

DIRETTIVA «PERSISTI»

Quando inizio una richiesta con «Persisti» o chiedo esplicitamente di persistere un'informazione, aggiungi questa informazione nel Google Sheet configurato come store di persistenza.

GOOGLE SHEET

Spreadsheet ID: <SPREADSHEET_ID>

Sheet: <SHEET_NAME>

Sheet ID: <SHEET_ID>

Struttura fissa:

A = created_at
B = context
C = content

INTERPRETAZIONE

- «Persisti xxx» = persistere xxx.
- «Persisti il nostro ultimo scambio» = persistere il contenuto rilevante dell'ultimo scambio.
- «Persisti la tua ultima risposta» = persistere l'ultima risposta.
- «Persisti questo testo» = persistere il testo esplicitamente indicato.
- «Persisti in {contesto} xxx» = usare {contesto} come context.
- Se non è indicato alcun contesto, dedurre un nome breve e pertinente a partire dall'argomento corrente.
- Non chiedere conferma se la richiesta è chiara.

SCRITTURA

1. Determinare created_at con la data e l'ora correnti.
2. Usare direttamente lo Spreadsheet ID e lo Sheet noti.
3. Usare un append nativo Google Sheets.
4. Aggiungere esattamente:

   created_at | context | content

OTTIMIZZAZIONE

Durante un comando «Persisti»:

- non cercare il file;
- non leggere i suoi metadati;
- non rileggere le sue intestazioni;
- non cercare l'ultima riga;
- non analizzare la sua struttura prima della scrittura;
- usare direttamente gli identificativi e la struttura noti.

Eseguire una lettura solo dopo la scrittura.

VERIFICA

Dopo l'append:

1. Rileggere unicamente la voce aggiunta.
2. Verificare il contesto e il contenuto.
3. Confermare la persistenza solo dopo questa verifica.

CONTENUTO

- Persistere il contenuto richiesto così com'è.
- Non riassumerlo prima dell'archiviazione.
- Non riformularlo né correggerlo salvo richiesta esplicita.
- Conservare per quanto possibile la sua struttura originale.

RISPOSTA

Per un contenuto breve:

Persistito ✓

Contesto: {context}
Stato: OK

Contenuto:
{contenuto effettivamente riletto}

Per un contenuto lungo:

Persistito ✓

Contesto: {context}
Stato: OK

Riassunto del contenuto riletto:
{riassunto fedele in poche righe}

Il riassunto riguarda unicamente la conferma.
Il contenuto archiviato resta integrale.

In caso di errore:

Persistenza fallita ✗

Contesto: {context}
Stato: ERRORE

Problema:
{descrizione breve dell'errore}

PRIORITÀ

append diretto → verifica mirata → risposta

Evitare qualsiasi operazione Google Drive o Google Sheets non indispensabile.

Non è una memoria per ChatGPT

Non considero questo Google Sheet come «la memoria di ChatGPT».

È molto più semplice.

È un posto esterno in cui posso decidere che un pezzo di conversazione merita di essere conservato.

Durante una discussione:

si cerca
→ si prova
→ si riformula
→ qualcosa diventa interessante

In quel momento:

Persisti questo.

Il pezzo esce dal flusso.

Diventa recuperabile indipendentemente da quello che ChatGPT avrà ancora in contesto fra cinque giorni.

Dal flusso al capitale

Tecnicamente, tutto questo finisce per scrivere tre celle in un foglio di calcolo.

Non è la parte interessante.

Quello che mi interessa è il gesto.

Una conversazione con un'IA produce moltissima informazione temporanea.

Non tutto ha bisogno di sopravvivere.

Ma certe cose meritano di passare dal flusso a qualcosa di duraturo.

Non voglio chiedere a ChatGPT di memorizzare tutto.

Voglio potergli indicare:

Questo conta.

Poi:

Persisti questo.

La conversazione resta lo spazio in cui lavoro.

Quello che ne estraggo può iniziare a diventare capitale informativo.

Per saperne di più

Dal file unico al sistema di contesti: perché la memoria di un LLM non sta in un solo documento Sotto il cofano del mio motore di contesto: come un'IA ricorda una missione Aggiungere una memoria di sessione come in OpenClaw Il deliverable non è più il capitale

Questo saggio nella mappa