Hippocampus:Faça o agente aprender com os erros
As lições dolorosas são escritas em notes/, mem build compila para o índice, e antes da próxima tarefa semelhante, consulte como foi da última vez. CLI: mem.
Diretório raiz da memória $MEM_HOME (padrão ~/.claude/memory). Tudo é texto puro, mem build gera as outras três camadas a partir de notes/.
Quando usar
- Antes de iniciar uma tarefa não trivial: verifique se algo foi feito antes, se há decisões ou armadilhas.
- Quando o usuário mencionar "da última vez", "já foi dito antes", "como de costume".
- Antes de despachar um subagente: escreva a memória relevante no spec.
- Após concluir um resultado reutilizável, resolver um problema recorrente, ou ser corrigido pelo usuário: escreva uma nota.
Modelo de quatro camadas
| Camada | Arquivo | Conteúdo | Quem escreve |
|---|---|---|---|
| Tier-0 | MEMORY.md | Roteiro: acordo de leitura/escrita, lista de packs, últimas 12 notas; com orçamento de bytes (padrão 12000) | mem build |
| Tier-1 | packs/<id>.md | Uma página por domínio, cada nota com uma linha de description + caminho | mem build |
| Tier-2 | catalog.tsv | Cada nota em uma linha: pack date type name title bytes gist | mem build |
| Tier-3 | notes/*.md | Texto original, com YAML front-matter | mem add cria o arquivo, você preenche o conteúdo |
Regra de classificação em $MEM_HOME/.memorypack/packs.json: se o front-matter tiver metadata.pack com um id válido, use-o; caso contrário, pontue por palavras-chave (strong +3, keywords +1), pontuação zero vai para misc.
Caminho de leitura (em ordem, pare quando suficiente)
- Leia o
MEMORY.mdcompleto (é pequeno, feito para ser lido inteiro). - Encontre o domínio pela seção "Quando ler" →
mem pack <id>leia a página desse domínio. - Para localizar itens específicos →
mem find <palavra-chave> [--pack <id>] [--limit N], retorna apenas as linhas do catálogo. - Para apenas 1-3 itens encontrados →
mem show <name>leia o texto original.
Quando a memória conflitar com evidências atuais (código, logs, saída de comandos), prevaleça a evidência e informe ao usuário qual memória está desatualizada.
Caminho de escrita (apenas este)
mem add <slug> --type project|feedback|reference [--pack <id>] [--title "Título"]
# Abra o caminho impresso, preencha uma linha de description + FATO / Decisão / Armadilha / Relacionado
mem build
descriptioné o único conteúdo que aparece nas três camadas superiores. Escreva como "O que é isso + Quando usar" em uma frase.- Para alterar uma nota existente: edite diretamente o arquivo em
notes/, depois executemem build. - Após escrever, execute
mem doctorpara verificar orçamento, links quebrados, falta de description.
Proibições
- Não edite manualmente
MEMORY.md,packs/*,catalog.tsv: são artefatos gerados e serão sobrescritos no próximo build. - Não leia
notes/em massa (cat notes/*,lsseguido de leitura nota por nota, grep no texto completo do diretório): usemem find. - Não exclua notas, a menos que o usuário explicitamente solicite; se desatualizada, marque no texto original e atualize a description.
- Não escreva secrets, tokens, senhas, chaves privadas ou informações pessoais identificáveis na nota.
- Não crie um segundo banco de memória; para ferramentas antigas, use symlinks apontando para
$MEM_HOME.
Referência
- Manutenção diária:
prompts/maintain.md - Revisão pós-sessão e construção proativa:
prompts/proactive-build.md - Bloco de regras que pode ser colado em
AGENTS.md/CLAUDE.md:prompts/agents-snippet.md - Exemplos de hooks:
prompts/hooks/