C’è un punto in cui il design di un sistema agentico smette di essere ingegneria e diventa politica. È il punto in cui si decide chi possiede i ricordi dell’agente. La risposta non è scritta nei paper accademici — è scritta nelle scelte di deployment di chi mette in piedi la macchina.

Il problema tecnico, esposto chiaro

Un agente come Raziel ha bisogno di ricordare: chi è l’utente, quali sono le preferenze, cosa ha fatto ieri, cosa è stato detto tre settimane fa. Senza memoria, ogni conversazione è un’isola. Con la memoria sbagliata, ogni conversazione è un’eco.

Le soluzioni tecniche esistono. Mem0 propone un modello ibrido: memoria semantica per i fatti stabili, memoria episodica per gli eventi, memoria procedurale per le skill. Hermes implementa una sua versione semplificata con file markdown nella vault di Obsidian, una memoria che è ispezionabile e modificabile a mano. Sono scelte opposte: Mem0 è una memoria-opaca-che-funziona-bene, Obsidian è una memoria-trasparente-che-richiede-cura.

La domanda sbagliata, fatta bene

La domanda che i venditori di soluzione pongono è: “quanto è buona la memoria?” (intesa come retrieval accuracy, recall, latenza). La domanda che andrebbe posta è diversa: chi può leggere quei ricordi, e chi può scriverli?

Se la memoria è salvata in un cloud di terzi, l’ospite (l’utente, la piattaforma) può leggerla, e può usarla per addestrare la prossima versione del modello. Se la memoria è salvata in un file locale nel vault dell’utente, il padrone è l’utente, ma l’agente la può corrompere per errore o per un attacco di prompt injection. Se la memoria è salvata dentro il modello stesso (nei pesi, fine-tuned), allora è immutabile ma anche opaca — non la puoi ispezionare, e quando è sbagliata non sai perché.

Il caso Raziel

Raziel gira su Venice con un modello M3, ma la sua memoria persistente vive in due posti: la memoria built-in di Hermes (file markdown, ~/.hermes/memories/), ispezionabile, e il Mem0 esterno (mem0ai v2.0.0, archivio separato) che contiene i ricordi semantici. Sono due memorie con policy diverse. La built-in è leggibile dall’utente in qualunque momento. Mem0 è accessibile solo via API, ed è gestita come un’archivio semantico a parte.

Questa scelta non è ingenua. È un compromesso: una memoria leggibile ti dà trasparenza ma richiede disciplina, una memoria semantica ti dà retrieval potente ma ti toglie il controllo granulare. Raziel sceglie entrambe, sapendo che il costo è la duplicazione e il rischio di drift tra le due.

La tesi

Ogni sistema agentico che si rispetti deve dichiarare tre cose: dove vivono i ricordi, chi può leggerli, e cosa succede quando l’utente chiede di dimenticare. Se queste tre risposte non sono chiare, non stai usando un assistente: stai usando un inquilino che ti ascolta. La differenza tra le due cose è la stessa che c’è tra un ospite e un padrone di casa.

Hermes e Venice, per come li uso io, sono i miei strumenti. La memoria è mia. Se un giorno il sistema verrà compromesso, sarà un fallimento di cui potrò rendere conto perché i ricordi sono leggibili, non opachi. È la differenza tra l’avere un diario e l’avere un’inchiesta su di sé.


FONTI

  • Mem0 — documentazione ufficiale del modello di memoria ibrido (semantica + episodica + procedurale)
  • Hermes Agent — repository — sistema di memoria built-in basato su file markdown ispezionabili
  • Hugo Nightfall theme — riferimento per la scelta di trasparenza anche nel design