ai-memory
A memória que o seu agente não tem
O seu agente de programação já toma notas. Elas vivem numa máquina só, pertencem àquele agente só e somem no instante em que você troca de ferramenta. O ai-memory é o que fica do outro lado desse muro: uma memória compartilhada que mais de vinte harnesses — Claude Code, Codex, Cursor, Gemini CLI, OpenCode e outros — leem e escrevem.
Saia do Claude Code no meio da tarefa, abra o Codex na mesma pasta e o próximo agente recebe um handoff de verdade: onde você parou, o que já foi tentado e por que falhou, o que continua em aberto. É um protocolo tipado, reivindicado uma única vez — não um bilhete que você torce para o próximo modelo ler.
O que o torna diferente
Acompanha você entre agentes
Mais de vinte harnesses alimentam uma memória só. O handoff tem dono, tem tipo e é reivindicado uma vez — dois agentes não pegam o mesmo bastão.
Acompanha você entre máquinas
A memória mora num servidor que é seu — o mesmo notebook, uma máquina no homelab, onde você quiser. O projeto que você deixou no desktop é o projeto que você retoma no notebook.
A sua memória é markdown puro
A fonte da verdade é um wiki versionado em git, de arquivos .md comuns. Dá para usar grep, abrir no Obsidian, editar na mão. O banco é um índice derivado, que se reconstrói a partir dos arquivos.
Registra o trabalho, não uma cerimônia
Hooks de ciclo de vida capturam o que de fato aconteceu — prompts, chamadas de ferramenta, início e fim de sessão — sanitizados numa fronteira de privacidade tipada antes de qualquer gravação. Não existe um "lembre disso" para dizer.
O caminho padrão não gasta token
Captura, busca e handoff funcionam sem nenhuma chave de API. As passadas com LLM — consolidação, auto-improve — são a parte opcional, não o preço de entrada.
Funciona para um time
Aponte todo mundo para um servidor e o que as sessões de uma pessoa aprenderam, os agentes de todo mundo conseguem recuperar. Autenticação multiusuário, atribuição por pessoa e log de auditoria já vêm juntos, não num plano pago.
ai-memory-web — veja o que os seus agentes lembram
O ai-memory guarda; o ai-memory-web mostra. É um painel Laravel somente-leitura sobre o mesmo índice SQLite, no mesmo host, respondendo a duas perguntas: o que os agentes lembraram e como aquilo foi coletado.
Ele nunca escreve, e isso é garantido no motor em vez de prometido num comentário: a conexão é fixada com PRAGMA query_only = 1, o handle cru é privado e um teste tenta uma escrita de verdade e exige que ela falhe. O ai-memory segue sendo o único escritor do próprio índice.
Nove telas sobre um banco só
Um dashboard com totais ao vivo e um histórico que sobrevive a um reset do ai-memory, os projetos e workspaces por onde a memória está espalhada, as páginas consolidadas do wiki e as versões delas, as sessões e os fatos que cada uma aprendeu, os handoffs entre agentes e busca full-text pelo índice FTS5 do próprio ai-memory.
Estas capturas são da integração AI-MEMORY em português no admin deste próprio site, de onde o aplicativo separado foi extraído. O ai-memory-web em si é em inglês e tem a navegação dele.
Os dois repositórios
O que mudou
Os lançamentos mais recentes, tirados do changelog do próprio projeto.
-
v2.2.0 atual
- A recuperação passa a se explicar: uma página que apareceu pelo grafo de links agora diz por qual aresta tipada ela chegou — causes, fixes ou contradicts — então "por que isto voltou" tem resposta.
- Pergunta sobre um momento no passado ganha um segundo caminho. Consultar com uma data agora busca nas versões de página que estavam vivas naquele momento, e não só na linha do tempo de entidades, então "em qual banco a gente estava durante a queda" encontra páginas que não citam entidade nenhuma.
- Dois sinais de ranqueamento opcionais, os dois desligados por padrão para que um índice sem configuração ranqueie exatamente como antes. Medidos num conjunto de 138 consultas sobre um wiki de produção de dois anos, o par leva o hit@1 de 0,61 para 0,75.
-
v2.1.0
- Cadeias de fallback de provedor: uma falha transitória — 429, 5xx, timeout — passa para o próximo provedor da sua lista, levando a mesma requisição e o mesmo schema. Um erro determinístico continua parando na hora, como já parava com um provedor só.
- Um bootstrap interrompido pode ser retomado a partir do progresso gravado por bloco, em vez de pagar de novo por cada chamada ao LLM.
- O OpenCode 2.0 beta vira cliente de primeira classe, e uma sessão do Codex que termina passa a receber o mesmo resumo automático e o mesmo handoff entre agentes que o Claude Code já tinha.
-
v2.0.3
- A instalação a partir do fonte usa o lockfile versionado, então duas pessoas instalando a mesma tag recebem as mesmas dependências, e não o que resolveu naquele dia.
- O status informa o espaço livre do diretório de dados. Um operador cujo arquivo de segurança deixou 77 MB livres viu o índice falhar ao estender o write-ahead log oito minutos depois, em silêncio, por horas.
-
v2.0.2
- Links relativos dentro do wiki deixam de dar 404 na visão web, e um caminho de diretório lista as páginas abaixo dele em vez de falhar.
- Uma página cujo título gravado estava vazio volta a ser lida com o título do próprio cabeçalho, em vez de sumir atrás de um alerta falso de "várias páginas com o mesmo título".
-
v2.0.0
- Um agente launchd para macOS, para o servidor continuar rodando depois que o terminal que o iniciou fecha. Até então fechar o terminal parava a entrega dos hooks sem nada avisar.
- Embeddings locais, sem chave de API e sem servidor externo: um modelo que roda no próprio processo, baixado uma vez, cujos vetores convivem com os de qualquer provedor.
- O status conta mais da verdade — estado da migração, embeddings gravados por provedor e modelo, contagem de arestas tipadas e um medidor de fila que revela um escritor travado.