Blogue

Como desativar a memória automática do Claude Code num projeto

Markdown

A memória automática do Claude Code num único projeto é desativada com a linha autoMemoryEnabled: false no ficheiro .claude/settings.json. Em que é que isto é melhor do que /memory e como se limpam as notas?

Ler o artigo completo

Para desativar a memória automática do Claude Code apenas num projeto, adiciona "autoMemoryEnabled": false ao ficheiro .claude/settings.json desse projeto. O botão de alternância do comando /memory não serve para isto: escreve a definição no teu ficheiro global e desativa a memória em todos os projetos do teu computador.

Um agente pode rapidamente ficar cheio de coisas de que não precisa. No caso aqui descrito, o Hermes passou 2 horas a pensar numa tarefa. Quando lhe perguntaram: «Quantos tokens usaste?», respondeu: «A minha estimativa aproximada é 100 milhões.» Resolveste a tarefa? «Não, pesquisei.» Continuou a percorrer todos os ficheiros, um a um, e a ficar confuso.

É por isso que só deves guardar na memória de um agente as informações mais valiosas. E, segundo a avaliação aqui apresentada, a memória automática do Claude Code é bastante fraca: muito pequena e fortemente comprimida. Se queres que o Claude trabalhe apenas segundo as tuas regras, basta 1 linha nas definições do projeto.

Vamos ver em que difere a memória automática do CLAUDE.md, como a desativar e o que fazer com as notas antigas. Vamos a isso.

Documentação de referência da Ailoot: ailoot.ai/docs/.

Ideia principal

Abre o ficheiro .claude/settings.json do projeto e adiciona "autoMemoryEnabled": false. Se outras pessoas trabalham no projeto e queres desativar a memória apenas para ti, coloca a mesma chave em .claude/settings.local.json. A chave aplica-se apenas a este projeto; a memória continuará a funcionar nos outros. O botão de alternância em /memory escreve a chave em ~/.claude/settings.json e desativa a memória em todo o lado. As notas antigas permanecem no disco quando a memória é desativada. Podes abri-las através de /memory e limpá-las manualmente.

Em que difere a memória automática do CLAUDE.md?

O CLAUDE.md é o ficheiro principal de instruções, e és tu que o escreves. Em cada novo chat, é como se o Claude perguntasse: «O que está aqui? Quem sou eu? O que devo fazer?» Quando tudo está explicado no CLAUDE.md, responde: «Certo, sou o especialista. Percebido.»

O Claude escreve a memória automática por si próprio. Dizes-lhe: «Lembra-te de que deves responder sempre no meu idioma preferido» ou «Não fixes valores no código; obtém-nos sempre da base de dados», e ele escreve um ficheiro na pasta de memória, na linha de «não voltes a fazer isso». Nas sessões seguintes, lembra-se disso.

Claro que nem sempre. Os agentes continuam a esquecer-se das coisas e tens de estar atento: «Olha, pá, esqueceste-te outra vez. Já falámos disto.» Ele responde: «Ah, sim, lembro-me; encontrei aqui no ficheiro.» É por isso que, em geral, colocamos tudo o que é importante no CLAUDE.md em vez de confiarmos na memória.

Há uma explicação detalhada sobre que regras colocar no CLAUDE.md num artigo separado, e sobre as diferenças entre a Memory no chat Claude e o CLAUDE.md noutro artigo.

Se crias os teus projetos com agentes de IA, mantém a documentação das ferramentas que utilizas por perto.

O que o Claude escreve por iniciativa própria

O Claude Code guarda 4 tipos de notas:

  • user — o teu papel, experiência e forma de trabalhar preferida;
  • feedback — as tuas correções e abordagens que confirmaste;
  • project — trabalho atual, prazos e decisões que não são visíveis no código;
  • reference — onde encontrar informações fora do projeto, como num sistema de acompanhamento de tarefas.

Tudo isto fica em ~/.claude/projects/<project>/memory/. O ficheiro principal é o MEMORY.md, um índice com 1 linha por nota. No início de cada sessão, o Claude lê as primeiras 200 linhas ou 25 KB e abre os outros ficheiros quando precisa deles. A memória só existe no teu computador: não é transferida para outra máquina nem para a nuvem.

No exemplo aqui descrito, contém o nome e o papel do utilizador, além de uma regra contra a fixação de valores dinâmicos no código, apenas 5–7 linhas no total. São regras para o próprio agente: como deve trabalhar.

Podes guardar conhecimentos sobre o projeto num segundo cérebro: pastas com ficheiros que o agente lê através de ligações. Para esta abordagem, é útil definir uma competência de «segundo cérebro» e manter, junto dos ficheiros do projeto, um PDF com os comandos de instalação do Hermes e uma tabela sobre «que modelo usar para cada tarefa».

Como desativar a memória automática num projeto

  1. Adiciona a linha às definições do projeto

    A pasta principal do projeto contém uma pasta oculta .claude com um ficheiro settings.json. A forma mais fácil é pedir ao próprio Claude Code: «Adiciona "autoMemoryEnabled": false ao ficheiro .claude/settings.json deste projeto e deixa as outras definições como estão.» Se estiveres a editá-lo manualmente e o ficheiro não existir, cria-o com este conteúdo:

    {
      "autoMemoryEnabled": false
    }
    

    Se o ficheiro já contiver definições, adiciona a chave junto das restantes e não alteres mais nada. Quando autoMemoryEnabled está definido como false, o Claude não lê a pasta de memória nem escreve nela.

  2. Escolhe a quem se aplica a definição

    .claude/settings.json é o ficheiro partilhado do projeto e aplica-se a todas as pessoas que trabalham nele. Se quiseres desativar a memória apenas para ti, coloca a mesma chave em .claude/settings.local.json: este é o teu ficheiro pessoal de definições para este projeto.

    As definições do projeto prevalecem sobre as definições globais. Mesmo que a memória esteja ativada em ~/.claude/settings.json, neste projeto prevalece false.

  3. Reinicia o Claude Code

    Fecha a sessão e executa novamente claude na pasta do projeto. Escreve /status: o ficheiro do projeto deverá aparecer na linha Setting sources. Se aparecer, o Claude leu-o. A memória continuará ativada no projeto ao lado.

Há mais 2 métodos, mas servem propósitos diferentes:

  • A variável de ambiente CLAUDE_CODE_DISABLE_AUTO_MEMORY=1. Executar CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 claude desativa a memória apenas nessa execução e prevalece sobre a chave nos ficheiros de definições. Mas tens de escrever isto sempre que executas o comando.
  • O botão de alternância em /memory. Escreve autoMemoryEnabled em ~/.claude/settings.json, o teu ficheiro global para todos os projetos do computador. Se o usares num projeto, desativas a memória em todo o lado.

Mais uma coisa: numa sessão em segundo plano, o botão de alternância só consegue desativar a memória, não voltar a ativá-la. Para a ativar, usa uma sessão normal que tenhas iniciado pessoalmente ao executar claude no terminal.

Aviso

Desativar a memória não apaga nada do que o Claude já escreveu. A pasta memory permanece no disco até a limpares tu próprio.

O que fazer com as notas antigas

O comando /memory apresenta os ficheiros de memória e permite abrir qualquer um deles. São ficheiros de texto comuns: podes editá-los ou apagá-los.

Não os apagues às cegas; primeiro, vê o que lá está. No caso aqui descrito de limpeza da pasta de regras, o agente tinha registado informações desnecessárias sobre o utilizador como parte da sua autorreflexão. Regras confusas são tão prejudiciais como um ficheiro CLAUDE.md principal desorganizado e cheio de regras desatualizadas: o agente continua a usá-las, alucina e dá-te um contexto pior.

Podes pedir ao agente que faça a limpeza. Uma vez por semana, podes dar-lhe uma tarefa como esta para a pasta de trabalho; também funciona para a pasta de memória:

A tua tarefa é encontrar tudo o que já não é relevante ou está desatualizado e provar que está realmente desatualizado. Ainda não o deves apagar; limita-te a encontrá-lo e a apresentá-lo.

Ele apresenta-te uma lista com provas, e tu decides o que apagar. Transfere das notas para o CLAUDE.md apenas as informações mais valiosas. Há uma explicação sobre como manter as instruções curtas para que o Claude as siga num artigo separado. E o artigo sobre o segundo cérebro explica como organizar a memória do projeto no seu conjunto, com pastas e regras.

Mantiveste a memória automática ativada ou desativaste-a? Vê o que o Claude já conseguiu memorizar sobre ti. Podes continuar a explorar a Ailoot em ailoot.ai.

Fontes

Mais detalhes

Perguntas frequentes

Que ficheiro de definições desativa a memória só para mim num projeto?

Coloque "autoMemoryEnabled": false em .claude/settings.local.json desse projeto. Use .claude/settings.json para uma definição partilhada do projeto. A opção em /memory altera a definição global e não serve quando os outros projetos devem manter a memória ativa.

Desativar a memória automática apaga as notas antigas?

Não. A pasta de memória permanece no disco. Examine os ficheiros antes de eliminar algo e, se necessário, preserve as decisões úteis noutro local. Reinicie o Claude Code depois de alterar as definições do projeto e verifique em /status a origem da definição carregada.

Todos os artigos