Criando memórias para agentes de IA

Se você usa IA para programar todos os dias, já sentiu isso: fecha a sessão, abre de novo, e parece que o agente "esqueceu" tudo.

Você precisa repetir contexto, decisões e até erros que já tinham sido resolvidos. Isso cansa, toma tempo e aumenta custo.

Nos últimos meses, testei algumas abordagens e cheguei num modelo simples de entender.

Uma delas foi o ai-memory, do Akita. Não adotei o projeto exatamente como está, mas ele me deu um insight importante: tratar memória de IA como parte do fluxo de trabalho, e não como improviso.

Com isso em mente, cheguei num modelo simples de entender:

  • uma memória humana, em Markdown, versionada no Git;
  • uma memória operacional, para o agente recuperar contexto rápido.

Hoje uso essas duas camadas juntas.

Camada 1: memória para humanos (Markdown)

A base continua sendo meu vault em Markdown, organizado com zk.

É ali que registro:

  • decisões de arquitetura;
  • descobertas técnicas;
  • logs de sessão.

Essa parte é ótima para leitura humana, revisão por diff e histórico no Git.

Camada 2: memória para o agente (Engram)

Para continuidade entre sessões do agente, adotei o Engram.

Na prática, ele guarda memórias estruturadas (decisões, descobertas, resumos de sessão) e permite recuperar isso com ferramentas simples de busca e contexto.

O ponto que destravou meu uso

Ao validar o setup, apareceu no Pi uma linha com 🧠 unknown no status. Achei que era problema de instalação.

Não era.

Pelos testes e logs, unknown significava projeto ambíguo: eu estava iniciando a sessão em diretório pai com vários repositórios.

A correção foi definir explicitamente o projeto no diretório pai com .engram/config.json.

Exemplo:

  • ~/work/empresa-a/.engram/config.json -> empresa-a-platform
  • ~/work/empresa-b/.engram/config.json -> empresa-b-platform

Depois disso, a recuperação de contexto ficou bem mais estável.

O modelo que ficou bom para mim

Hoje sigo esta regra:

  • Engram: memória operacional do agente (curto/médio prazo, retomada de contexto).
  • Vault Markdown: memória canônica do time (longo prazo, auditável no Git).

Ou seja: não substituí o vault. Eu complementei.

Resultado prático

Menos repetição de contexto, menos atrito para retomar tarefas e mais clareza sobre o que vai para memória de máquina vs memória de equipe.

Se eu tivesse que resumir em uma frase:

IA com memória funciona melhor quando você separa o que é para o agente lembrar rápido do que é para pessoas manterem como histórico oficial.

Se você trabalha em múltiplos repositórios no mesmo diretório pai, comece por esse detalhe do project_name no Engram. Foi a mudança simples que mais melhorou meu dia a dia.