Dei uma olhada em Claude Code entre as sessões e minha configuração começou a funcionar sozinha

Por mais assustadora que eu ache a memória das ferramentas de IA, tenho que admitir que proporciona uma experiência muito melhor. Afinal, é por isso que todos os principais laboratórios de IA estão investindo tão agressivamente em seus esforços para desenvolver personalização e contexto persistente.

Ninguém quer reexplicar todo o seu projeto sempre que abre um novo chat. Embora eu não seja fã deles, especialmente em chatbots que você usa para tarefas cotidianas, me deparei com essa ideia em um contexto de codificação. Então, quando descobri uma maneira de dar a Claude Code uma memória que realmente persiste e aprende durante as sessões, tive que tentar.

Claude Code possui dois tipos de memória interna

Aquele que você escreve, aquele que se escreve

Atualmente, a ferramenta possui dois sistemas de memória que são carregados no início de cada sessão do Claude Code: arquivos CLAUDE.md e memória automática. Ambos os sistemas são complementares, o que significa que foram concebidos para funcionarem lado a lado e não como substitutos.

CLAUDE.md é um arquivo armazenado na raiz do seu projeto que contém as instruções que você mesmo escreve para o código de Claude: as convenções, comandos e regras rígidas que você deseja seguir em cada sessão específica do projeto em que está trabalhando. Este arquivo é lido na íntegra por Claude Code no início de cada sessão, por isso é a maneira perfeita de contar tudo sobre o projeto – basicamente qualquer coisa que de outra forma seria reexplicada todas as vezes. Se você escrever a mesma correção inserida ontem, ou a revisão do código observar algo que Claude Code já deveria saber, o arquivo incluirá exatamente isso.

Embora os arquivos CLAUDE.md possam ser gerados automaticamente pelo comando /init, e você possa tecnicamente pedir ao próprio Claude Code para criar um para você, este arquivo é destinado principalmente para você escrever e manter. Esse é realmente o objetivo. É uma parte da memória do Código Claude que está inteiramente em suas mãos. Nada entra lá, a menos que você o coloque inconscientemente, e é por isso que ele nunca dispara os mesmos alarmes que a memória dispara em um chatbot normal. Em vez de coletar informações automaticamente em segundo plano, o arquivo pretende ser um conjunto de instruções que você passa deliberadamente.

Isso combina bem com o segundo lado da memória do Código Claude que mencionei anteriormente: a memória automática. Ele faz exatamente o que o nome sugere: em vez de esperar que você escreva as coisas, Claude Code faz suas próprias anotações enquanto você trabalha, registrando suas edições e preferências para que você não cometa o mesmo erro duas vezes. No entanto, não salva nada por sessão. Ele avalia se vale a pena manter uma determinada correção ou preferência para a próxima vez e só a anota se achar que será útil mais tarde.

A memória automática foi projetada para ser totalmente gratuita. Você não gerencia, não solicita e está ativado por padrão (a menos que você esteja usando o Claude Code v2.1.59 ou posterior). Assim como o seu projeto CLAUDE.md, ele se aplica a tudo em que você trabalha, o que significa que cada projeto recebe sua própria pasta de memória e o que Claude Code aprende em um não é usado no próximo.

A diferença é quem escreve e o que vai parar na página. Com CLAUDE.md, você escreve, e todas as coisas conscientes acontecem lá: seus padrões de codificação, seus fluxos de trabalho e a forma como seu projeto é construído. A memória automática é para as coisas que Claude Code descobre ao longo do caminho: um comando de construção que realmente funciona, uma visão de depuração de um bug que você acabou de corrigir ou uma escolha que ele obteve ao observar você trabalhar.

Claude-mem dá a Claude Code uma memória que nunca esquece

Ele anota tudo para que você não precise

A razão pela qual passei por toda a toca do coelho acima foi para deixar claras as falhas no sistema de memória original de Claude Code. A memória automática é seletiva por natureza e não há como voltar atrás e procurar o que ela perdeu. claude-mem assume a posição oposta: tenta lembrar de tudo. Seu slogan é “um sistema de compressão de memória persistente projetado para o código de Claude”, e a forma como faz isso é capturando automaticamente observações de uso da ferramenta, gerando resumos semânticos e disponibilizando-os para sessões futuras. Assim, mesmo depois de você fechar o terminal e voltar, Claude ainda saberá o que você fez.

O mecanismo é uma cadeia de ganchos de ciclo de vida (que são basicamente scripts que Claude Code aciona em momentos específicos da sessão, para que o plugin possa conectar suas tarefas sem que você faça nada). Claude-mem me conduz um pouco deles. Isso inclui SessionStart que injeta contexto de suas últimas sessões, UserPromptSubmit armazena seus prompts, PostToolUse captura uma observação cada vez que a ferramenta é executada e os ganchos Stop e SessionEnd geram um resumo quando você termina. O serviço de trabalho em segundo plano pega essas observações brutas e, como dizem os documentos, extrai o conhecimento resultante usando o Claude Agent SDK e, em seguida, arquiva tudo em um banco de dados SQLite com pesquisa de texto completo FTS5 e um índice vetorial Chroma adicional para pesquisa semântica. Em outras palavras, onde minha pasta auto-mem original tem dois arquivos de tags, claude-mem é um pequeno pipeline que funciona por trás do código de Claude.

O código de Claude funciona melhor se você parar de pedir a ele para codificá-lo

O código de Claude se tornou muito mais útil quando parei de pensar nele como um gerador de código e comecei a usá-lo para dar sentido a projetos e ao caos terminal.

Assim que você o instala, o trabalhador cria um serviço HTTP local e começa a ouvir para ver se esses ganchos enviam alguma coisa para ele. Ele também oferece um visualizador web, que é uma transmissão ao vivo de tudo o que a ferramenta decide lembrar, atualizando em tempo real enquanto você trabalha. Por exemplo, liderei uma sessão diretamente dentro do projeto e pedi a Claude Code que sugerisse recursos para adicionar a ele. O fluxo estava cheio de cartões documentando o que foi realizado, incluindo um resumo da sessão dividido no que foi explorado, aprendido e concluído, bem como entradas de descoberta separadas, como “Modelo de faturamento existente encontrado na base de código” e “Arquitetura de serviço e controlador identificada”. Cada cartão é acompanhado por um nome de projeto, carimbo de data/hora e tipo (por exemplo, descoberta, recurso, resumo da sessão) porque claude-mem na verdade segue em frente e classifica os capturados por tipo.

O verdadeiro teste aqui foi o desempenho de Claude quando iniciei outra sessão do mesmo projeto. Quando fiz isso, Claude-mem listou o que lembrava da última sessão antes de eu gravar qualquer coisa. Dessa forma, eu poderia continuar rapidamente de onde paramos sem precisar explicar nada, ou melhor, não precisei continuar porque já estava feito.

Quando eu disse para ele fazer uma tarefa (criar uma linha do tempo), ele pegou o resumo exatamente onde o último parou e criou um recurso no estilo existente da base de código. Por exemplo, como este era um projeto para um curso que estou cursando neste semestre, preferi usar iteração limpa, como loops for simples, em vez de algo muito inteligente, porque é muito mais fácil de entender. O plugin Claude-mem teve essa escolha registrada em sessões anteriores e assumiu imediatamente.

A memória é pesquisável e essa é a parte que me vendeu

Pergunte o que você decidiu há cinco sessões

O recall automático é o lado que você nota primeiro, mas o lado que realmente me convenceu é a pesquisa. Tudo o que Claude-mem captura vai para um banco de dados pesquisável. Isso significa que você pode ir a um projeto semanas depois e apenas perguntar sobre ele, em vez de reler sessões antigas ou percorrer o visualizador em busca de um mapa. Você pode fazer uma pergunta simples e obter uma resposta. Nos bastidores está a pesquisa de texto completo do SQLite combinada com um índice vetorial opcional para corresponder ao significado, em vez de apenas palavras-chave exatas, e foi projetado para que Claude extraia primeiro um índice compacto de ocorrências e traga apenas todas as informações sobre aquelas que realmente importam, o que significa que você está pesquisando meses de história sem sair da janela de contexto. Mas você não precisa saber nada disso para usá-lo! Existe uma habilidade de flashback que permite perguntar em linguagem simples, então fiz isso.

Em várias sessões do meu projeto hospitalar, digitei uma pergunta simples sobre se já havia feito faturamento. O plugin deixou claro que o faturamento foi sugerido como recurso duas vezes e que eu havia escolhido outro trabalho. O que foi interessante aqui é que não foi algo mencionado apenas em uma transmissão. Em vez disso, combinou a resposta de múltiplas sessões. Ele sabia que o faturamento estava acontecendo duas vezes, sabia quais recursos eu selecionava para ele a cada vez, sabia que já havia um módulo de faturamento na base de código de pesquisas anteriores e até trouxe à tona uma regra que mencionei apenas de passagem: apenas o paciente pode pagar a conta, não o administrador ou o médico.

O verdadeiro poder de Claude Code vem das melhorias das quais ninguém quer falar

Claude Code fica melhor quando você para de perseguir fluxos de trabalho chamativos e começa a obter detalhes enfadonhos de configuração.

A memória persistente pesquisável é simplesmente algo que não pode ser feito com a memória nativa de Claude Code. Nenhuma das opções integradas é para isso. O arquivo CLAUDE.md são apenas instruções que você escreve e mantém manualmente, então ele só sabe o que você colocou nele. Não há nada a procurar, pois não é um registro e é simplesmente um conjunto de regras.

A memória automática, por outro lado, registra como estou escrevendo e carrega-a quando for relevante, mas não há índice por trás dela e nada para realmente consultar. Não consigo abrir um projeto depois de cinco sessões e perguntar o que decidi sobre o faturamento porque nenhum sistema está configurado para responder a isso! O plugin Claude-mem preenche a lacuna entre os dois e mantém um registro completo de tudo o que você faz durante uma sessão, permite pesquisá-lo sempre que precisar e está ciente dos anteriores em cada sessão subsequente, de modo que o contexto aumenta ao longo do tempo, em vez de ser redefinido toda vez que você fecha o terminal.

A memória de codificação é uma memória com a qual posso conviver

Em vez de aprender quem sou como indivíduo, a ferramenta é aprender como abordo meu trabalho. Essa memória consiste em minhas convenções de codificação, nos comandos que realmente executo, nas correções que preciso iterar e nas partes da base de código nas quais ela precisa colocar as mãos. Alguns deles estão relacionados ao projeto e alguns deles me seguem por toda parte. No entanto, nada disso parece pessoal como um chatbot que captura meus planos de viagem.

Com claude-mem, obtenho exatamente a versão que me agrada: anotada onde posso vê-la, armazenada em meu computador e consultada quando preciso. Se há algo que eu prefiro não escrever, posso embrulhar em uma tag privada e ele fica de fora. Memórias assim não me importo de desistir porque vejo o que elas guardam e jogo fora tudo que não quero!

Link da fonte