2026-07-31T23:43:22.691Z

OpenClaw MEMORY.md ausente: diagnosticar a primeira camada com falha

Deslocamento separado do espaço de trabalho, ausência de arquivo, escopo de sessão privada, truncamento de bootstrap e pesquisa obsoleta antes de reparar a memória OpenClaw.

Se OpenClaw diz MEMORY.md está faltando, não crie ou restaure o arquivo até saber qual espaço de trabalho e sessão produziu o sintoma. O diagnóstico confiável mais curto é: 1. identificar o espaço de trabalho ativo para o agente afetado; 2. provar isso MEMORY.md é um arquivo normal nesse espaço de trabalho; 3. confirme se a sessão tem permissão para carregar memória privada de longo prazo; 4. distinguir um marcador de bootstrap ausente de uma cópia injetada truncada; 5. teste a atualização da pesquisa somente depois que as verificações de bootstrap forem aprovadas. Essas verificações respondem a perguntas diferentes. A reindexação não pode reparar o espaço de trabalho errado. A recriação de um arquivo não pode corrigir a exclusão intencional de sessão compartilhada. Aumentar um orçamento imediato não pode restaurar um arquivo que está ausente no disco. OpenClawA documentação atual do torna o limite incomumente claro: os arquivos Markdown no espaço de trabalho são a fonte durável, MEMORY.md é a camada selecionada de longo prazo carregada no início da sessão e detalhada memory/YYYY MM DD.md as notas são recuperadas por meio de ferramentas de memória, em vez de injetadas a cada turno. Esse design cria mais de um significado legítimo de “ausente”. Primeiro prove qual espaço de trabalho está ativo OpenClawO espaço de trabalho padrão é normalmente ~/.openclaw/workspace , mas isso é apenas um padrão. Um perfil pode selecionar um espaço de trabalho com sufixo, OPENCLAW WORKSPACE DIR pode substituir o padrão e um agente não padrão pode ter seu próprio espaço de trabalho configurado. Um arquivo em um diretório antigo ou irmão é real, mas irrelevante para a sessão que usa outro diretório. Peça ao tempo de execução seus valores resolvidos em vez de inferi los do diretório atual do shell: Escolha o agente afetado nessa saída. Em seguida, inspecione os metadados, não o conteúdo: No macOS, use stat f 'type=%HT bytes=%z modified=%Sm' em vez de. Mantenha o caminho privado exato nas evidências do operador local; um recibo de saúde exportado precisa apenas de um ID de espaço de trabalho opaco, activeWorkspaceMatches , fileExists , regularFile , contagem de bytes e hora de modificação. A ordem é importante: O espaço de trabalho ativo não corresponde ao caminho inspecionado: classificar WRONG WORKSPACE . Repare a configuração do agente ou do perfil ou migre o arquivo intencionalmente após revisar ambas as cópias. Não substitua silenciosamente nenhum dos espaços de trabalho. O caminho ativo corresponde, mas o arquivo está ausente: classificar MISSING ON DISK . Decida se esse agente realmente precisa de memória de longo prazo com curadoria. MEMORY.md é opcional; openclaw setup workspace <path pode propagar padrões ausentes sem substituir os arquivos existentes. O caminho existe, mas não é um arquivo regular elegível: classificar UNSUPPORTED FILE TYPE . Isso é especialmente relevante para a propagação em sandbox. A documentação atual do espaço de trabalho diz que as cópias iniciais do sandbox aceitam arquivos regulares no espaço de trabalho e ignoram aliases de link simbólico ou hardlink que são resolvidos fora do espaço de trabalho de origem. O arquivo é um arquivo normal no espaço de trabalho ativo: não chame a camada de armazenamento de quebrada. Vá para o escopo da sessão e evidencie bootstrap. Esta primeira etapa evita um falso reparo comum: encontrar uma solução plausível MEMORY.md em algum lugar do disco e assumindo que o agente afetado o utiliza. Um arquivo pode existir e ainda estar ausente de um prompt A próxima pergunta não é “o shell pode ler o arquivo?” É “o que fez OpenClaw injetar para esta sessão?” Na sessão afetada, use: O relatório de contexto distingue o tamanho do arquivo bruto do tamanho injetado e expõe o truncamento. openclaw doctor também pode relatar problemas de inicialização. Registre o resultado como uma pequena enumeração— present , missing marker , truncated , ou not loaded —em vez de copiar o texto da memória em um ticket de incidente. Atual OpenClaw o comportamento cria três ramos importantes: Um marcador ausente não é uma falha. Quando um arquivo de inicialização está ausente, OpenClaw injeta um marcador de arquivo ausente e continua. Esse marcador é uma evidência sobre o espaço de trabalho resolvido no momento da construção da sessão. É mais forte do que a afirmação em linguagem natural de um agente de que “não consegue se lembrar”, mas ainda assim não informa por que o arquivo está ausente. Uma cópia truncada não é um arquivo ausente. OpenClaw mantém o arquivo intacto no disco enquanto trunca a cópia injetada quando um orçamento de inicialização é excedido. Os padrões documentados são 20.000 caracteres por arquivo e 60.000 caracteres em arquivos de inicialização. Se /context detail relata truncamento, classificar BOOTSTRAP TRUNCATED . Mova o material detalhado para memory/ .md , encurte a camada selecionada ou aumente deliberadamente os limites após considerar o custo imediato. Restaurar o arquivo não resolveria nada. A memória privada pode estar intencionalmente fora do escopo. A orientação do espaço de trabalho diz para carregar MEMORY.md apenas na sessão privada principal, não em contextos compartilhados ou de grupo. Um arquivo que está presente no disco, mas não carregado em uma sessão compartilhada, é SCOPE EXCLUDED , não é prejudicial à saúde. Alterar esse limite para fazer um cheque ficar verde pode vazar o contexto privado. A regra prática é: Esta precedência coloca deliberadamente a privacidade antes da disponibilidade. Um operador não deve “reparar” uma sessão compartilhada injetando memória privada durável. Mantenha o carregamento de bootstrap e a pesquisa de memória em pistas separadas MEMORY.md injeção de inicialização e memory search estão relacionados, mas não são o mesmo mecanismo. O arquivo selecionado pode estar presente em um prompt da sessão principal enquanto a recuperação indexada está obsoleta. Por outro lado, a pesquisa na memória pode retornar uma nota diária enquanto a cópia de inicialização do MEMORY.md está ausente ou truncado. Somente após a passagem do espaço de trabalho, da elegibilidade do arquivo, do escopo e da injeção de bootstrap você deve executar: Use um canário criado para o teste, não uma frase privada copiada da memória de longo prazo. Registre se o índice é atualizado e se o ID do registro opaco do canário foi retornado. Não exporte a frase. Um resumo bruto de um pequeno segredo também não é seguro porque pode ser adivinhado offline. Duas classificações posteriores são úteis: SEARCH STALE : o arquivo foi carregado, mas o índice reporta estado pendente ou sujo. A reindexação é relevante aqui. RETRIEVAL MISS : o índice afirma ser novo, mas o canário conhecido não é retornado. Inspecione a cobertura da origem, a configuração de back end e o comportamento da consulta. Nenhum estado justifica a substituição MEMORY.md . O reparo da pesquisa começa somente depois que a integridade do arquivo e do bootstrap for comprovada. O histórico OpenClaw emitir 9307 é um aviso útil sobre a fusão de camadas: seu OpenClaw O relatório 2026.2.2 3 incluiu ambos ENOENT lê arquivos de memória e separa falhas de sincronização do observador/pesquisa. Não há evidência de que o mesmo bug exista no atual OpenClaw. É uma evidência de que um incidente pode conter mais de uma camada com falha. Reproduza a decisão antes de tocar na produção O classificador a seguir não usa conteúdo de memória e codifica a precedência da primeira camada com falha: Repeti oito jogos com essa precedência exata: uma sessão principal íntegra, arquivo ausente, espaço de trabalho errado, link de sandbox rejeitado, exclusão de sessão compartilhada, cópia de bootstrap truncada, índice sujo e falta de canário de índice novo. Todos os oito produziram a classificação esperada. Essa experiência expõe o principal resultado operacional: seis estados não saudáveis ​​podem ser descritos por uma pessoa como “falta de memória”, mas cada um requer uma resposta diferente. Use esta matriz de reparo após a classificação: Classificação Menor ação razoável Verificação WRONG WORKSPACE Corrija o caminho do agente/perfil selecionado ou execute uma migração revisada Uma nova sessão principal resolve o ID do espaço de trabalho opaco pretendido MISSING ON DISK Propague ou crie o arquivo com curadoria opcional somente se necessário Uma nova sessão relata present , não apenas um comando de gravação bem sucedido UNSUPPORTED FILE TYPE Substitua o alias por um arquivo regular aprovado no espaço de trabalho As sessões sandbox e host concordam com a elegibilidade SCOPE EXCLUDED Preservar o limite de privacidade A sessão principal privada carrega a; sessão compartilhada não BOOTSTRAP LOAD FAILURE Inspecione permissões, visualização de tempo de execução e preparação de inicialização /context detail relata uma cópia injetada diferente de zero BOOTSTRAP TRUNCATED Organize ou ajuste deliberadamente orçamentos imediatos O canário sensível à ação necessário permanece na porção injetada SEARCH STALE Reconstrua ou aguarde o índice de acordo com o back end ativo A atualização do índice e a recuperação canário são aprovadas RETRIEVAL MISS Inspecione a cobertura de origem e a configuração de recuperação O mesmo canário limitado retorna por ID opaco Não pare em “o comando foi bem sucedido”. O resultado é um recibo de nova sessão mostrando o espaço de trabalho pretendido, o arquivo elegível, o escopo correto, o estado de bootstrap não ausente e – somente quando a pesquisa é necessária – um índice atual mais a recuperação canário. Resta uma limitação: este recibo prova transporte e disponibilidade, não verdade semântica. Não pode estabelecer que uma decisão lembrada é correta, atual ou ainda autorizada. A memória sensível à ação ainda precisa de proprietário, escopo, expiração e limite de aprovação. Onde Sidewisp cabe Este é o tipo de contrato de evidência que uma camada de saúde do agente de IA deve apresentar: primeira camada com falha, impacto, atualização, confiança, menor ação segura e verificação pós ação. Não deveria carregar MEMORY.md , revele caminhos privados ou chame uma reindexação de recuperação antes que o comportamento de memória esperado retorne. A Sidewisp está atualmente em prévia privada. Seu mecanismo de monitoramento de produção e OpenClaw adaptador não são enviados no repositório do site atual, então Sidewisp atualmente não inspeciona ou repara esta condição. A direção do produto é adicionar uma camada de integridade em torno dos tempos de execução existentes e manter a autoridade humana sobre a recuperação. Você pode junte se à lista de espera de visualização privada se esse limite corresponder à forma como você opera os agentes. Fontes primárias Visão geral da memória OpenClaw — funções de arquivo, carregamento de inicialização, notas diárias indexadas e truncamento de bootstrap. Espaço de trabalho do agente OpenClaw — resolução do espaço de trabalho, elegibilidade de sementes de sandbox, marcadores ausentes, orçamentos imediatos e escopo de sessão privada. Edição do OpenClaw 9307 — evidências históricas do incidente 2026.2.2 3, retidas apenas com esse limite de versão.