Skip to content

Latest commit

 

History

History
188 lines (130 loc) · 7.83 KB

File metadata and controls

188 lines (130 loc) · 7.83 KB

Replicare l'Esperimento: Confronto tra Sistemi di Memoria

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.

Prerequisiti

Assicurati di aver completato il setup e che tutti i servizi Docker siano attivi:

cd docker && docker compose up -d && cd ..

1. Avvio dell'Applicazione

Modalita sviluppo (2 terminali):

# Terminale 1 — Backend
uv run memory-agent serve

# Terminale 2 — Frontend
cd frontend && npm run dev

Apri http://localhost:3000 nel browser.

Modalita produzione (terminale singolo):

cd frontend && npm run build && cd ..
uv run memory-agent serve

Apri http://localhost:8000.

2. Preparazione della Sessione

  1. Nella Chat Page, inserisci un User ID nel campo in alto a sinistra della sidebar (es. frabatx) e premi Set
  2. Noterai 3 tab in alto: A-MEM, Linear RAG, Context Window
  3. Ogni tab mantiene sessioni e storico separati

3. Conversazione di Test

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.

Sequenza Messaggi

# 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

Procedura per ogni Tab

Ripeti questi passi 3 volte, una per tab (A-MEM, Linear RAG, Context Window):

  1. Seleziona il tab corrispondente
  2. Clicca + New nella sidebar per creare una nuova sessione
  3. Invia il messaggio 1, aspetta la risposta dell'assistente
  4. Invia il messaggio 2, aspetta la risposta
  5. Invia il messaggio 3, aspetta la risposta
  6. 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.

4. Cosa Osservare durante la Chat

Mentre chatti, presta attenzione a queste differenze tra i sistemi:

A-MEM (Knowledge Graph)

  • 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

Linear RAG (Vector Search + Time Decay)

  • 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

Context Window (Ultimi N Messaggi)

  • 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

5. Analisi sulla Dashboard

Dopo aver completato la conversazione su tutti e 3 i tab:

  1. Naviga alla Dashboard (link nella navbar in alto)
  2. Seleziona il tuo User ID dal dropdown (es. frabatx)
  3. Clicca Refresh se i dati non appaiono subito

Metriche a Colpo d'Occhio

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

Grafici

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

Chat Replay

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?

6. Esperimenti Aggiuntivi

Per testare piu a fondo le differenze, puoi estendere l'esperimento:

Test di Recall (dopo la conversazione iniziale)

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)

Test di Persistenza (nuova sessione, stesso utente)

  1. Crea una nuova sessione nello stesso tab
  2. Chiedi: "cosa sai di me?"
  3. Confronta le risposte: A-MEM e Linear dovrebbero ricordare dalle sessioni precedenti, Context Window no (volatile)

Test su Conversazioni Lunghe

Continua a chattare oltre i 10 messaggi e osserva quando Context Window inizia a perdere informazioni rispetto agli altri due sistemi.

7. Reset per Ripetere l'Esperimento

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 context

Riepilogo del Flusso

Setup                    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

Vedi Anche