Explicação 1 · Memória

Como nossos agentes de IA lembram

A versão curta. Um agente de IA esquece tudo quando a conversa termina. Por isso a gente dá a ele uma pasta de notas curtas, um fato por nota, e um índice de uma página que ele lê no início de toda sessão.

Quando ele aprende algo que vale guardar, como "essa pessoa gosta de respostas curtas", escreve uma nota. Na próxima sessão, já sabe.

O difícil é manter a pasta confiável. As notas ficam velhas, se repetem ou acabam erradas. Quase toda esta página é sobre isso.

Como a memória é organizada Um arquivo de índice curto é sempre carregado e aponta para três notas de um fato só. O agente abre uma nota apenas quando precisa. Novas lições atualizam uma nota ou adicionam outra. Índice, sempre carregado cerca de 200 linhas, uma linha por nota Um fatotype: feedback Um fatotype: project Um fatotype: reference as notas apontam umas para as outras com [[name]] Abrir uma nota só quando precisar Aprendeu algo: atualiza ou adiciona
Notas pequenas, um índice pequeno. O índice é a única coisa que com certeza será lida.

Indo mais fundo

O formato de uma nota

Cada memória é um arquivo markdown próprio, com um pequeno bloco de frontmatter. O type é um destes quatro: user (quem é a pessoa e como ela trabalha), feedback (uma correção ou algo que funcionou), project (estado de um trabalho em andamento), reference (onde algo fica). O corpo diz qual é o fato, depois Por quê e Como aplicar. O porquê é o que mais importa. Uma regra sem o motivo acaba aplicada nos casos errados. Estes exemplos são inventados:

---
name: prefers-short-replies
description: Keep replies to a few sentences unless asked
type: feedback
---
Keep replies short and lead with the answer.

**Why:** Long answers got skimmed and the one
question inside them was missed.

**How to apply:** Put detail behind a link. For
tone, see [[plain-words-over-polish]].

Os links cruzados usam [[name]], então uma nota pode apontar para as notas de que depende ou que contradiz.

O índice é a parte que importa

Um arquivo, MEMORY.md, é carregado em toda sessão, e esse carregamento tem um limite rígido. O harness de agente que usamos lê só as primeiras 200 linhas ou cerca de 25 KB e descarta o resto sem avisar. Tudo que passa do corte é como se não existisse. Por isso o índice fica curto de propósito: uma linha por memória, um link e algumas palavras sobre por que ela importa, com as regras que nunca podem ser perdidas logo no começo. Miramos um pouco abaixo do limite para que algumas adições não empurrem o final para fora.

Um segundo arquivo, um catálogo completo, lista todas as notas e não é carregado automaticamente. Ele existe para que nenhuma nota fique órfã, sem nada apontando para ela.

O que não guardar

Lembrado não quer dizer atual

Uma memória é uma foto do dia em que foi escrita. Antes de agir com base em uma que cita um arquivo, um comando ou um estado do mundo, o agente confere se ainda é verdade. Uma nota dizendo "a configuração fica em X" é uma dica para ir olhar, não um fato para construir em cima.

As ferramentas que mantêm tudo saudável

O verificador. Um pequeno comando checa dois tipos de falha: o índice crescendo além do limite de carga e notas para as quais nenhum índice aponta. Ele pode reconstruir o catálogo completo a partir do frontmatter e sai com código diferente de zero em qualquer problema, então pode ficar em um hook ou em uma tarefa noturna.

A passada de consolidação. Com o tempo, uma pilha de notas apodrece de jeitos previsíveis. Um comando de consolidação encontra isso em etapas baratas:

  1. Ler cada nota.
  2. Achar referências mortas: caminhos, comandos e módulos que não existem mais, conferidos no sistema de arquivos real. Sem modelo envolvido, e ele pula o que não consegue resolver em vez de adivinhar.
  3. Indicar quase duplicatas com um índice simples de similaridade lexical. Ele só precisa de boa cobertura, porque a próxima etapa lê o texto de verdade.
  4. Indicar notas de incidentes isolados que nunca se generalizaram.
  5. Pedir a um modelo que leia cada indicação por inteiro e decida. "Não tenho certeza" é uma resposta permitida e deixa o par como está.

O comando é somente leitura. Ele escreve uma proposta para revisão e não muda nenhuma memória. Uma etapa de aplicação separada faz o trabalho, e é cautelosa por projeto. Roda em simulação por padrão, só executa uma fusão ou aposentadoria marcada por uma pessoa, move as notas aposentadas para uma pasta de espera em vez de apagá-las, tira um snapshot antes e pode desfazer a execução inteira. A etapa do modelo nunca roda a partir de uma tarefa agendada, só com uma pessoa acompanhando.

Há também uma checagem antes de escrever: ela lista quase duplicatas com a idade e a origem de cada uma, e recusa uma correspondência forte. É assim que "atualize em vez de duplicar" é aplicado em vez de apenas desejado.

O que dava errado antes de termos isso

Dois posts abaixo contam as histórias reais. Um é sobre um índice que perdeu em silêncio tudo depois da linha 200. O outro é sobre uma passada que não achou nenhuma duplicata porque as notas se contradiziam em vez de se repetirem.

Confira por conta própria

Copie os objetivos desta página para um prompt e veja como eles se encaixam no seu jeito de trabalhar e se alguma dessas ideias pode ajudar você.

Mostrar promptOcultar prompt
Veja como as ideias desta página se encaixam no meu jeito de usar IA.

Página: Explicação 1: como nossos agentes de IA lembram
Link: https://dxdev.com/pt/technical/explainers/memory/

Ideias:
1. Manter a memória como um fato por nota curta, não um arquivo longo
2. Manter um índice curto que carrega em toda sessão e fica abaixo do limite de carga
3. Salvar o motivo por trás de uma regra, não só a regra
4. Atualizar uma nota existente em vez de adicionar uma duplicata
5. Tratar uma nota lembrada como uma dica e conferir se ainda é verdade antes de agir
6. Rodar um verificador que encontra um índice longo demais e notas para as quais nada aponta

Compare cada ideia com o jeito que eu uso IA hoje. Se você conseguir ver meus arquivos ou configurações, olhe lá. Se não, me faça até 3 perguntas curtas primeiro e depois continue. Nunca presuma o que eu já faço: se não der para saber, use 🔍.

Só leitura. Não mude nada, não instale nada, não envie nada.

Responda com uma linha por ideia, na ordem: exatamente um ícone, a ideia em poucas palavras, dois pontos e a sua resposta. Sem números. Não repita o rótulo.
✅ Já faço isso
💡 Ajudaria você (acrescente um próximo passo concreto)
🔍 Vale olhar de perto (acrescente o que conferir)
➖ Não se aplica a você (acrescente um motivo curto)

Depois acrescente "Comece por aqui:" com o melhor próximo passo e termine com um link de volta para a página.

Seja simpático, breve e use palavras simples. Sem jargão, sem exagero.