La ricerca ibrida risolve una parte importante della memoria degli agenti: dato un quesito, trovare rapidamente i fatti rilevanti. Ma resta un limite. Una lista di frammenti simili non rappresenta da sola il modo in cui i fatti dipendono l’uno dall’altro.

Un archivio vettoriale può recuperare due affermazioni che parlano della stessa applicazione o dello stesso progetto. Non sa necessariamente che descrivono il medesimo soggetto, né che una terza affermazione completa una catena causale. Quella relazione resta implicita nel ragionamento del modello, invece di essere una proprietà della memoria.

La memoria a grafo prova a rendere esplicita quella struttura. Mem0 può estrarre entità e relazioni durante la scrittura, conservare gli embedding in un archivio vettoriale e affiancare nodi e archi in un backend a grafo. In ricerca, la similarità restringe i candidati e il grafo porta contesto relazionale.[1]

Due problemi diversi

Non è una gara tra ricerca vettoriale e grafo. Rispondono a domande differenti:

  • ricerca vettoriale: «quali ricordi sono più vicini a questa richiesta?»;
  • memoria a grafo: «quali concetti sono collegati e come?».

La prima è utile per la somiglianza semantica. La seconda è utile quando un agente deve seguire collegamenti tra persone, decisioni, progetti o preferenze. Una memoria può dire che una persona preferisce uno strumento; il grafo può rappresentare che tale preferenza vale per un progetto specifico e dipende da una scelta precedente.

Cosa aggiunge Mem0

La documentazione open-source descrive un flusso semplice: un modello estrae entità, relazioni e informazioni temporali dal testo; gli embedding vanno al database vettoriale; nodi e archi vengono scritti nel backend a grafo configurato. Mem0 supporta più backend per il grafo e può usare pgvector come archivio vettoriale su PostgreSQL.[1][2]

Questa separazione è utile anche concettualmente. Il vettore conserva una via rapida verso il testo simile. Il grafo offre una struttura per domande che non sono solo «cosa assomiglia a questo?», ma «cosa è collegato a questo e perché?».

Il limite reale

Un grafo non trasforma automaticamente una memoria in conoscenza affidabile. La qualità degli archi dipende da ciò che il sistema estrae. Entità ambigue, relazioni troppo generiche e duplicati possono produrre una bella mappa sbagliata.

C’è poi il tempo. Un collegamento può essere stato vero e smettere di esserlo. Una memoria seria deve poter indicare provenienza, ambito e data di validità, rilevare conflitti e ritirare ciò che è stato superato. Aggiungere nodi senza una politica di revisione è solo un modo più elegante di accumulare spazzatura.

Perché la privacy conta

Una memoria per agenti può contenere preferenze, decisioni e contesto operativo. La scelta dell’architettura non è quindi solo tecnica: determina quali componenti ricevono quel materiale e chi può analizzarlo. Un’implementazione che mantiene l’archivio e l’inferenza sotto il controllo dell’operatore riduce la superficie di esposizione, ma non elimina l’obbligo di minimizzare i dati e proteggere l’accesso.

La conclusione è meno spettacolare del marketing: usare un grafo quando le relazioni sono davvero parte del problema; mantenere la ricerca vettoriale per il recupero; progettare la revisione prima che il grafo cresca. Una memoria utile non si misura dal numero di nodi. Si misura da quanto spesso restituisce il contesto giusto senza riportare in vita il passato sbagliato.

Fonti

[1] Mem0 — Graph Memory

[2] Mem0 — pgvector

[3] pgvector