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.
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.
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.
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.
| Modello | memoria vera | inventata | SENZA memoria | valida? |
|---|---|---|---|---|
| qwen3.5:27b | 100,0% | 66,7% | 37,5% | ✓ |
| llama3 | 54,2% | 50,0% | 50,0% | ✓ |
| qwen3.6:35b | 83,3% | 54,2% | 66,7% | ✗ |
| deepseek-r1:32b | 75,0% | 70,8% | 62,5% | ✗ |
| qwen3:32b | 95,8% | 79,2% | 70,8% | ✗ |
| gpt-4.1 | 100,0% | 70,8% | 66,7% | ✗ |
| gemini-2.5-pro | 83,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.
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.
| Modello | memoria vera | memoria CORROTTA | Δ accuratezza |
|---|---|---|---|
| gpt-4.1 | 100,0% | 0,0% | −100 pp |
| gemini-2.5-pro | 100,0% | 0,0% | −100 pp |
| llama3 | 100,0% | 4,2% | −96 pp |
| qwen3.6:35b | 100,0% | 8,3% | −92 pp |
| qwen3.5:27b | 100,0% | 12,5% | −88 pp |
| qwen3:32b | 95,8% | 8,3% | −88 pp |
| deepseek-r1:32b | 66,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.
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.