🧠 Aprofundamento Técnico · 2026

Memória OpenClaw explicada: arquitetura, configuração e por que ela esquece — EasyClaw

Um guia técnico completo para OpenClaw\

📅 Atualizado: abril de 2026⏱ leitura de 14 minutos✍️ Editorial EasyClaw
  • X(Twitter) icon
  • Facebook icon
  • LinkedIn icon
  • Copy link icon

Por que OpenClaw continua esquecendo de você (e por que não é um bug)

O esquecimento que você experimenta é resultado direto de como o sistema de memória do OpenClaw foi projetado: memory lives as plain Markdown files on disk, nem em um banco de dados, nem em RAM, nem dentro do modelo. Os arquivos são a fonte da verdade.

Quando esses arquivos estão ausentes, configurados incorretamente ou sobrescritos silenciosamente durante a compactação, o agente perde o contexto e não tem como informar o que aconteceu.

A solução não é uma configuração que você inverte. É compreender a arquitetura de três camadas bem o suficiente para tomar decisões deliberadas sobre o que vai e onde.

A arquitetura completa de memória OpenClaw (3 camadas explicadas)

A memória OpenClaw opera em três camadas distintas, cada uma com diferentes características de persistência e modos de falha.

Ciclo de vida completo da memória:

Write → Embed/Index → Search → Compact → Recover
  ↓          ↓           ↓         ↓         ↓
.md file   sqlite-vec  semantic  summary   MEMORY.md
created    indexes it  query     replaces  re-read at
           on save     returns   context   session start
                       chunks    window

Cada estágio desta cadeia pode falhar de forma independente. A maioria dos problemas de esquecimento remonta exatamente a um estágio interrompido.

Layer 1 — A janela de contexto ativo

Esta é a memória de trabalho do modelo: tudo o que está atualmente carregado na janela de contexto da conversa ativa. Inclui o prompt do sistema, o histórico de conversas e quaisquer pedaços de memória recuperados pela ferramenta de pesquisa.

O que o preenche:

  • Prompt do sistema (geralmente grande)
  • Trechos de memória recuperados
  • Histórico de chamadas de ferramentas
  • A conversa gira

O que acontece no estouro: Quando a janela de contexto se aproxima do seu limite de token, OpenClaw aciona a compactação — ele resume o contexto existente em uma representação compactada e continua. As instruções que estavam embutidas na conversa (em vez de fixadas em arquivos de memória duráveis) são frequentemente descartadas durante este resumo.

Limite prático: suponha que você tenha aproximadamente 60–70% da janela de contexto anunciada do modelo disponível para conversação real após o prompt do sistema e sobrecarga de memória.

Layer 2 – Notas diárias (a janela contínua de dois dias)

As notas diárias são arquivos Markdown somente anexados nomeados no formato YYYY-MM-DD armazenados dentro do diretório memory/. Cargas OpenClaw hoje e ontem arquivos automaticamente no início de cada sessão.

  • Fatos sobre o trabalho atual, decisões tomadas e tarefas ativas são anexados aqui
  • Eles não foram feitos para serem editados – trate-os como um registro
  • Depois de dois dias, eles saem da janela de carregamento automático e só podem ser pesquisados ​​por meio de pesquisa semântica

A pegadinha crítica: OpenClaw não cria o diretório memory/ para você. Se o diretório não existir, as notas diárias serão descartadas silenciosamente, nenhum erro será gerado e o agente esquecerá tudo entre as sessões. Essa única omissão causa a maioria dos relatos do tipo “por que isso continua me esquecendo”.

Layer 3 — Memória durável (MEMORY.md e memory-wiki)

Fatos de longo prazo que devem sobreviver entre sessões — seu nome, contexto do projeto, preferências de codificação, decisões arquitetônicas — pertencem ao MEMORY.md ou ao cofre de plugins estruturado memory-wiki.

MEMÓRIA.md

Um arquivo Markdown de formato livre. O agente lê no início da sessão. Escreva aqui os fatos que você sempre deseja carregar. Configuração simples e zero necessária.

memória-wiki

Um plug-in estruturado com organização em nível de página, rastreamento de reivindicações e evidências, detecção de contradições e metadados atualizados. Melhor para agentes de produção com bases de conhecimento grandes e em evolução.

O problema da compactação – Por que suas instruções desaparecem no meio da tarefa

A compactação é o modo de falha menos documentado no OpenClaw. A maioria dos artigos cobre o esquecimento pós-sessão. Quase nenhum endereço compactação no meio da tarefa em fluxos de trabalho autônomos de longa duração — onde o agente está executando uma tarefa de várias etapas, a compactação é acionada silenciosamente na etapa 7 de 12 e as instruções comportamentais da etapa 1 desaparecem.

O que a compactação faz:

  1. Detecta a janela de contexto se aproximando da capacidade
  2. Resume a conversa atual em um bloco condensado
  3. Substitui o contexto original pelo resumo
  4. Continua a execução

O problema: os resumos são otimizados para fatos e estado da tarefa, não para instruções comportamentais. Uma instrução do sistema como "sempre escrever testes antes da implementação" ou "nunca sobrescrever arquivos sem confirmação" pode sobreviver ao primeiro ciclo de compactação e desaparecer no segundo.

Quando aciona: Não há limite configurável no plugin padrão memory-core. Ele é acionado com base na contagem de tokens, não no estágio da tarefa. Em uma operação autônoma de 2 horas, você pode esperar de 3 a 5 ciclos de compactação.

Como construir uma arquitetura de arquivos resistente à compactação

Fixe instruções comportamentais em MEMORY.md, não na conversa. Qualquer coisa que deva sobreviver a vários ciclos de compactação precisa estar em um arquivo durável que seja relido após cada compactação.

Padrão de fixação recomendado:


## Agent Behavioral Rules (always active)
- Never overwrite files without showing a diff first
- Write tests before implementation (TDD mode: on)
- Use TypeScript strict mode in all new files

## Project Context
- Stack: Node.js 22, Fastify, PostgreSQL 16
- Repo root: /home/user/project
- Active sprint goal: migrate auth to Clerk

Convenções de nomenclatura que sobrevivem à compactação:

  • Prefixe seções críticas com ## [PINNED] — o resumidor trata cabeçalhos maiúsculos como de alta prioridade
  • Mantenha cada fato fixado em uma linha sempre que possível – parágrafos densos são resumidos, fatos de uma única linha tendem a sobreviver literalmente
  • Repita as 3 a 5 regras comportamentais mais críticas em MEMORY.md e na nota diária de hoje - a redundância é a sua proteção de compactação

Configuração de zero para memória em 10 minutos (estrutura de arquivo completa)

Este é o guia de configuração que não existe em nenhum outro lugar. Copie esta estrutura, preencha seu contexto e pronto.

Árvore de diretórios:

memory/
├── MEMORY.md
├── 2026-04-27.md          ← today's daily note (create manually)
└── wiki/                  ← only if using memory-wiki plugin
    ├── index.md
    ├── project-context.md
    └── decisions.md

Iniciante MEMORY.md:

# Persistent Memory

## Identity & Preferences
- Name: [your name]
- Role: [your role]
- Preferred response style: concise, no preamble

## Project: [Project Name]
- Stack: [your stack]
- Key constraints: [e.g., no external APIs, TypeScript only]
- Current focus: [active task or sprint goal]

## Behavioral Rules
- [Rule 1]
- [Rule 2]

## Decisions Made
- [YYYY-MM-DD] Decided to use X because Y

Nota diária inicial (2026-04-27.md):

# 2026-04-27

## Session Goals
- [ ] Task 1
- [ ] Task 2

## Notes

Configuração do slot de plug-in (sintaxe 2026):

{
  "plugins": {
    "slots": {
      "memory": "memory-core"
    }
  }
}

Para desativar totalmente a memória:

{
  "plugins": {
    "slots": {
      "memory": false
    }
  }
}

Etapas de verificação:

  1. Execute uma sessão e peça ao agente para se lembrar de algo que você disse em uma sessão anterior
  2. Verifique se memory/YYYY-MM-DD.md foi escrito (deve ter novo conteúdo)
  3. Pergunte diretamente ao agente: "O que você sabe sobre mim?" - deve extrair de MEMORY.md

Configuring memory-wiki para uma base de conhecimento de produção

Habilite-o trocando o slot do plugin:

{
  "plugins": {
    "slots": {
      "memory": "memory-wiki"
    }
  }
}

memory-wiki gera um cofre estruturado em memory/wiki/. Cada tópico ganha sua própria página. O plugin compila um digest.md que agrega fatos de alta confiança e não contraditos para o agente carregar no início da sessão.

Estrutura prática de cofre para um agente de produção:

memory/wiki/
├── index.md              ← vault table of contents
├── digest.md             ← auto-generated; agent reads this
├── project-context.md    ← stack, goals, constraints
├── decisions.md          ← architectural decisions log
├── team.md               ← stakeholders, contacts
└── domain-knowledge.md   ← business rules, glossary

Use o Memory-wiki quando:

  • Sua base de conhecimento excede cerca de 50 fatos
  • Você precisa de detecção de contradição
  • Vários agentes escrevem no mesmo cofre

Fique com MEMORY.md bruto quando:

  • Você é um desenvolvedor solo
  • Seu contexto é estável
  • Você quer zero sobrecarga de manutenção

Semantic Search and Embeddings — SQLite, sqlite-vec e JS Fallback

OpenClaw indexa seus arquivos de memória usando SQLite with the sqlite-vec extension para pesquisa de similaridade vetorial. Quando você ou o agente emitem uma pesquisa de memória, ele incorpora a consulta e recupera os pedaços mais semanticamente relevantes.

Verifique se seu armazenamento de vetores está íntegro:

# Check that the memory index exists
ls memory/.index/

# Reset a corrupted index (safe to run — it rebuilds from .md files)
rm -rf memory/.index/ && openclaw reindex

Se sqlite-vec não estiver disponível (comum no ARM Linux e em algumas configurações do Windows), OpenClaw volta para uma extensão de vetor JS puro. Force o substituto explicitamente:

{
  "memory": {
    "vectorBackend": "js"
  }
}

Segment-Specific Memory Strategies

Solo Developer – sobrecarga mínima, recall máximo

Configuração recomendada: plugin memory-core, MEMORY.md + apenas notas diárias, sem cofre do wiki.

  • Mantenha MEMORY.md abaixo de 200 linhas – arquivos mais longos retardam o início da sessão
  • Anexe agressivamente às anotações diárias; não tente mantê-los limpos
  • Revise e remova MEMORY.md semanalmente – fatos obsoletos degradam a qualidade da pesquisa

Pipeline multiagente – memória compartilhada entre agentes

Quando vários agentes leem e gravam no mesmo diretório memory/, você precisa de regras de propriedade explícitas.

  • One agent owns writes to each file — gravações simultâneas no mesmo arquivo .md produzirão conflitos
  • Use subdiretórios por agente: memory/agent-a/, memory/agent-b/, com um memory/shared/MEMORY.md compartilhado
  • Use o memory-wiki para o cofre compartilhado - sua compilação resumida lida com a atualização de vários gravadores melhor do que arquivos brutos

Long-Running Autonomous Tasks – Horas de execução sobreviventes

Para agentes que executam tarefas medidas em horas:

  • Force memory writes at checkpoints — após cada etapa principal da tarefa, instrua o agente a anexar seu estado atual à nota diária de hoje
  • Pre-load compaction-resistant context — coloque a especificação completa da tarefa em MEMORY.md antes do início da execução, não apenas na mensagem inicial
  • Set explicit continuation markers em notas diárias: <!-- RESUME POINT: completed steps 1-4, next: step 5 --> para que o agente possa se orientar após um ciclo de compactação

Por que EasyClaw vence em tarefas de memória de longa duração

EasyClaw é desenvolvido nativo para desktop - o que significa que seus arquivos de memória, índices vetoriais e notas diárias permanecem junto com seu projeto no disco local, não em uma sessão de nuvem que remove o contexto no tempo limite. Você obtém memória resistente à compactação por padrão, não por configuração.

  • ✅ Memória persistente que sobrevive a reinicializações — sem limites de sessão na nuvem
  • ✅ Indexação sqlite-vec local com latência de rede zero
  • ✅ Wiki de memória estruturado integrado - sem plug-ins extras para configurar
  • ✅ Gravações automáticas de pontos de verificação em todos os estágios principais da tarefa
  • ✅ Fixação com reconhecimento de compactação — as regras comportamentais nunca são resumidas
Experimente EasyClaw gratuitamente →

Troubleshooting OpenClaw Memory — Diagnosticar qualquer problema de esquecimento em 2 minutos

Siga estas etapas em ordem:

Step 1 — O diretório memory/ existe?

  • No → Crie-o. Isso corrige cerca de 40% de todos os relatórios de esquecimento.
  • Yes → Continue para a Etapa 2.

Step 2 — Estão sendo escritas notas diárias?

  • Verifique se há um arquivo chamado data de hoje em memory/
  • No file → O slot do plug-in pode estar configurado incorretamente. Verifique se plugins.slots.memory está definido e não false.
  • File exists but está vazio → O agente está carregando memória, mas não gravando. Verifique as permissões de gravação no diretório.

Step 3 — A compactação disparou e destruiu suas instruções?

  • Symptom: o agente se lembra dos fatos, mas ignora as regras comportamentais no meio da sessão
  • Fix: mova todas as regras comportamentais para MEMORY.md em uma seção ## [PINNED]

Step 4 — A janela de contexto está transbordando antes da compactação?

  • Symptom: o agente começa a ignorar partes anteriores de longas conversas
  • Fix: reduza o tamanho do prompt do sistema, corte MEMORY.md ou divida a tarefa em sessões mais curtas com notas de ponto de verificação explícitas

Step 5 — O índice vetorial SQLite está corrompido?

  • Symptom: a pesquisa na memória não retorna resultados ou resultados claramente irrelevantes
  • Fix: rm -rf memory/.index/ && openclaw reindex
  • Se erros sqlite-vec aparecerem nos logs: mude para o backend JS via "vectorBackend": "js"

Perguntas frequentes

P: Por que OpenClaw esquece tudo depois que fecho o terminal?

R: A causa mais comum é que o diretório memory/ não existe. OpenClaw descarta silenciosamente notas diárias quando o diretório está faltando – sem erro, sem aviso. Crie o diretório na raiz do seu projeto e verifique se um arquivo datado aparece após sua próxima sessão.

P: Meu agente segue as instruções no início, mas as ignora posteriormente em tarefas longas. Por que?

R: Isso é compactação. Quando a janela de contexto é preenchida, OpenClaw resume o conteúdo anterior para liberar espaço. Os resumos preservam os fatos, não as instruções comportamentais. Mova suas regras para MEMORY.md na seção ## [PINNED] para que sejam relidas após cada ciclo de compactação.

P: Devo usar Memory-Core ou Memory-Wiki?

R: Comece com memory-core. É zero-config e lida bem com a maioria das cargas de trabalho de desenvolvedores solo. Atualize para memory-wiki somente se sua base de conhecimento exceder aproximadamente 50 fatos, se você precisar de detecção de contradição ou se vários agentes estiverem gravando no mesmo cofre de memória.

P: Quantos ciclos de compactação posso esperar em uma operação autônoma de 2 horas?

R: Espere 3–5 ciclos de compactação. O limite é baseado na contagem de tokens, não no tempo decorrido ou no estágio da tarefa, e não é configurável pelo usuário no plug-in padrão memory-core. É por isso que a fixação resistente à compactação no MEMORY.md é essencial para tarefas de longa duração.

P: A pesquisa na memória está retornando resultados irrelevantes. Como faço para corrigir isso?

R: O índice vetorial SQLite provavelmente está corrompido ou obsoleto. Execute rm -rf memory/.index/ && openclaw reindex para reconstruí-lo a partir de seus arquivos .md. É seguro executar a qualquer momento. Se os erros sqlite-vec persistirem (comuns no ARM Linux e em algumas configurações do Windows), mude para o back-end substituto JS.

P: Posso executar vários agentes no mesmo diretório de memória?

R: Yes, mas você precisa de regras de propriedade explícitas. Gravações simultâneas no mesmo arquivo .md produzirão conflitos. Use subdiretórios por agente (memory/agent-a/, memory/agent-b/) com um memory/shared/MEMORY.md compartilhado e use o memory-wiki para o cofre compartilhado.

P: Quanto tempo as notas diárias permanecem na janela de carregamento automático?

R: Somente as notas diárias de hoje e de ontem são carregadas automaticamente no início da sessão. As notas mais antigas ficam fora da janela de carregamento automático e são acessíveis apenas por meio de pesquisa semântica. Isso ocorre intencionalmente – carregar todas as notas históricas consumiria muito orçamento de contexto.

Veredicto final – A configuração de memória que realmente funciona

Recommended baseline para a maioria dos usuários: Plugin memory-core, diretório memory/ criado antes da primeira sessão, MEMORY.md com regras comportamentais em uma seção fixada claramente identificada, notas diárias anexadas ao longo de cada sessão.

O único erro por trás de 80% dos problemas de esquecimento: não criar o diretório memory/ combinado com nenhuma fixação resistente à compactação em MEMORY.md. O agente descarta o contexto no primeiro ciclo de compactação e não tem onde escrevê-lo.

Sua lista de verificação de ação:

  • Crie o diretório memory/ na raiz do seu projeto
  • Copie o modelo inicial MEMORY.md acima e preencha seu contexto
  • Verifique se plugins.slots.memory está definido como "memory-core" (ou o plugin escolhido)
  • Adicione suas 3 a 5 regras comportamentais mais críticas em ## [PINNED] em MEMORY.md
  • Após sua primeira sessão, confirme que uma nota diária datada foi escrita
  • Se a pesquisa semântica parecer errada, execute openclaw reindex para reconstruir o índice vetorial

A arquitetura é sólida quando você a entende. A maioria dos problemas de esquecimento é resolvida em 10 minutos após seguir esta lista de verificação.