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.

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
StaleouWrongderruba 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.
# 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
Sempre ligado
Ler mantém a página viva
Resultados de busca, abrir uma página, chegar nela por um link e o
memory_explorecontam como leitura. Leituras só aumentam a pontuação.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.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.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.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.
Roda com memory_lint
Sinalizar prováveis contradições
O
memory_lintreporta 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.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 obelief_authority_weightacima 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.

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.
# 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-pagetraz 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_querycomanswer: truedevolve 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, deminimalamax, define o orçamento de tokens das respostas e domemory_explore.Páginas fixadas primeiro
pin_firstcoloca 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_pagecominclude_relatedpercorre links e backlinks até três saltos de distância.Versões antigas sob demanda
include_supersededinclui na busca as versões substituídas, cada uma com seu rótulo.Qual projeto respondeu
memory_statusinforma o workspace e o projeto que resolveu, e como chegou neles.
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.