Verificando acesso...

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