2026-07-31T23:43:22.721Z

OpenClaw MEMORY.md mancante: diagnostica il primo livello non riuscito

Separare la deriva dell'area di lavoro, l'assenza di file, l'ambito della sessione privata, il troncamento del bootstrap e la ricerca obsoleta prima di riparare la memoria di OpenClaw.

Se OpenClaw dice MEMORY.md manca, non creare o ripristinare il file finché non si conosce quale area di lavoro e sessione ha prodotto il sintomo. La diagnosi affidabile più breve è: 1. identificare l'area di lavoro attiva per l'agente interessato; 2. dimostrarlo MEMORY.md è un file normale in quell'area di lavoro; 3. confermare che la sessione può caricare la memoria privata a lungo termine; 4. distinguere un indicatore di bootstrap mancante da una copia iniettata troncata; 5. testare l'aggiornamento della ricerca solo dopo aver superato i controlli bootstrap. Tali controlli rispondono a domande diverse. La reindicizzazione non può riparare l'area di lavoro sbagliata. La ricreazione di un file non può correggere l'esclusione intenzionale della sessione condivisa. L'aumento di un budget immediato non può ripristinare un file assente sul disco. OpenClawLa documentazione attuale di rende il confine insolitamente chiaro: i file Markdown nell'area di lavoro sono la fonte durevole, MEMORY.md è il livello curato a lungo termine caricato all'avvio della sessione e dettagliato memory/YYYY MM DD.md le note vengono recuperate tramite strumenti di memoria anziché inserite ad ogni turno. Quel design crea più di un significato legittimo di “mancante”. Per prima cosa prova quale area di lavoro è attiva OpenClawL'area di lavoro predefinita è normalmente ~/.openclaw/workspace , ma questa è solo un'impostazione predefinita. Un profilo può selezionare un'area di lavoro con suffisso, OPENCLAW WORKSPACE DIR può sovrascrivere l'impostazione predefinita e un agente non predefinito può avere la propria area di lavoro configurata. Un file in una directory vecchia o di pari livello è reale ma irrilevante per la sessione che utilizza un'altra directory. Chiedi al runtime i suoi valori risolti invece di dedurli dalla directory corrente della shell: Scegli l'agente interessato da quell'output. Quindi controlla i metadati, non i contenuti: Su macOS, usa stat f 'type=%HT bytes=%z modified=%Sm' Invece. Mantenere l'esatto percorso privato in evidenza dall'operatore locale; una ricevuta sanitaria esportata necessita solo di un ID di area di lavoro opaco, activeWorkspaceMatches , fileExists , regularFile , conteggio dei byte e ora di modifica. L'ordine conta: L'area di lavoro attiva non corrisponde al percorso ispezionato: classifica WRONG WORKSPACE . Riparare la configurazione dell'agente o del profilo oppure eseguire intenzionalmente la migrazione del file dopo aver esaminato entrambe le copie. Non sovrascrivere silenziosamente nessuno degli spazi di lavoro. Il percorso attivo corrisponde ma il file è assente: classifica MISSING ON DISK . Decidi se questo agente necessita effettivamente di una memoria a lungo termine curata. MEMORY.md è facoltativo; openclaw setup workspace <path può seminare i valori predefiniti mancanti senza sovrascrivere i file esistenti. Il percorso esiste ma non è un file normale idoneo: classifica UNSUPPORTED FILE TYPE . Ciò è particolarmente rilevante per il seeding sandbox. La documentazione attuale dell'area di lavoro afferma che le copie seed sandbox accettano file regolari nell'area di lavoro e ignorano gli alias di collegamento simbolico o hardlink che si risolvono all'esterno dell'area di lavoro di origine. Il file è un file normale nell'area di lavoro attiva: non chiamare il livello di archiviazione danneggiato. Passa all'ambito della sessione e alle prove bootstrap. Questa prima fase impedisce una falsa riparazione comune: trovare un plausibile MEMORY.md da qualche parte sul disco e presupponendo che l'agente interessato lo utilizzi. Un file può esistere ed essere comunque assente da un prompt La domanda successiva non è “la shell può leggere il file?” È “ciò che ha fatto”. OpenClaw iniettare per questa sessione?" Nella sessione interessata, utilizzare: Il report sul contesto distingue la dimensione del file non elaborato dalla dimensione inserita ed espone il troncamento. openclaw doctor può anche segnalare problemi di bootstrap. Registra il risultato come una piccola enumerazione: present , missing marker , truncated , O not loaded —piuttosto che copiare il testo della memoria in un ticket di incidente. Attuale OpenClaw il comportamento crea tre rami importanti: Un indicatore mancante non indica un arresto anomalo. Quando un file bootstrap è assente, OpenClaw inserisce un indicatore di file mancante e continua. Questo indicatore è la prova dell'area di lavoro risolta al momento della costruzione della sessione. È più forte dell'affermazione in linguaggio naturale di un agente che "non riesce a ricordare", ma non ti dice ancora perché il file è assente. Una copia troncata non è un file mancante. OpenClaw mantiene il file intatto sul disco troncando la copia inserita quando viene superato il budget di bootstrap. I valori predefiniti documentati sono 20.000 caratteri per file e 60.000 caratteri per i file bootstrap. Se /context detail riporta il troncamento, classifica BOOTSTRAP TRUNCATED . Sposta il materiale dettagliato in memory/ .md , ridurre lo strato curato o aumentare deliberatamente i limiti dopo aver considerato il costo immediato. Il ripristino del file non risolverebbe nulla. La memoria privata può essere intenzionalmente fuori ambito. La guida dell'area di lavoro dice di caricare MEMORY.md solo nella sessione privata principale, non in contesti condivisi o di gruppo. Un file presente sul disco ma non caricato in una sessione condivisa lo è SCOPE EXCLUDED , non malsano. La modifica di tale confine per far sì che un controllo diventi verde potrebbe far trapelare il contesto privato. La regola pratica è: Questa precedenza antepone deliberatamente la privacy alla disponibilità. Un operatore non dovrebbe "riparare" una sessione condivisa inserendo memoria durevole privata. Mantieni il caricamento del bootstrap e la ricerca della memoria in corsie separate MEMORY.md iniezione di avvio e memory search sono correlati, ma non sono lo stesso meccanismo. Il file curato può essere presente in un prompt della sessione principale mentre il recupero indicizzato è obsoleto. Al contrario, la ricerca in memoria può restituire una nota giornaliera mentre la copia bootstrap di MEMORY.md manca o è troncato. Solo dopo il passaggio dell'area di lavoro, dell'idoneità del file, dell'ambito e dell'iniezione bootstrap è necessario eseguire: Utilizza un canarino creato per il test, non una frase privata copiata dalla memoria a lungo termine. Registra se l'indice è aggiornato e se è stato restituito l'ID del record opaco del canary. Non esportare la frase. Anche una sintesi grezza di un breve segreto non è sicura perché può essere indovinata offline. Sono utili due classificazioni a valle: SEARCH STALE : il file è stato caricato, ma l'indice riporta lo stato in sospeso o sporco. La reindicizzazione è rilevante qui. RETRIEVAL MISS : l'indice dichiara di essere fresco, ma il canary conosciuto non viene restituito. Esamina la copertura dell'origine, la configurazione del backend e il comportamento delle query. Nessuno dei due stati giustifica la sostituzione MEMORY.md . La riparazione della ricerca inizia solo dopo aver dimostrato l'integrità del file e del bootstrap. Lo storico OpenClaw problema 9307 è un utile avvertimento sulla fusione dei livelli: its OpenClaw Il rapporto 2026.2.2 3 includeva entrambi ENOENT legge i file di memoria e gli errori di sincronizzazione watcher/ricerca separati. Non è una prova che lo stesso bug esista nel presente OpenClaw. È la prova che un incidente può contenere più di un livello guasto. Riprodurre la decisione prima di toccare la produzione Il seguente classificatore non utilizza contenuto di memoria e codifica la precedenza del primo livello fallito: Ho riprodotto otto partite con quella esatta precedenza: una sessione principale sana, file assente, area di lavoro errata, collegamento sandbox rifiutato, esclusione sessione condivisa, copia bootstrap troncata, indice sporco e errore canary con indice fresco. Tutti e otto hanno prodotto la classificazione prevista. Questo esperimento espone il principale risultato operativo: sei stati non sani possono essere descritti da una persona come “manca la memoria”, ma ciascuno richiede una risposta diversa. Utilizzare questa matrice di riparazione dopo la classificazione: Classificazione La più piccola azione ragionevole Verifica WRONG WORKSPACE Correggere il percorso dell'agente/profilo selezionato o eseguire una migrazione rivista Una nuova sessione principale risolve l'ID dell'area di lavoro opaca prevista MISSING ON DISK Effettua il seeding o crea il file selezionato opzionale solo se necessario Riporta una nuova sessione present , non semplicemente un comando di scrittura riuscito UNSUPPORTED FILE TYPE Sostituisci l'alias con un file regolare nell'area di lavoro approvato Sandbox e sessioni host concordano sull'idoneità SCOPE EXCLUDED Preservare il confine della privacy La sessione privata principale lo carica; la sessione condivisa no BOOTSTRAP LOAD FAILURE Esamina le autorizzazioni, la visualizzazione runtime e la preparazione del bootstrap /context detail segnala una copia iniettata diversa da zero BOOTSTRAP TRUNCATED Curare o modificare deliberatamente i budget tempestivi Il canarino sensibile all'azione richiesto rimane nella porzione iniettata SEARCH STALE Ricostruisci o attendi l'indice in base al backend attivo La freschezza dell'indice e il recupero del canarino passano entrambi RETRIEVAL MISS Ispezionare la copertura della sorgente e la configurazione di recupero Lo stesso canarino delimitato restituisce per ID opaco Non fermarti al “comando riuscito”. Il risultato è una ricevuta di nuova sessione che mostra l'area di lavoro prevista, il file idoneo, l'ambito corretto, lo stato bootstrap non mancante e, solo quando è richiesta la ricerca, un indice corrente più il recupero canary. Resta un limite: questa ricevuta dimostra trasporto e disponibilità, non verità semantica. Non può stabilire se una decisione ricordata sia corretta, attuale o ancora autorizzata. La memoria sensibile all'azione necessita ancora di proprietario, ambito, scadenza e limite di approvazione. Dove Sidewisp si adatta Questo è il tipo di contratto di prova che un livello di integrità di un agente AI dovrebbe presentare: primo livello fallito, impatto, freschezza, fiducia, azione sicura più piccola e verifica post azione. Non dovrebbe essere caricato MEMORY.md , rivelare percorsi privati ​​o chiamare una reindicizzazione di un ripristino prima che venga restituito il comportamento della memoria previsto. Sidewisp è attualmente in anteprima privata. Il suo motore di monitoraggio della produzione e OpenClaw gli adattatori non vengono forniti nell'attuale repository del sito Web, quindi Sidewisp attualmente non ispeziona né ripara questa condizione. La direzione del prodotto è quella di aggiungere un livello di integrità ai runtime esistenti e mantenere l'autorità umana sul ripristino. Puoi iscriviti alla lista d'attesa per l'anteprima privata se quel confine corrisponde al modo in cui gestisci gli agenti. Fonti primarie Panoramica della memoria OpenClaw ruoli dei file, caricamento all'avvio, note giornaliere indicizzate e troncamento bootstrap. Area di lavoro dell'agente OpenClaw — risoluzione dell'area di lavoro, idoneità del seed sandbox, indicatori mancanti, budget tempestivi e ambito della sessione privata. Numero di OpenClaw n. 9307 — prove storiche dell'incidente 2026.2.2 3, conservate solo con quel limite di versione.