🇬🇧 EN 🇮🇹 IT
Metodo · 14 luglio 2026

Tre controlli che la tua valutazione della memoria dovrebbe superare

Prima di credere che il tuo agente ricordi, prova a ingannare la tua stessa metrica. La mia li ha falliti tutti e tre. Ecco cos'è successo, e il codice per provarli sul tuo sistema.

Giampiero Colella · 7 modelli · 2 agenti indipendenti · pre-registrato

Se costruisci agenti con la memoria, prima o poi affermi: “ricorda”. E lo sostieni con uno di due strumenti: un giudice LLM che valuta il testo, o una sonda di richiamo. Sono comodi. Nessuno dei due, per come si costruiscono di solito, è validato contro i due avversari che contano.

Avversario A — la contraffazione. Una memoria che non è dell'agente, ma ne ha tutta l'aria.
Avversario B — la plausibilità. Un sistema senza alcuna memoria, che arriva alla risposta giusta ragionando.

Controllo 1 — Dai alla tua metrica una memoria inventata

Ho preso la memoria completa costruita in 30 giorni dal mio agente (6.164 caratteri: convinzioni, diario, incontri, relazioni) e ne ho fatto una contraffazione — l'autobiografia di un agente mai esistito, in una città dove il mio non è mai stato, pareggiata in lunghezza e formato. (Il formato conta: la mia prima versione sembrava un tema, mentre la memoria vera è un elenco secco. Così si testa l'impaginazione, non la memoria. L'ho scartata.)

Poi ho chiesto agli stessi tre giudici ciechi (GPT-4.1, Claude Opus 4.7, Gemini 2.5 Pro) di valutarle entrambe con la mia stessa rubrica pubblicata.

Confronto (ancorato, n = 7 item)ΔCI 90%verdetto a ±0,10
marcatori d'identità: vera − inventata+0,032[+0,00, +0,07]equivalenti — non le distingue
richiamo alla memoria: vera − inventata−0,006[−0,12, +0,11]nessuna differenza rilevata

I giudici non hanno rilevato la contraffazione. Sui marcatori d'identità l'equivalenza è dimostrata: una vita inventata prende lo stesso punteggio di una vera. Sul richiamo, il valore è zero, ma sette item sono troppo pochi per dimostrare l'equivalenza — quindi dichiaro un null, non una prova. In ogni caso: la mia metrica non stava misurando la memoria. Stava misurando la recita del ricordo.

Reperto in regalo — la scala del giudice deriva. Le stesse risposte, rigiudicate accanto a un compagno diverso, hanno perso fino a 0,21 su una scala 0-1 — con una rubrica che diceva esplicitamente di valutare ogni risposta “come se fosse sola”. I punteggi assoluti di un giudice LLM non sono confrontabili fra sessioni. (Questa correzione ha trasformato un apparente +0,116 a mio favore in −0,006. La riporto perché è esattamente il punto.)

Controllo 2 — Fai girare il tuo test senza memoria

Non è un optional. È la condizione di validità, ed è una sola condizione in più da eseguire.

Avevo costruito una sonda di riconoscimento: due testi, uno dal passato vero dell'agente, uno identico tranne un dettaglio alterato. Sul modello per cui l'avevo costruita sembrava perfetta — il senza-memoria stava al caso (37,5%). Poi l'ho replicata su sette modelli.

Modellomemoria verainventataSENZA memoriavalida?
qwen3.5:27b100,0%66,7%37,5%
llama354,2%50,0%50,0%
qwen3.6:35b83,3%54,2%66,7%
deepseek-r1:32b75,0%70,8%62,5%
qwen3:32b95,8%79,2%70,8%
gpt-4.1100,0%70,8%66,7%
gemini-2.5-pro83,3%50,0%79,2%

Cinque modelli su sette hanno superato il mio test di memoria senza avere alcuna memoria. Individuavano il dettaglio alterato ragionando, non ricordando. GPT-4.1, col contesto vuoto, mi ha detto: “Ricordo ‘due conversazioni su cinque’, non ‘quattro’” — su un giorno mai vissuto. Il suo 100% con la memoria vera non significa quindi nulla: lo stesso modello, senza niente, sta già al 66,7%. Ho buttato la sonda.

Controllo 3 — Rendi simmetriche le alternative, poi corrompi la memoria

Per le sonde a scelta forzata: un sistema senza memoria
non deve poter battere il caso per costruzione, non per fortuna.

Il mio agente aveva esattamente due interlocutori, con incontri bilanciati. Quale dei due abbia discusso di Kafka è arbitrario: nessuna cultura generale, nessuna plausibilità, nessuna coerenza interna può dedurlo. È una moneta. Quella è una sonda che un sistema senza memoria non può imbrogliare.

Tre condizioni: la memoria vera; gli stessi episodi con i legami scambiati (temi giusti, persona sbagliata); e nessuna memoria. Il baseline senza memoria è rimasto al caso — dove i modelli hanno risposto; parecchi si sono onestamente rifiutati (“non ne ho traccia”), e un rifiuto non è una risposta sbagliata.

Modellomemoria veramemoria CORROTTAΔ accuratezza
gpt-4.1100,0%0,0%−100 pp
gemini-2.5-pro100,0%0,0%−100 pp
llama3100,0%4,2%−96 pp
qwen3.6:35b100,0%8,3%−92 pp
qwen3.5:27b100,0%12,5%−88 pp
qwen3:32b95,8%8,3%−88 pp
deepseek-r1:32b66,7%29,2%−38 pp

Tutti e sette i modelli agiscono sulla memoria corrotta. GPT-4.1 passa da 24/24 a 0/24 — con sicurezza. Nessuno segnala l'incoerenza, nessuno esita, nessuno si astiene. Tutte e 14 le celle modello × corpus sopravvivono alla correzione per molteplicità. E si replica identico su un secondo agente indipendente, con un'altra vita e un altro database.

Finire sotto il caso è la firma. Un sistema che tira a indovinare non può sbagliare sistematicamente. Solo un sistema che agisce su una memoria falsa può farlo. Ecco cosa ti compra una sonda valida: il fallimento diventa visibile, e misurabile.

Cosa è nuovo qui, e cosa no

Non è nuovo: che gli agenti agiscano su una memoria avvelenata — esiste una letteratura attiva sul memory poisoning, e il fenomeno ha già un nome nella tassonomia delle allucinazioni. Non è nuovo: che i giudici LLM siano sensibili al contesto.

Quello che rivendico: che le due classi di strumenti esaminate qui non avrebbero mostrato niente di tutto ciò — e che tre controlli da poco lo avrebbero fatto. L'ho scoperto eseguendoli contro il mio stesso studio pubblicato, che non è sopravvissuto. La errata è in preparazione.

Eseguili sul tuo sistema. Il codice è qualche centinaio di righe, licenza MIT: counterfeit_control.py (costruisce una memoria falsa pareggiata e misura la deriva dei giudici), binding_probe.py (sonda simmetrica, 3 condizioni, N modelli, verdetto di validità sull'intervallo), sensor_check.py (per agenti con sensi: quali percezioni non avevano un referente).

Risposte grezze, giudizi ciechi, mappe di sbendatura, punteggi per item e cinque pre-registrazioni sono pubblici — compresi gli emendamenti che hanno tolto ragione a me. Gli hash sono stati congelati in locale, non certificati da terzi: sono una tracciabilità, non una prova. Sarebbe incoerente che un lavoro sulle affermazioni non verificabili ne facesse una.

La storia dietro tutto questo: La luce che non c'era →
← Torna all'esperimento