La memoria di Grok Build tra le sessioni: impostazioni e limiti
MarkdownCome attivare la memoria, dove vengono salvate le note e come funzionano /flush, /remember, /dream e /memory. Priorità delle impostazioni, verifica ed eliminazione delle voci.
Leggi l’articolo completo
Grok Build, l’agente terminale di xAI, dispone di una memoria tra le sessioni: può ricordare le convenzioni del progetto, le decisioni e le procedure di debug che hanno funzionato, quindi aggiungere queste informazioni al contesto di una nuova sessione senza che tu debba ricordargliele. La funzionalità è disattivata per impostazione predefinita ed è sperimentale: si può attivare con una sola impostazione.
Questa descrizione si basa sulla guida ufficiale nel repository xai-org/grok-build, aggiornata al 20 settembre 2026. L’autore dell’articolo originale non ha provato il prodotto: il funzionamento è stato descritto sulla base della documentazione, non di test personali.
La documentazione contiene informazioni pratiche su come lavorare con Ailoot.
Cosa offre la memoria in Grok Build?
Punto chiave
Senza la memoria, una nuova sessione di Grok Build non riceve informazioni dalle sessioni precedenti: né le convenzioni che hai spiegato né le decisioni che hai preso, a meno che non siano registrate in un file di istruzioni del repository. Con la memoria attivata, l’agente cerca le note salvate e aggiunge automaticamente quelle pertinenti al contesto della nuova sessione. Le note sono salvate come normali file Markdown che puoi leggere e modificare.
Per esempio, in una sessione hai spiegato all’agente che il progetto usa l’indentazione di due spazi, che le migrazioni del database si eseguono con un comando separato e che un modulo specifico gestisce i pagamenti. In una nuova sessione dovrai fornire di nuovo queste informazioni.
Con la memoria attivata, Grok Build può:
- ricordare le convenzioni del progetto che hai spiegato in precedenza;
- usare procedure di debug che hanno già funzionato;
- riprendere le decisioni architetturali nelle sessioni successive;
- evitare di chiedere di nuovo informazioni a cui è già stata data una risposta.
La funzionalità è sperimentale e disattivata per impostazione predefinita. Finché non la attivi, il comportamento dell’agente non cambia.
Come si attiva la memoria?
Punto chiave
Per una singola esecuzione, imposta la variabile d’ambiente GROK_MEMORY=1. Per mantenerla attiva, aggiungi una sezione [memory] con enabled = true a ~/.grok/config.toml. Per fare in modo che le note salvate vengano aggiunte all’inizio del lavoro, avvia una nuova sessione con /new dopo aver attivato la memoria.
Una volta, per una singola esecuzione:
GROK_MEMORY=1 grok
La variabile si applica solo a questa esecuzione. Il comando export GROK_MEMORY=1 la mantiene nella shell corrente e attiva la memoria per tutte le successive esecuzioni di grok da quella shell, finché la sessione del terminale non termina o non esegui export GROK_MEMORY=0.
In modo permanente, tramite la configurazione. Aggiungi questo a ~/.grok/config.toml:
[memory]
enabled = true
All’interno di una sessione, senza riavviare: apri /memory e premi t.
Questa opzione si applica solo alla sessione corrente e non viene salvata nella configurazione. Può essere usata per attivare o disattivare la memoria. Disattivandola, si rimuove l’accesso agli strumenti di memoria, ma i file non vengono eliminati dal disco; riattivandola, si riapre lo spazio di archiviazione. L’opzione non può sovrascrivere una disattivazione forzata della memoria a livello di processo tramite GROK_MEMORY=0: /memory resta indisponibile per l’intera sessione.
Se le impostazioni sono specificate in più punti, hanno il seguente ordine di priorità:
GROK_MEMORY=0disattiva forzatamente la memoria per l’intero processo e ha la priorità più alta.- Un valore esplicito
enabled = falsenella configurazione disattiva la memoria, anche se un’impostazione remota gestita la attiva. - La memoria si può attivare con
GROK_MEMORY=1, conenabled = truenella configurazione o con un’impostazione remota gestita. - Se non viene specificato nulla, la memoria è disattivata.
Le note vengono aggiunte al primo turno di una sessione. Se hai attivato la memoria mentre stavi già lavorando e vuoi che l’agente inizi a usare le informazioni salvate sul progetto, esegui /new. Puoi verificare se la memoria è attivata nell’output di grok inspect.
Cosa registra Grok Build e dove?
Punto chiave
Le note sono salvate in ~/.grok/memory/ come file Markdown: un MEMORY.md globale per tutti i progetti, un MEMORY.md separato per ogni progetto e i log delle sessioni. Il riepilogo automatico di fine sessione viene scritto senza una chiamata al modello, le note dettagliate vengono create con /flush e /remember, mentre /dream raggruppa le voci disparate per argomento.
La struttura della directory ~/.grok/memory/:
| Percorso | Ambito | Contenuti |
|---|---|---|
~/.grok/memory/MEMORY.md | Globale | Fatti e preferenze per tutti i tuoi progetti |
~/.grok/memory/ + directory del progetto con hash + /MEMORY.md | Progetto | Convenzioni e contesto per un repository specifico |
~/.grok/memory/ + directory del progetto con hash + /sessions/ | Sessioni | Riepiloghi e log delle singole sessioni |
Al nome della directory del progetto viene aggiunto un hash breve dell’identificativo del repository. Per l’identificazione si usa il remoto origin nel formato “organizzazione/repository” oppure, se non c’è un repository Git, il percorso della directory. Pertanto, i cloni e i worktree (copie di lavoro separate dei branch Git) dello stesso repository condividono un’unica memoria di progetto: ciò che l’agente ricorda in una copia è disponibile anche nell’altra.
Le voci vengono create in quattro modi:
- Riepilogo automatico di fine sessione. Quando una sessione termina, Grok Build salva un breve riepilogo di servizio nel log giornaliero: il numero di messaggi, fino a cinque primi scambi sostanziali e la data e l’ora. Il riepilogo viene creato dai metadati senza chiamate al modello né ritardi. Le sessioni molto brevi vengono ignorate: se ci sono meno di tre scambi sostanziali o meno di 50 byte di testo scritto da te, non viene creata alcuna voce. Il riepilogo non include gli strumenti usati, i percorsi dei file o i comandi. I riepiloghi automatici si possono disattivare con l’impostazione
session.save_on_end = false. /flush—una nota dettagliata su richiesta. Con questo comando, il modello riassume i punti più importanti della sessione corrente: decisioni, schemi ricorrenti, procedure di debug e risultati relativi alle API. Il riepilogo viene scritto in un log con data e indicizzato per le sessioni future. La documentazione consiglia di eseguire/flushprima della compattazione del contesto, alla fine di una sessione di debug riuscita e dopo aver individuato schemi importanti./remember—una richiesta esplicita di ricordare qualcosa. Digita/remember always open PR links after sendingoppure di’ all’agente: “ricorda che...”. Prima di scrivere la voce si apre un pannello di revisione: la nota viene salvata solo dopo la tua conferma e nel feed appareMemory saved to ~/.grok/memory/MEMORY.md. Le informazioni sul progetto vengono inserite nelMEMORY.mddel progetto; quelle condivise tra tutti i progetti vanno nel file globale./dream—consolidamento. Il comando raggruppa per argomento i log e le note sparsi e rimuove i duplicati per rendere la ricerca più precisa. Come per/flush, il consolidamento viene eseguito dal modello: legge le voci accumulate e le riorganizza per argomento, quindi dovresti controllare periodicamente il risultato con/memory. È disponibile anche una modalità automatica: per impostazione predefinita, Grok Build verifica le condizioni all’avvio e una volta all’ora e avvia il consolidamento quando sono trascorse almeno 24 ore e si sono accumulate almeno 5 sessioni. Le soglie si possono configurare nella sezione[memory.dream]della configurazione.
Le note vengono cercate tramite un indice SQLite: per impostazione predefinita usa la ricerca full-text FTS5; se è configurato un modello di embedding, viene aggiunta la ricerca semantica vettoriale.
Come viene inserita la memoria in una nuova sessione?
Punto chiave
Al primo turno di una sessione, Grok Build cerca nella memoria le voci relative al progetto e le aggiunge automaticamente al contesto: non devi ricordargli nulla. La ricerca viene eseguita di nuovo dopo la compattazione automatica del contesto. Le voci delle sessioni più datate vengono contrassegnate per verificarne l’attualità.
L’inserimento iniziale usa una soglia di selezione min_score = 0.9, che puoi modificare nella sezione [memory.initial_injection]. Dopo la compattazione automatica del contesto, l’agente cerca nuovamente nella memoria per ripristinare le informazioni che potrebbero essere state rimosse dal contesto insieme agli scambi più vecchi.
Puoi anche chiedere direttamente all’agente: “Cosa ricordi?”. Raggrupperà la risposta per fonte: preferenze globali, conoscenze del progetto e cronologia delle sessioni.
Le voci delle sessioni hanno indicatori di attualità. Più una voce del log di sessione è datata, più viene evidenziata con l’avviso: “Verifica che sia ancora attuale prima di farvi affidamento”. I file globali e MEMORY.md dei progetti non ricevono questi indicatori: i loro contenuti sono pensati per un uso a lungo termine, quindi devi verificarne tu la correttezza.
Come visualizzare, modificare ed eliminare le note?
Punto chiave
Il comando /memory apre una panoramica di tutti i file di memoria con le relative anteprime. Puoi modificare i file con qualsiasi editor di testo: le modifiche verranno rilevate durante la ricerca successiva. La richiesta “dimentica...” funziona senza garanzie; per eliminare in modo affidabile una voce specifica, modifica il file.
Il comando /memory in una sessione apre una finestra con tutti i file di memoria, raggruppati per ambito: globale, progetto e sessioni (in ordine cronologico inverso). L’elenco dei file è a sinistra; a destra c’è un’anteprima in sola lettura del file selezionato.
Tasti utili nella panoramica:
| Tasto | Azione |
|---|---|
↑/↓ oppure j/k | Scorrere l’elenco |
/ | Filtrare l’elenco |
y | Copiare il percorso del file selezionato |
x | Eliminare la nota selezionata (premere di nuovo per confermare) |
t | Attivare o disattivare la memoria |
Esc | Chiudere la finestra |
La finestra può eliminare singole note e file di sessione; non può eliminare gli indici MEMORY.md generati (globale e di progetto).
Il secondo metodo consiste nel modificare direttamente i file. Si trovano in ~/.grok/memory/ e si possono aprire con qualsiasi editor. Le modifiche alla directory vengono rilevate: i file creati o modificati vengono reindicizzati e quelli eliminati vengono rimossi dall’indice durante la ricerca successiva.
La richiesta “dimentica snake_case” funziona senza garanzie: il modello cerca e rimuove le voci corrispondenti, ma potrebbe non trovarle tutte. Per assicurarti che vengano eliminate, apri il file (puoi copiarne facilmente il percorso con y in /memory) e rimuovi la voce manualmente. Puoi cancellare completamente la memoria dalla riga di comando: grok memory clear per la memoria del progetto, grok memory clear --global per quella globale e grok memory clear --all per entrambe.
In cosa differisce la memoria da un file di istruzioni del repository?
Punto chiave
Sei tu a scrivere un file di istruzioni, ad esempio CLAUDE.md o AGENTS.md, e a inserirlo nel repository: viene condiviso con il team tramite Git. L’agente Grok Build gestisce le note di memoria e le salva in ~/.grok/memory/, fuori dal repository: sono personali e non vengono condivise tramite Git.
Le istruzioni del repository sono condivise con chiunque lavori al progetto e sono visibili nel codice e nella cronologia delle modifiche. La memoria si arricchisce nel corso delle sessioni, viene salvata sul tuo computer e non viene pubblicata automaticamente.
La memoria non sostituisce un file di istruzioni. Le regole generali del progetto necessarie a tutto il team e a qualunque agente hanno comunque senso nel repository. Abbiamo una guida separata per usare un unico file di istruzioni con Claude Code, Codex e Cursor: AGENTS.md e CLAUDE.md insieme. La memoria conserva il contesto personale: le tue preferenze, ciò che è già stato provato e la decisione raggiunta.
Claude usa una distinzione simile: spieghiamo come la memoria si differenzia da CLAUDE.md nell’articolo La memoria di Claude e CLAUDE.md. Per un confronto tra gli strumenti stessi, consulta Grok Build o Claude Code.
Limiti e verifica del funzionamento della memoria
Punto chiave
La funzionalità è sperimentale: i comandi e le impostazioni possono cambiare. Per fare in modo che le note vengano aggiunte al primo turno dopo aver attivato la memoria, avvia una nuova sessione con /new. Alcune voci vengono create dal modello, quindi controlla periodicamente le note e chiedigli di non ricordare segreti.
Tieni presenti i seguenti limiti:
- Stato sperimentale. Comandi, soglie e comportamento possono cambiare nelle versioni future; se qualcosa non funziona come previsto, consulta la guida alla memoria del repository.
- Inserimento iniziale in una nuova sessione. Dopo aver attivato la memoria, avvia il lavoro con
/newaffinché le note salvate vengano aggiunte al primo turno. - Il modello decide cosa è importante. Il modello crea il riepilogo di
/flushe sceglie cosa inserire nella nota. Ogni una o due settimane, apri/memorye controlla quanto si è accumulato; elimina ciò che non serve. - Non chiedergli di ricordare segreti. Chiavi, token e password non devono comparire in note destinate a durare: i file in
~/.grok/memory/sono salvati in testo semplice. Se viene registrato qualcosa di sensibile, rimuovilo modificando il file. - La memoria del progetto è condivisa tra le copie del repository. Se l’agente ricorda qualcosa in un clone che non è più aggiornato per un altro, tieni conto della directory condivisa quando fai pulizia.
Se la memoria non funziona:
- Controlla l’output di
grok inspectper verificare che la memoria sia attivata. - Controlla che
GROK_MEMORY=0o la configurazione non la stiano disattivando. - Per la diagnostica, esegui
RUST_LOG=debug GROK_LOG_FILE=/tmp/grok.log groke controlla le righe relative alla memoria in/tmp/grok.log.
Breve riepilogo
La memoria di Grok Build si attiva con GROK_MEMORY=1 oppure con [memory] enabled = true in ~/.grok/config.toml. Per fare in modo che le note vengano aggiunte al primo avvio dopo l’attivazione, inizia una nuova sessione con /new. L’agente scrive le note in ~/.grok/memory/: riepiloghi di sessione senza chiamate al modello, riepiloghi dettagliati con /flush, voci esplicite con /remember dopo la tua conferma e argomenti organizzati con /dream. Puoi visualizzare e riordinare le note tramite /memory e modificando direttamente i file. La funzionalità è sperimentale, quindi controlla soglie e comandi nella guida ufficiale e rivedi periodicamente le note.
Fonti
- Grok Build, guida ufficiale “Cross-Session Memory” (guida utente, capitolo 13): https://github.com/xai-org/grok-build/blob/main/crates/codegen/xai-grok-pager/docs/user-guide/13-memory.md
- Grok Build, repository di xAI su GitHub: https://github.com/xai-org/grok-build
Per lavorare in modo sistematico, è utile la combinazione clone AI + Second Brain + Context Engineering.
Maggiori dettagli
Domande frequenti
Perché le note salvate non compaiono dopo aver attivato la memoria?
Le note vengono aggiunte al primo turno di una nuova sessione. Aprine una dopo l’attivazione e controlla lo stato con grok inspect. Un processo avviato con GROK_MEMORY=0 non può attivarla tramite l’interruttore della sessione.
Disattivare la memoria elimina i suoi file?
No. La disattivazione rimuove l’accesso ai suoi strumenti ma lascia sul disco le note Markdown. Se devi eliminare una voce, esamina o modifica separatamente le note archiviate.