Pular para o conteúdo
Menu

Produto

Soluções

Integrações

Desenvolvedores

Idioma

Produto

Como a memória envelhece

Um projeto acumula páginas de sessão por meses, e a maioria delas deixa de ser útil. O ai-memory dá uma pontuação a cada uma, mantém as que você ainda lê e pode encolher ou mesclar o resto. O caminho padrão não chama nenhum LLM, e todo recurso que reescreve página fica desligado até você ligar.

O que envelhece e o que fica

Só uma das quatro camadas de memória decai. Páginas fixadas ficam de fora em todas elas.

  • De trabalho

    Anotações da sessão em andamento. Acabam junto com ela.

  • Episódica

    Uma página por sessão. É esta a camada que envelhece: uma página que ninguém lê esfria em poucos meses.

  • Semântica

    Decisões, conceitos e gotchas. Não decaem.

  • Procedural

    Regras, procedimentos e runbooks. Não decaem.

O caminho sem LLM

Uma varredura agendada pontua toda página episódica que não está fixada. A pontuação cai com a idade e sobe cada vez que a página é lida.

Diagrama: ler uma página reforça a pontuação de retenção dela. O forget sweep verifica se a página está fria. Uma página fria é descartada por padrão ou, quando habilitado, compactada ou mesclada com suas quase duplicatas em uma única sobrevivente. Páginas compactadas e mescladas podem ser restauradas a partir do histórico git.
Linha contínua: o que acontece por padrão. Linhas tracejadas: o que você pode ligar. Uma página compactada ou mesclada volta com restore-page. Uma página descartada não volta.

A pontuação de retenção

  • Com os valores padrão, uma página perde metade da pontuação a cada 35 dias, mais ou menos. Abaixo de 0,20 ela conta como fria.
  • Cada leitura soma na pontuação, e o efeito das leituras antigas também vai sumindo.
  • Um feedback Stale ou Wrong derruba a página para a saliência mais baixa.
  • A pontuação decide o que a varredura faz. Ela nunca muda o ranking da busca.
config do servidor
# As três são opcionais. Sem elas, as páginas frias são descartadas em uma curva só, compartilhada.
[decay]
compact_cold_episodic = true
dedup_cold_clusters = true

[decay.half_life_days]
working = 7
episodic = 365
  1. Sempre ligado

    Ler mantém a página viva

    Resultados de busca, abrir uma página, chegar nela por um link e o memory_explore contam como leitura. Leituras só aumentam a pontuação.

  2. Desligado por padrão

    Uma meia-vida por camada

    [decay.half_life_days] define a velocidade com que cada camada esfria, por exemplo uma vida curta para rascunhos e uma longa para o histórico de sessões. Sem ele, as pontuações ficam exatamente como eram.

  3. Desligado por padrão

    Compactar uma página fria

    Com compact_cold_episodic, uma página fria mantém o abstract, o resumo do primeiro parágrafo e os tokens que vale a pena guardar (caminhos de arquivo, URLs, trechos de código, códigos de erro e identificadores) e perde a prosa. Sem ele, a página é descartada.

  4. Desligado por padrão

    Mesclar quase duplicatas

    Com dedup_cold_clusters, páginas frias que dizem quase a mesma coisa são agrupadas em clusters pelos embeddings. A de maior pontuação sobrevive e absorve os tokens preservados das outras. As outras são substituídas e apontam para ela.

  5. Desligado por padrão

    Pular sessões vazias

    Um filtro de entropia tira da passada de experiência as páginas de sessão quase vazias ou muito repetitivas, antes de qualquer prompt de LLM ser montado.

  6. Roda com memory_lint

    Sinalizar prováveis contradições

    O memory_lint reporta pares de páginas de conhecimento que cobrem o mesmo assunto sem serem duplicatas, e diz qual é a mais nova. O relatório é só um aviso e não edita página nenhuma.

  7. Sempre ligado

    Uma pontuação de confiança por página

    Cada página recebe uma confiança entre 0 e 0,95, calculada a partir de quantas sessões distintas a sustentam, de quão recente é a última e de quantas páginas a contradizem. Ela aparece na saída do explain. Só afeta o ranking se você subir o belief_authority_weight acima de 0.

A passada de sonho

O dedup preserva os fatos de um cluster. A passada de sonho entrega o mesmo cluster ao seu LLM, que o reescreve como uma página só, coerente. Ela roda enquanto você está fora e para quando você volta.

Diagrama: depois de ligada, a passada de sonho espera cinco minutos de ociosidade, pega os clusters de páginas frias começando pelo mais inédito e faz o LLM reescrever cada cluster em uma única página mesclada. As páginas de origem são substituídas, qualquer atividade cancela a execução e tudo fica no histórico git.
O agendador avalia uma execução a cada hora e precisa de cinco minutos de silêncio para começar. Cada execução trata no máximo oito clusters.
  • Ela precisa de três coisas

    [dream] enabled = true, um provedor de LLM e um embedder. Sem provedor, o dedup sem LLM continua funcionando como antes.

  • Ela espera você sair

    Uma execução começa depois de 300 segundos sem atividade de nenhum cliente. Quando você volta, ela cancela no próximo cluster.

  • O cluster mais inédito vai primeiro

    Os clusters mais distantes de tudo o que a wiki já diz são tratados primeiro. A ordenação e o gatilho por ociosidade seguem o Dreamer do Honcho.

  • As fontes são substituídas

    A página de maior pontuação é reescrita. Cada página mesclada vira um stub que aponta para ela, e o texto original fica na cadeia de versões e no git.

  • Toda mesclagem cita suas fontes

    Linhas de evidência registram quais páginas alimentaram cada mesclagem, então dá para rastrear um detalhe inventado. A saída é JSON validado contra um schema, e cada execução deixa um relatório.

config do servidor
# Também precisa de um provedor de LLM e de um embedder.
[dream]
enabled = true
idle_window_secs = 300
max_clusters_per_run = 8

O que dá para desfazer, e o que não dá

A compactação, o dedup e a passada de sonho reescrevem através da wiki, então cada mudança é uma versão nova e um commit no git.

  • Reescritas são reversíveis

    ai-memory restore-page traz de volta a página inteira a partir do histórico git da wiki.

  • Atualizar não muda nada

    A compactação, o dedup e a passada de sonho vêm desligados por padrão. Uma atualização não muda nenhuma pontuação nem descarta nada, e o servidor arquiva o diretório de dados antes de migrar.

  • Fixe o que tem que ficar

    Uma página fixada nunca entra na varredura. Páginas semânticas e procedurais não decaem.

Mais formas de consultar

Cada uma é um argumento opcional em uma ferramenta que já existe.

  • Respostas com citações

    memory_query com answer: true devolve uma resposta curta e os caminhos das páginas de onde ela saiu. Precisa de um provedor de LLM e segue o endpoint dialético do Honcho. A qualidade ainda não foi avaliada, então abra as páginas citadas.

  • Níveis de raciocínio

    Um argumento reasoning, de minimal a max, define o orçamento de tokens das respostas e do memory_explore.

  • Páginas fixadas primeiro

    pin_first coloca até dez páginas fixadas na frente dos resultados da busca, e o briefing da sessão agora lista essas páginas.

  • Páginas relacionadas

    memory_read_page com include_related percorre links e backlinks até três saltos de distância.

  • Versões antigas sob demanda

    include_superseded inclui na busca as versões substituídas, cada uma com seu rótulo.

  • Qual projeto respondeu

    memory_status informa o workspace e o projeto que resolveu, e como chegou neles.

Leia o changelog completo

Perguntas e respostas

O ai-memory apaga memórias antigas?

Só as páginas episódicas de sessão envelhecem. Por padrão, uma página fria é descartada e removida de vez depois de 180 dias. Em vez disso, você pode mandar compactar ou mesclar as páginas frias, e as duas operações podem ser restauradas. Páginas fixadas, semânticas e procedurais são mantidas.

O envelhecimento da memória precisa de um LLM?

Não. A pontuação, as meias-vidas por camada, a compactação, o dedup, os avisos de contradição e a pontuação de confiança não usam LLM. O dedup e os avisos de contradição leem embeddings, que o embedder local padrão já gera. Só a passada de sonho chama um LLM, e ela vem desligada por padrão.

O que é a passada de sonho?

Um job opt-in que roda em background. Depois de cinco minutos de ociosidade, ele pega clusters de páginas frias quase duplicadas e faz o seu LLM reescrever cada cluster em uma página só. As fontes são substituídas, e a execução para quando você volta.

Uma atualização vai mudar a memória que eu já tenho?

Não. A compactação, o dedup e a passada de sonho vêm desligados por padrão, então uma atualização não muda nenhuma pontuação nem descarta nada. O servidor arquiva o diretório de dados antes de migrar.

Esses recursos melhoram as pontuações de recuperação?

Ninguém mediu isso ainda. O projeto trata esses recursos como entregues, opt-in e sem comprovação até o harness de avaliação mostrar um ganho.

Dê memória aos seus agentes hoje.

Gratuito e open source sob a licença MIT. Sem conta e sem chave de API.