Questa guida spiega come replicare l'esperimento di confronto tra i 3 sistemi di memoria (A-MEM, Linear RAG, Context Window) e analizzare i risultati sulla dashboard.
Assicurati di aver completato il setup e che tutti i servizi Docker siano attivi:
cd docker && docker compose up -d && cd ..Modalita sviluppo (2 terminali):
# Terminale 1 — Backend
uv run memory-agent serve
# Terminale 2 — Frontend
cd frontend && npm run devApri http://localhost:3000 nel browser.
Modalita produzione (terminale singolo):
cd frontend && npm run build && cd ..
uv run memory-agent serveApri http://localhost:8000.
- Nella Chat Page, inserisci un User ID nel campo in alto a sinistra della sidebar (es.
frabatx) e premi Set - Noterai 3 tab in alto: A-MEM, Linear RAG, Context Window
- Ogni tab mantiene sessioni e storico separati
Usa la stessa sequenza di messaggi su tutti e 3 i tab per un confronto equo. Di seguito un esempio di conversazione che copre presentazione personale, racconto di un sogno, rete sociale e aggiornamenti professionali.
| # | Messaggio |
|---|---|
| 1 | ciao sono francesco battista ma voglio che mi chiami frabatx |
| 2 | ho fatto un sogno l'altro giorno, mio fratello era un buttafuori, in realta marco non e un buttafuori, ma nel mio sogno lo era ed era in pericolo. Tra l'altro gli rammendavo il giubotto antiproiettile, che ridere, lui non e un tipo violento. |
| 3 | sinceramente no, volevo parlarti di Giorgio, Chiara e Fede Buratto, i miei migliori amici a lavoro, lavoriamo in un azienda di consulenza, si chiama Machine Learning Reply, del gruppo Reply, e siamo consulenti, lavoriamo per altre aziende e sviluppiamo servizi di Intelligenza artificiale. |
| 4 | chiara e diventata senior in questi giorni, ancora nessuno lo sa, tranne io giorgio e fede, incredibile, siamo tutti cresciuti cosi tanto. Anche giorgio e stato promosso qualche mese fa, come Senior Consultant 2 |
Ripeti questi passi 3 volte, una per tab (A-MEM, Linear RAG, Context Window):
- Seleziona il tab corrispondente
- Clicca + New nella sidebar per creare una nuova sessione
- Invia il messaggio 1, aspetta la risposta dell'assistente
- Invia il messaggio 2, aspetta la risposta
- Invia il messaggio 3, aspetta la risposta
- Invia il messaggio 4, aspetta la risposta
Suggerimento: puoi attivare il pannello Debug (pulsante in alto a destra) per vedere in tempo reale quali memorie vengono recuperate e come viene costruito il contesto. Clicca su un messaggio per ispezionare il suo debug info.
Mentre chatti, presta attenzione a queste differenze tra i sistemi:
- Estrae entita (persone, aziende, ruoli) e le collega tra loro
- Dopo il messaggio 4, dovrebbe ricordare che Marco e il fratello, che Chiara/Giorgio/Fede sono colleghi, e il nome dell'azienda
- Il Debug Panel mostra: entita estratte, relazioni, note collegate, score di retrieval
- Cerca per similarita vettoriale con decadimento temporale
- Recupera frammenti di conversazione passata, ma senza struttura semantica
- Tende a funzionare bene su domande simili a quelle gia fatte, meno su inferenze
- Mantiene solo gli ultimi 10 messaggi in memoria
- Nessun retrieval intelligente: tutto il contesto e sempre disponibile (finche non supera la finestra)
- Funziona bene in conversazioni brevi, perde contesto in conversazioni lunghe
Dopo aver completato la conversazione su tutti e 3 i tab:
- Naviga alla Dashboard (link nella navbar in alto)
- Seleziona il tuo User ID dal dropdown (es.
frabatx) - Clicca Refresh se i dati non appaiono subito
La dashboard mostra 3 card colorate, una per sistema:
| Metrica | Cosa indica |
|---|---|
| Turns | Numero di scambi (dovrebbe essere uguale per tutti se hai fatto la stessa conversazione) |
| Avg ms | Tempo medio di risposta — A-MEM e tipicamente piu lento per via del pipeline KG (3 chiamate LLM per memorizzare) |
| Tokens | Token totali consumati — A-MEM usa piu token per l'estrazione di entita e relazioni |
| Avg Retrieved | Memorie medie recuperate per turno — A-MEM recupera note + entita, Linear recupera chunk vettoriali |
| Store Count | Elementi memorizzati — A-MEM crea note strutturate + entita, Linear salva embedding grezzi |
Performance Chart (grafico a linee):
- Mostra il trend del tempo di risposta nel tempo
- Aspettati: A-MEM (viola) > Linear (cyan) > Context (ambra)
- Il costo aggiuntivo di A-MEM e il prezzo della strutturazione semantica
Relevance Distribution (grafico a barre):
- Distribuzione dei punteggi di rilevanza dei documenti recuperati
- A-MEM tende ad avere punteggi piu concentrati nella fascia alta (0.6-1.0) grazie al graph traversal
- Linear ha una distribuzione piu uniforme basata sulla sola similarita coseno
Le 3 colonne in basso mostrano le conversazioni fianco a fianco, permettendo un confronto qualitativo diretto delle risposte. Utile per valutare:
- L'assistente ricorda il nickname preferito (frabatx)?
- Ricorda i nomi delle persone e le relazioni tra loro?
- Le risposte sono coerenti con il contesto fornito?
Per testare piu a fondo le differenze, puoi estendere l'esperimento:
Nella stessa sessione, prova a chiedere:
| Domanda | Cosa verifica |
|---|---|
| "come si chiama mio fratello?" | Recall di entita personali |
| "dove lavoro?" | Recall di fatti professionali |
| "chi e stato promosso di recente?" | Recall di aggiornamenti recenti |
| "che relazione c'e tra me e Giorgio?" | Inferenza relazionale (A-MEM dovrebbe eccellere) |
- Crea una nuova sessione nello stesso tab
- Chiedi: "cosa sai di me?"
- Confronta le risposte: A-MEM e Linear dovrebbero ricordare dalle sessioni precedenti, Context Window no (volatile)
Continua a chattare oltre i 10 messaggi e osserva quando Context Window inizia a perdere informazioni rispetto agli altri due sistemi.
Per ripartire da zero con memorie pulite:
# Reset completo: Qdrant + ChromaDB + MongoDB + Obsidian vault + Context
uv run memory-agent memory clear --type all
# Reset selettivo per singolo sistema
uv run memory-agent memory clear --type amem
uv run memory-agent memory clear --type linear
uv run memory-agent memory clear --type contextSetup Esperimento Analisi
| | |
v v v
Docker up Chat Page Dashboard
uv run serve +--> Tab A-MEM ----+ User Selector
npm run dev | Tab Linear ---+--> 4 Metrics Cards
| Tab Context --+ msg Perf Chart
| | each Relevance Dist
+-- stesso User ID + Chat Replay
stessi messaggi
- Sistemi di Memoria — dettagli tecnici su A-MEM, Linear RAG, Context Window
- A-MEM Theory — il paper e l'architettura del Knowledge Graph
- API Reference — endpoint API per integrazioni programmatiche
- Testing — test automatici (pytest, CI)