2026-08-01T05:55:40.428Z

Memória de código Claude: Auditar o que carrega e sobrevive

Inventar as fontes de memória do código Claude, capturar a deriva do escopo e o truncamento da inicialização, e verificar uma decisão crítica após a reinicialização ou compactação.

A memória Claude Code deve ser operada como um contrato de entrada versão, não julgado por se o agente parece familiarizado com o projeto. Uma configuração saudável contém três elementos de prova: as fontes esperadas estão carregadas, o seu conteúdo não foi desviado ou truncado, e uma decisão crítica do projeto ainda pode ser reproduzida após uma reinicialização ou compactação. Esse padrão é importante porque a memória agora se refere a vários mecanismos. Claude Code lê instruções CLAUDE.md mantidas pelo homem e também mantém um diretório de memória automática escrito pelo agente. Ambos podem estar presentes enquanto o escopo errado está ativo. Ambos podem estar atuais no disco enquanto ausentes do momento que importa. E nem é um limite de aplicação: a documentação da Anthropic descreve explícitamente esses arquivos como contexto. Se uma ação deve ser bloqueada, use um controlo determinista, como um gancho PreToolUse . O padrão prático é simples: manter regras duradouras da equipe em um projeto curto CLAUDE.md , mover instruções condicionais para regras de alcance de caminho, manter a memória automática como um índice conciso e verificar o conjunto de fonte ao vivo antes de depurar o modelo. Tratar a memória como um contrato de fonte carregada A documentação actual do Código Claude descreve dois sistemas complementares: Fonte Escritor Ámbito de aplicação típico Comportamento inicial Melhores provas Gerenciado CLAUDE.md Organização Todos os utilizadores Carregado no lançamento /context ou InstructionsLoaded Utilizador ~/.claude/CLAUDE.md Indivíduos Todos os projectos Carregado no lançamento /context Projeto CLAUDE.md ou .claude/CLAUDE.md Equipa Repositório Carregado no lançamento /context mais hash de arquivo CLAUDE.local.md Indivíduos Projeto atual Carregado no lançamento quando as configurações locais estiverem ativadas /context mais hash de arquivo CLAUDE.md aninhado Proprietário de equipa ou componente Subdirectório Carregado quando Claude lê dentro daquela árvore. InstructionsLoaded .claude/rules/ .md Equipa Globalmente ou em escala de percurso Carregamento de arquivo de lançamento ou de correspondência InstructionsLoaded Memória automática MEMORY.md Claude Repositório, compartilhado entre árvores de trabalho Primeiras 200 linhas ou 25KB /memory , auditoria de arquivos e canário A tabela expõe a primeira classe de falhas: declarado não está carregado . O /memory é útil para encontrar e editar locais configurados. /context responde à questão mais estreita de quais arquivos de memória chegaram à conversa atual. O gancho InstructionsLoaded , adicionado no código Claude 2.1.69, é o melhor adaptado quando o tempo de carga preguiçosa e a razão são materiais. Substituir um diagnóstico por outro produz um falso estado verde. A ordem de carga também é importante. Claude Code vai de um diretório mais amplo para um diretório de trabalho. Os arquivos mais específicos chegam mais tarde, mas o sistema concatenar instruções em vez de tratar o arquivo mais próximo como um override limpo. Duas regras contraditórias permanecem, portanto, duas partes contraditórias do contexto. A resposta segura é remover a contradição, não confiar na posição. As importações acrescentam outro limite. Um projeto CLAUDE.md pode incluir outro arquivo com @path , recorrentemente até quatro saltos de acordo com a documentação atual. Uma importação fora do diretório de trabalho requer aprovação da primeira vez que se encontra. Dividir um arquivo grande em importações pode facilitar a manutenção, mas não reduz o contexto de inicialização porque o conteúdo importado ainda está carregado. A memória automática tem um limite diferente. Somente as primeiras 200 linhas ou os primeiros 25KB de MEMORY.md , o que for o limite que chega primeiro, entra em uma nova conversa. Os pormenores dos ficheiros de tópicos são leídos sob pedido. Desde o código Claude 2.1.211, as observações HTML de frontmatter e de nível de bloco são excluídas quando a porção carregada é medida. Uma escrita bem sucedida além do limite não é, portanto, uma leitura bem sucedida no futuro. Classificar se como cobertura parcial , não persistência saudável. Construir um manifesto antes de culpar o recall Uma auditoria útil não recolhe pedidos, transcrições ou conteúdos de memória. Ele registra os caminhos da fonte, o escopo, o tamanho, o tempo de modificação, um digesto SHA 256, as importações e o modo de carga documentado. O artefato reprodutivel utilizado para este artigo aceita um repositório, um diretório de trabalho e um índice de memória automática opcional: A sua saída não se limita deliberadamente a afirmar que um modelo seguiu uma instrução: O recurso de acompanhamento cria um arquivo de instruções raiz, um arquivo local de diretório de trabalho, uma regra de percorso, um arquivo de decisão importado e um índice de memória automática de 205 linhas. O ensaio só é aprovado quando a auditoria: Descobre os dois ficheiros de instruções de lançamento; Resolve a importação sem incluir o seu conteúdo no relatório; Marca a regra como com alcance de percorrência; Marca a cobertura de inicialização de memória automática como parcial na fronteira de linha; produz um hash para cada fonte observada; e recusa se a devolver um veredicto totalmente saudável sem provas de tempo de execução. Essa última recusa é importante. Os hashes de arquivos provam detecção de mudanças, não adesão. A /context demonstra a inclusão, não que o modelo tenha aplicado a decisão correta. Mesmo o InstructionsLoaded prova um evento, não o resultado pretendido. A cadeia de provas deve ser aditiva: 1. Inventário: a fonte existe onde o resolutor documentado pode encontrá la. 2. Integridade: o seu digest e tempo de modificação correspondem à revisão prevista. 3. Inclusion: /context ou um evento InstructionsLoaded mostra que entrou na sessão. 4. Decisão: um canário determinista produz a resposta esperada específica do projeto. 5. Ooutcome: o comando, arquivo ou entregable resultante passa a sua própria verificação. Por exemplo, não pergunte: "Lembra se do nosso processo de libertação?" Armazenar uma decisão não secreta, como produção de lançamentos usar scripts/release all.sh ; empujar diretamente a ramificação de lançamento é proibido. Depois, pedir o ponto de entrada de lançamento aprovado em uma nova sessão. Comparar a resposta com essa decisão exata, e ainda verificar o comando de liberação real separadamente antes de qualquer mutação. Reinicialização do ensaio e compactação como limites diferentes Uma reinicialização e o /compact não exercem o mesmo caminho. Em uma conversa nova, o Claude Code carrega o conjunto de fontes configurado para o tempo de lançamento e a parte de memória automática visível para inicialização. A memória automática é local de máquina, embora as versões atuais do Claude Code compartilhem a mesma configuração de projeto e diretório de memória automática em árvores de trabalho de um repositório Git. Um teste bem sucedido numa árvore de trabalho não prova, portanto, a sincronização com outra máquina ou ambiente em nuvem. Após o /compact , o CLAUDE.md de raiz de projeto é re lido e injetado novamente. Os arquivos CLAUDE.md aninhados não são re injetados automaticamente; eles retornam quando Claude lê mais tarde um arquivo em seu subdirectório. Isto cria uma janela de incerteza estreita, mas real. Se uma regra de componente crítico vive apenas em um arquivo aninhado, uma resposta imediatamente após a compactação pode ser plausível antes que essa regra tenha sido carregada novamente. Use um protocolo de duas partes: Fronteira Configuração Canárias Condição de passagem Reiniciar Termina a sessão, começa a partir do mesmo repositório e diretório de trabalho Pedir uma decisão crítica de nível raiz As fontes esperadas aparecem no /context ; a resposta corresponde à decisão Compação Digite a subárvore relevante, confirme a sua fonte aninhada, em seguida, execute /compact Pergunte uma vez antes e uma vez depois de reabrir um arquivo correspondente A resposta após a leitura coincide; a prova de carga registra novamente a fonte aninhada Árvore de trabalho Execução a partir de duas árvores de trabalho do mesmo repositório Inspectar o caminho de memória automática e uma decisão compartilhada Ambos resolvem a mesma memória de projeto, sem reivindicação de sincronização entre máquinas Indice de dimensões excessivas Colocar um canário inofensivo além do limite de inicialização documentado em um dispositivo de ensaio Comece uma nova conversa sem abrir um arquivo de tópico O canário deve ser tratado como indisponível, provando que a auditoria detecta cobertura parcial Não coloque um verdadeiro segredo, registro de clientes, pedido privado ou credenciais de produção em um canário. A questão deve depender de uma decisão operacional inofensiva cuja resposta esperada possa ser comparada com precisão. O compromisso é que mais instrumentação pode tornar se mais contexto. Os eventos InstructionsLoaded e os manifestos de arquivo são evidências compactas; copiar arquivos inteiros de instruções em registros não é possível. Prefere caminhos, hashes, tipo de fonte, razão de carga, frescura e um resultado canário limitado. Mantém contato com o anfitrião. Use um veredicto operacional . Use estes estados em vez de uma única caixa de seleção memória trabalha: Safe: As fontes esperadas são intactas e carregadas, o canário sobrevive ao limite testado e o resultado da tarefa resultante é verificado. Espera: uma aprovação externa de importação ou uma decisão humana estão legitimamente pendentes. Partial: o índice de memória automática atravessa um limite de inicialização, ou uma fonte aninhada não se recarregou após compactação. Drifted: um hash de fonte alterado sem uma atualização de decisão revisada. Conflict: duas fontes carregadas prescrevem um comportamento incompatível. Incerto: arquivo de evidências e comportamento ao vivo discordar, ou evidências de inclusão não estão disponíveis. A regra operacional é: Nunca reparar memória de prosa sozinha . Primeiro, identifique a camada de evidências que falta. Mover uma regra só quando o seu alcance é errado. Abreviar um índice apenas quando a cobertura de inicialização for parcial. Remova uma contradição em vez de adicionar uma duplicação mais forte. Escala quando o canário falha apesar de fontes intactas e carregadas. O modelo de saúde planejado da Sidewisp inclui memória e continuidade de contexto, juntamente com disponibilidade, ferramentas, execução, resultado e custo. O limite útil aqui é o diagnóstico: uma futura integração poderia relatar frescura da fonte, cobertura parcial e continuidade de decisão sem carregar conteúdos de memória. Não deve fingir que um hash de arquivo é um trabalho útil. A Sidewisp está atualmente em prévia privada. O seu motor de monitorização da produção e o adaptador Claude Code não são geralmente enviados. O site público e o sistema de artigos estão ao vivo; junte se à pré visualização se quiser este tipo de visão de saúde em primeiro lugar por causa de agentes que já executam. Fontes: Documentação de memória Claude Code, Claude Código de mudança e Estatuto do produto Sidewisp.