MODULO 5.5

๐Ÿ“‰ Decay com salience scoring

Curva de Ebbinghaus implementada. Memorias velhas compressam automaticamente. Memorias frequentes resistem. Sistema se auto-cuida.

6
Topicos
35
Minutos
Avancado
Nivel
Lifecycle
Tipo
1

๐Ÿ“‰ Curva de Ebbinghaus aplicada

Ebbinghaus observou que memoria humana decai exponencial. Aplicamos mesma curva a memoria do Claude.

๐Ÿ“ Fases de compressao

TEMPO    | ESTADO             | EXEMPLO
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
Dia 0-7  | Full detail        | Paragrafo completo com
         |                    | contexto, razoes, links
         |                    |
Dia 8-30 | Summary (50%)      | Reducao para metade.
         |                    | Mantem fato + razao, corta
         |                    | historico de decisao
         |                    |
Dia 31-90| One-liner          | Uma frase. Fato essencial.
         |                    | Razao e contexto sumiram.
         |                    |
Dia 90+  | Archived           | Sai do knowledge/ ativo,
         |                    | vai pra archive/. Ainda
         |                    | pesquisavel, mas cold.

๐Ÿ’ก Calibre pela sua cadencia

Se voce trabalha com ciclo mensal, os thresholds podem ser mais longos. Se ciclo semanal, mais curtos. Modulo 5.5 tem presets.

2

โญ Salience: access_count resiste

Memoria valiosa nao some so por ser velha. Frequencia de acesso aumenta resistencia.

๐Ÿ“ Formula

Simples e efetiva:

  • โ€ขsalience = 1 + (access_count ร— 0.2)
  • โ€ขage_effective = age_days / salience
  • โ€ขMemoria de 30 dias, acessada 5x: salience = 2.0 โ†’ age_effective = 15 dias
  • โ€ขPermanece no estagio 'summary', nao vai para 'one-liner' ainda

๐Ÿ’ก Incremento barato

Cada vez que busca retorna uma memoria, UPDATE memories SET access_count = access_count + 1 WHERE id = ?. 3 linhas.

3

๐Ÿ› ๏ธ Script decay.py

Um script, rodando semanal, mantem o sistema saudavel.

๐Ÿ“ Execucao do decay.py

# Rodar semanal via cron
0 2 * * 1 python3 ~/.memory/scripts/decay.py ~/.memory/knowledge

# Ou via SessionEnd hook (menos agressivo)
# Roda mensalmente, so se ultima execucao foi ha >30 dias

# Output tipico:
$ python3 decay.py ~/.memory/knowledge
Modo: moderado (thresholds: summary=7 oneliner=30 archive=90)
  kept: 142        (ainda recente ou frequente)
  summary: 23      (passou de 7 dias, comprimido 50%)
  oneliner: 17     (passou de 30 dias, reduzido a 1 linha)
  archived: 8      (passou de 90 dias, movido para archive/)

Total: 190 memorias processadas em 340ms

๐Ÿ’ก Lab ja tem

labs/decay-py/decay.py tem implementacao completa com salience.

4

๐ŸŽš๏ธ 3 velocidades: conservador, moderado, agressivo

Calibre pela sua cadencia de trabalho. Nao um tamanho unico.

๐Ÿ“ Presets

CONSERVADOR (trabalhos de ciclo longo, pesquisa):
  summary โ† 14 dias
  oneliner โ† 60 dias
  archive โ† 180 dias

MODERADO (default, cobre maioria):
  summary โ† 7 dias
  oneliner โ† 30 dias
  archive โ† 90 dias

AGRESSIVO (dev solo iterando rapido):
  summary โ† 3 dias
  oneliner โ† 14 dias
  archive โ† 45 dias

Escolha por: duracao tipica do seu ciclo de trabalho.
Ciclo = tempo entre 'aprendi X' e 'nao preciso mais de X'.

๐Ÿ’ก Teste com seus dados

Rode uma vez em cada modo (dry-run). Veja quantas memorias cairiam. Escolha onde o volume faz sentido.

5

๐Ÿ—ƒ๏ธ Arquivamento vs delete

NUNCA delete. Storage e trivial. Recuperacao de decisao antiga e ouro.

๐Ÿ“ Estrutura de archive

~/.memory/
โ”œโ”€โ”€ knowledge/          (ativo, usado por busca)
โ”‚   โ”œโ”€โ”€ facts/
โ”‚   โ”œโ”€โ”€ decisions/
โ”‚   โ””โ”€โ”€ ...
โ””โ”€โ”€ archive/            (cold, ainda pesquisavel)
    โ”œโ”€โ”€ 2026-Q1/
    โ”‚   โ”œโ”€โ”€ facts/
    โ”‚   โ””โ”€โ”€ decisions/
    โ”œโ”€โ”€ 2026-Q2/
    โ””โ”€โ”€ ...

Busca normal: so em knowledge/.
Busca time-travel: "busque em archive/ tambem" โ€” raro, mas possivel.

git init em ~/.memory/ โ€” historia completa preservada.

โš ๏ธ Custo real de delete

Voce acha que nunca vai precisar daquela memoria. Tres meses depois, precisa. Impossivel recuperar. Arquive, nao delete.

6

๐Ÿ“Š Monitorando o decay

Script simples que mostra health do sistema. Rode mensalmente.

๐Ÿ“ health_check.py output

$ python3 health_check.py ~/.memory

Knowledge base health report
============================
Total memorias ativas:       247
Novas este mes:              34
Acessadas este mes:          89 (36%)

Por estagio de decay:
  full detail (0-7 dias):    45
  summary (8-30 dias):       112
  oneliner (31-90 dias):     90

Top 5 memorias frequentes (salience > 2.0):
  1. idempotency-webhook-pattern  (accessed 12x)
  2. postgres-jsonb-indexing      (accessed 9x)
  3. fastapi-async-gotchas        (accessed 8x)
  ...

Arquivadas este mes: 15
Em archive/ total:  412

Alertas:
  - 23 memorias nunca acessadas em >60 dias. Revisar?
  - Facts/ com 145 entries, maior categoria. Considerar split?

๐Ÿ’ก Report vale review

Leitura de 30 segundos revela padroes. Facts crescendo muito? Hora de dividir em sub-categorias.

๐Ÿ“ Resumo do Modulo

โœ“
Curva 1/7/30/90 โ€” fases de compressao definidas.
โœ“
Salience inverte decay โ€” access_count aumenta resistencia.
โœ“
Script decay.py semanal โ€” via cron ou SessionEnd.
โœ“
Nunca delete, sempre arquive โ€” custo storage trivial.

Proximo:

5.6 โ€” Promotion 3-strikes