// conceitos · 03

Memória e persona

Uma camada de arquivos sempre ativa + um backend externo por vez, ambos seguindo um ciclo de vida comum. O que é frequente e durável mora nos arquivos; o resto é re…

Camada de arquivos (sempre injetada)

Estes .md entram no system prompt a cada tarefa, nesta ordem de prioridade, cada um com um limite de caracteres configurável:

arquivopapellimite
SOUL.mdvalores, princípios (slot #1)6000
VOICE.mdtom, estilo, léxico6000
PERSONA.mdself-model: traços, expertise6000
AGENTS.mdcontexto do projeto4000
USER.mdmodelo do usuário4000
MEMORY.mdfatos duráveis4000

Ciclo de vida do backend

Todo backend implementa o mesmo fluxo automático, espelhando o do Hermes:

  1. inject — contexto no system prompt.
  2. prefetch — antes de cada turno.
  3. sync — grava o turno depois da resposta.
  4. extract — destila fatos no fim da sessão.
  5. mirror — espelha as escritas do built-in.
  6. tools — busca/gestão próprias do backend.

Backends

backendcomo funciona
sqlite-fts5default híbrido: BM25 (insensível a acento) + recência + importância · embeddings opcionais
honchomodela usuário e agente ao longo do tempo · remoto via Tailscale
holographicHRR/VSA em numpy local (dim 1024) · sem servidor de embedding

Busca híbrida e política de escrita

O recall no backend default não é só full-text. Cada item é pontuado por três sinais combinados: relevância léxica (BM25, insensível a acento), recência e importância (a categoria do fato). Quando o embedder está disponível, a similaridade semântica entra na mistura; quando não está, a busca degrada para BM25 puro sem mudar a interface. Toda memória injetada no prompt vem com uma citação [categoria · origem · confiança], então o modelo sabe de onde o fato veio.

Na escrita, uma política classifica cada fato (fato · preferência · decisão · skill · erro) e barra o efêmero/trivial antes de persistir — é o que evita o acúmulo de lixo que apodrece o contexto (context-rot). O okami memory add força a escrita (você é explícito), mas o fato ainda passa pela classificação.

O threshold é por modelo: comprime em ~72% da janela. Antes de comprimir, os fatos duráveis são promovidos para a memória de longo prazo (e voltam via recall). Compaction = promover + apontar, nunca esquecer — mesmo num modelo de 32K a conversa não perde contexto.

Identidade que evolui

Um observador lê cada fala sua e deduz traços de estilo (registro técnico, apelido, sarcasmo, pedidos explícitos). VOICE e PERSONA evoluem sozinhos quando o padrão cruza o limiar (min_count: explícito=1, inferido=2+). SOUL fica protegido como âncora anti-drift. Tudo com changelog append-only e /undo.

Abrir esta página nos docs interativos