Memoria LLM Ripensata: Motore Datalog Potenzia il Richiamo degli Agenti
Un Nuovo Approccio alla Memoria LLM
Per mesi, il ricercatore di sicurezza Jordy Zomer ha osservato gli agenti LLM lottare con un problema fondamentale durante le lunghe indagini sulle vulnerabilità: perdevano continuamente traccia dei fatti stabiliti. Il modello dimenticava che un'ipotesi era stata smentita, o ragionava con sicurezza a partire da osservazioni obsolete. I sistemi di memoria standard—che memorizzano conversazioni e recuperano chunk rilevanti—non erano sufficienti. Zomer voleva che l'agente mantenesse ciò che sa attualmente, non solo ricordasse ciò che era stato detto.
La soluzione, che ha costruito quasi per caso, è Lemmalog, un motore Datalog open-source che tratta la conoscenza di un LLM come uno stato di analisi. L'idea è emersa da una realizzazione: la ricerca di vulnerabilità segue lo stesso schema dell'analisi dei programmi. Hai fatti, regole e conclusioni derivate. Quando un fatto cambia, aggiorni solo i risultati interessati—non riesegui l'intera analisi da capo.
Perché Datalog? Il Potere della Logica Dichiarativa
Datalog è un linguaggio di programmazione logica dichiarativa. Invece di scrivere istruzioni passo-passo, descrivi fatti e regole, e il motore deriva nuovi fatti. Ad esempio, se sai controlla(attaccante, oggetto_a), punta_a(oggetto_a, oggetto_b), e oggetto_kernel(oggetto_b), una regola può derivare controlla_oggetto_kernel(attaccante).
La magia accade quando i fatti cambiano. Se punta_a(oggetto_a, oggetto_b) si rivela falso, Lemmalog sa esattamente quali fatti derivati dipendevano da esso e può invalidarli automaticamente. Non c'è bisogno di reinserire l'intera conversazione nell'LLM e sperare che noti la contraddizione. Questo è un cambiamento fondamentale dalla memoria basata sul recupero alla manutenzione incrementale della conoscenza.
Come Funziona Lemmalog: LLM come Front-End, Datalog come Motore
Zomer divide il problema in due parti. L'LLM gestisce l'input fuzzy e disordinato: note in linguaggio naturale, output del debugger, codice sorgente. Estrae fatti strutturati come liberato(oggetto_a) o riutilizzato_come(oggetto_a, bersaglio_scrittura). Lemmalog gestisce quindi la parte deterministica: applicare regole, tracciare dipendenze e mantenere lo stato corrente.
Questa architettura offre una caratteristica critica: provenienza. Puoi chiedere perché una conclusione è vera, e Lemmalog mostra la catena di fatti e regole che la supportano. Se un'osservazione viene successivamente smentita, il sistema può tracciare esattamente quali conclusioni sono interessate. Questo affronta una modalità di fallimento comune in cui gli LLM affermano con sicurezza cose che non sono mai state stabilite.
Gestione delle Ritrattazioni e dei Fatti Temporali
Uno dei problemi più complessi era rimuovere i fatti. Se una conclusione ha più derivazioni di supporto, rimuovere un fatto non dovrebbe invalidarla completamente. Lemmalog traccia i conteggi di supporto e rimuove una conclusione solo quando tutte le sue derivazioni sono sparite. Questo rispecchia le indagini reali in cui un exploit potrebbe essere fattibile attraverso percorsi indipendenti multipli.
Il motore gestisce anche la validità temporale. I fatti possono avere intervalli di validità, quindi il sistema sa che fattibile(primitiva_a) era vero dalle 10:14 alle 12:37, ma non_fattibile(primitiva_a) dopo. Questo permette di rispondere sia "È attualmente fattibile?" sia "Perché pensavamo fosse fattibile prima?" senza memorizzare fatti contraddittori.
Risultati dei Benchmark: Superare il Contesto Completo
Zomer ha testato Lemmalog su due benchmark: LongMemEval e LoCoMo. Su LongMemEval (102 domande), Lemmalog ha ottenuto un F1 di 0,463, più del doppio dello 0,197 F1 di GPT-4.1 con contesto di conversazione completo. Fondamentalmente, ha utilizzato solo ~2.700 token per domanda contro ~104.000 per il contesto completo—una riduzione di 38 volte.
Su LoCoMo (1.986 domande), Lemmalog ha ottenuto un F1 di 0,533, classificandosi terzo tra i sistemi di memoria dedicati dietro PropMem (0,605) e OpenClaw (0,557), ma davanti al contesto completo (0,542). I risultati più impressionanti sono stati sugli aggiornamenti di conoscenza (0,579 contro 0,528 per PropMem) e sulle domande avversarie (0,707 contro 0,509 per il contesto completo), dove l'approccio strutturato eccelle nel rifiutare premesse false.
L'Importanza del Front-End
I maggiori guadagni sono arrivati dal miglioramento dell'estrazione e del recupero, non dal motore Datalog stesso. La risoluzione delle entità era critica—collegare "la mia auto" a "Honda Civic" tra sessioni. Il recupero ibrido che combina BM25, embeddings e grafi ha risolto il problema "elettrodomestico da cucina" vs "Instant Pot". Zomer ha anche scoperto che un bug nello stemmer plurale ("possiede" non corrisponde a "possedere") stava silenziosamente uccidendo le query di aggregazione.
Queste correzioni evidenziano un'intuizione chiave: la parte difficile è costruire un buon IR dal linguaggio naturale, non calcolare il punto fisso. L'LLM rimane essenziale per analizzare la realtà disordinata, ma una volta che i fatti sono strutturati, il database gestisce la logica.
Perché Questo è Importante per gli Agenti AI
Questa ricerca punta a un futuro ibrido in cui i sistemi simbolici e gli LLM si completano a vicenda. Invece di fare affidamento su finestre di contesto sempre più grandi, gli agenti possono mantenere uno stato compatto e strutturato che cresce con l'indagine senza esplodere in dimensioni. L'efficienza dei token è drammatica: dopo 500 turni, il contesto completo richiederebbe 1 milione di token per query, mentre Lemmalog rimane a ~2,5K.
Per i ricercatori di sicurezza, questo significa meno vicoli ciechi allucinati e un ragionamento a lungo termine più affidabile. Per il campo più ampio dell'AI, suggerisce che la memoria non riguarda solo il recupero—riguarda il mantenimento della verità.
La Strada da Percorrere
Lemmalog ha ancora debolezze, in particolare nel ragionamento inferenziale (0,164 su LoCoMo contro 0,289 per PropMem). Appiattire affermazioni sfumate come "Preferisco ristoranti tranquilli tranne quando viaggio con amici" perde troppe informazioni. Zomer prevede di affrontare questo problema mantenendo la conoscenza condizionale condizionale e preservando il testo originale per il contesto.
Il vero test sarà eseguire un'indagine complessa sulle vulnerabilità per ore e vedere se l'agente smette di resuscitare ipotesi morte. Come dice Zomer, "Forse non abbiamo bisogno di una finestra di contesto più grande ogni volta che un agente dimentica qualcosa. A volte possiamo semplicemente mantenere lo stato." Il codice sorgente è disponibile su GitHub.
Related News

OpenAI presenta GPT-6 Astra: un salto negli agenti AI e nell'allineamento

Qwen 3.8 27B su Cerebras: 1500 token/s con contesto 128k

Ricerca AI Cita 215.000 Pagine Software Generate Automaticamente

I Cervelli che Invecchiano Fondono i Ricordi, Non Solo Li Dimenticano, Rivela uno Studio

Neural Networks Reveal Hidden Symbolic Structure, Study Finds

