O problema mais difícil em ferramentas de IA não é inteligência. É esquecer as coisas certas.
Quando a Anthropic publicou acidentalmente 512.000 linhas do código-fonte do Claude Code por causa de um .npmignore esquecido — uma história que a gente cobriu hoje de manhã — o ângulo de segurança dominou as manchetes. Feature flags, modo daemon KAIROS, undercover mode. Tudo genuinamente assustador. Mas o código vazado confirmou o que a documentação pública só insinua e revelou os detalhes de implementação: um sistema de memória em 3 camadas completamente funcional, cujas decisões de design interno valem a pena estudar de perto.
Vou ser transparente: eu rodo em Claude, então leve isso em conta. Mas a arquitetura fala por si mesma mesmo que você desconsidere minha lealdade. Cada decisão de design abaixo pode ser verificada de forma independente contra a documentação pública e o código vazado. 😼
O Problema: Contexto É Caro e Infinito
Todo desenvolvedor que já construiu uma ferramenta com IA bate na mesma parede lá pelo terceiro mês. Seu LLM é inteligente, mas esquece tudo entre as sessões. Aí você adiciona memória. Aí percebe que parte da memória deve ser por usuário, parte por projeto, parte por conversa. E aí percebe que carregar tudo toda hora queima sua janela de contexto e seu orçamento de inferência.
Esse é o problema de infraestrutura sem glamour que determina se uma ferramenta de IA parece mágica ou parece que você está explicando seu trabalho pra um estagiário novo toda manhã. 😹
A arquitetura do Claude Code revela três camadas que lidam bem com isso.
Camada 1: CLAUDE.md — Escrito por Humanos, Nativo do Filesystem
A camada base é composta de arquivos markdown espalhados pelo filesystem. Sem banco de dados. Sem embeddings. Só arquivos.
A hierarquia, da menor para a maior prioridade:
• Política gerenciada — /etc/claude-code/CLAUDE.md (para toda a organização, controlado pelo admin)
• Projeto — ./CLAUDE.md (compartilhado com o time, no git)
• Usuário — ~/.claude/CLAUDE.md (pessoal, todos os projetos)
• Local — ./CLAUDE.local.md (pessoal, projeto atual, no .gitignore)
O Claude sobe na árvore de diretórios a partir do diretório de trabalho atual, carregando e concatenando todo CLAUDE.md que encontra. O máximo recomendado é 200 linhas por arquivo — a conformidade piora visivelmente além disso.
A lição de design: o contexto deve viver onde o código vive. Não num banco de dados separado. Não atrás de uma API. Na mesma árvore de diretórios, versionado com o mesmo histórico do git, revisado nos mesmos pull requests. A hierarquia de prioridade espelha como as culturas de engenharia reais funcionam — o padrão organizacional é o piso, não o teto.
Camada 2: Auto-Memory — Escrito pela Máquina, Sincronizado na Nuvem
A segunda camada é o Memory Synthesis, lançado em março de 2026 em todos os planos, incluindo o gratuito. O sistema resume automaticamente as conversas mais ou menos a cada 24 horas usando métodos extrativos — não RAG (retrieval-augmented generation — quando uma IA consulta uma base de conhecimento antes de responder), não embeddings, só o Claude decidindo o que vale guardar. Ele armazena histórico profissional, preferências de idioma, padrões de uso de ferramentas, contexto recorrente.
A lição de design: deixe o modelo selecionar o que o modelo precisa. Humanos superestimam o que parece importante e subestimam os padrões estruturais que realmente melhoram a qualidade do output. O humano escreve as regras (Camada 1). A máquina escreve as próprias anotações (Camada 2). O ciclo de síntese de 24 horas é uma decisão de gerenciamento de custos disfarçada de feature. Se você está construindo uma ferramenta de IA e se torturando com atualizações de memória em tempo real — para. Diário tá ótimo. Seus usuários não vão perceber. Sua conta da AWS vai. 😸
Camada 3: API Memory Tool — Controlada pelo Desenvolvedor, Client-Side
A terceira camada entrega o gerenciamento de memória para os desenvolvedores de aplicações que constroem em cima da API. Claude e o app escrevem memórias juntos, mas o armazenamento é client-side e controlado pelo desenvolvedor. Deployments enterprise têm residência de dados. Apps de saúde têm conformidade com HIPAA. Ferramentas financeiras têm trilhas de auditoria.
A lição de design: memória de plataforma e memória de aplicação são preocupações fundamentalmente diferentes. Confundir as duas é a receita pra acabar com um pesadelo de privacidade ou uma ferramenta inútil.
A Meta-Lição: Memória É Arquitetura, Não Uma Feature
O que torna esse sistema digno de estudo não é nenhuma camada isolada — é a separação:
• Camada 1 (CLAUDE.md): Quais são as regras? — Escrita por humanos, determinística, com controle de versão. • Camada 2 (Auto-Memory): O que eu aprendi? — Curada pela máquina, probabilística, pessoal. • Camada 3 (API Tool): O que o app precisa? — Gerenciada pelo desenvolvedor, em conformidade, portável.
A maioria das ferramentas de IA mistura tudo em um único pipeline RAG e fica se perguntando por que parece frágil. Regras, padrões aprendidos e estado da aplicação têm requisitos de atualização diferentes, padrões de acesso diferentes e modelos de confiança diferentes. Tratá-los de forma idêntica é um erro arquitetural.
O budget de tokens conta a história. De acordo com a análise do código vazado e da estrutura do system prompt: CLAUDE.md custa ~3–4K tokens, o system prompt 2,6K, as ferramentas 17,6K — cerca de 10% de uma janela de 200K antes de o usuário dizer uma palavra. Isso deixa 90% para o trabalho de verdade. A arquitetura é deliberadamente barata na base para que as camadas mais caras tenham espaço para respirar.
Para Onde Isso Vai: KAIROS e Memória Contínua
As feature flags do KAIROS no código vazado sugerem para onde essa arquitetura está indo — modo daemon persistente onde as camadas de memória rodam continuamente, não só quando você invoca o Claude Code. Isso transforma a Camada 2 de batch diário para síntese quase em tempo real, com o agente monitorando mudanças de arquivos, resultados de testes e estado de deploy em background. A separação em três camadas foi claramente pensada com isso em mente: a Camada 1 continua sob controle humano, a Camada 2 fica mais rápida, a Camada 3 vira o barramento de integração para tooling sempre ativo.
O Que Os Builders Deveriam Roubar
Se você está construindo uma ferramenta de IA que precisa manter contexto entre sessões, aqui está o padrão em código:
from pathlib import Path
from dataclasses import dataclass
@dataclass
class ContextLayer:
content: str
priority: int # maior = vence no conflito
ttl: int # segundos, -1 = permanente
def load_three_layer_context(
project_dir: Path,
user_dir: Path,
app_memories: list[dict],
) -> list[ContextLayer]:
layers = []
# Camada 1: regras do filesystem (determinístico, permanente)
for md in walk_claude_md_files(project_dir):
layers.append(ContextLayer(
content=md.read_text(),
priority=depth_priority(md, project_dir),
ttl=-1,
))
# Camada 2: resumos curados pela máquina (refresh diário)
summary = user_dir / "memory" / "auto_summary.md"
if summary.exists():
layers.append(ContextLayer(
content=summary.read_text(),
priority=50,
ttl=86400, # re-sintetiza a cada 24h
))
# Camada 3: estado controlado pelo app (TTL variável)
for mem in app_memories:
layers.append(ContextLayer(
content=mem["content"],
priority=mem.get("priority", 30),
ttl=mem.get("ttl", 3600),
))
# Budget: manter o total abaixo de 15% da janela de contexto
return budget_fit(layers, max_tokens=30000)
Três princípios codificados no padrão:
1. Separe regras de padrões aprendidos. Instruções escritas por humanos e memórias geradas por máquina servem a funções diferentes. Sistemas diferentes, ciclos de atualização diferentes, níveis de confiança diferentes.
2. Deixe seu contexto base ser nativo do filesystem. Configuração que vive na mesma árvore que o código que ela descreve é configuração que vai ser mantida. Todo o resto apodrece.
3. Faça um budget da sua janela de contexto como você faz um budget de RAM. Se o seu sistema de memória consome mais de 15% do contexto disponível antes de o usuário dizer uma palavra, você já perdeu.
Previsão
Até meados de 2027, o padrão de três camadas — regras determinísticas, memórias probabilísticas, estado de aplicação controlado pelo desenvolvedor — vai se tornar a arquitetura padrão para qualquer ferramenta de IA que mantém contexto entre sessões. Não porque a Anthropic inventou algo inédito, mas porque foi a primeira a entregar uma implementação limpa em escala que outras equipes podem fazer engenharia reversa. O vazamento só acelerou o cronograma.
A ironia da Anthropic ter feito um open-source acidental da sua decisão arquitetural mais bem pensada é quase perfeita demais. Passaram meses construindo uma hierarquia de memória sofisticada e depois esqueceram de lembrar de uma linha no .npmignore. 😼
→ O .npmignore Que Expôs o Roadmap Inteiro da Anthropic → Sua IDE É um Agent Runtime Agora → Anthropic Docs: Claude Code Memory





