Existe uma ilusão confortável em toda conversa com uma IA: a de que ela está lembrando. Você menciona algo no começo, ela retoma dez mensagens depois, e a impressão é de continuidade.
Não há memória nenhuma nisso. O modelo é uma função sem estado: recebe um texto, devolve outro, e esquece tudo. A continuidade que você percebe é reconstruída a cada mensagem por quem programou a aplicação, reenviando o histórico junto da nova pergunta.
Entender isso é o que separa um projeto que funciona de um que esbarra num limite invisível.
O problema que aparece rápido
A solução ingênua é mandar tudo: a cada mensagem, envia-se a conversa inteira. Funciona bem por um tempo, e depois encontra três paredes ao mesmo tempo.
A primeira é o limite de contexto. Toda conversa chega a um ponto em que não cabe mais. A segunda é o custo, que cresce a cada turno, porque você paga pelo histórico repetido em toda chamada. A terceira é a qualidade, e é a menos óbvia: contexto muito longo piora a resposta, porque a informação importante se dilui no meio de conversa irrelevante.
As quatro camadas de memória
Projetos maduros tratam memória como arquitetura, separada em camadas com propósitos diferentes.
1. Janela recente
As últimas mensagens, enviadas na íntegra. É o que garante que o agente entenda um pronome ou responda a um e o segundo caso?.
Aqui a regra é simples: guarde poucas, mas completas. Resumir as últimas mensagens quebra a coerência imediata, que é justamente o papel dessa camada.
2. Resumo progressivo
O que ficou para trás não é descartado, é comprimido. A cada tantas mensagens, um resumo é gerado e passa a representar aquele trecho.
O truque é resumir com propósito definido. Um resumo genérico perde exatamente o que importaria. Um resumo instruído a preservar decisões tomadas, preferências declaradas e pendências mantém o que tem valor e descarta o resto.
3. Fatos persistentes
Certas informações não deveriam depender da conversa. O nome da pessoa, a empresa, o plano contratado, uma restrição declarada uma vez.
Isso não é memória de conversa, é dado, e o lugar dele é um banco. Guardar como registro estruturado e injetar no início de cada interação é mais confiável e infinitamente mais barato do que esperar que sobreviva ao resumo.
Essa é a camada que produz a sensação de um sistema que conhece você, e é a mais fácil de implementar das quatro.
4. Memória de longo prazo buscável
Para histórico extenso, guarda-se cada trecho relevante com seu vetor e busca-se por semelhança quando a pergunta atual sugerir que algo antigo importa.
É a camada mais complexa e a menos necessária. Boa parte dos projetos vive muito bem com as três primeiras, e adotar a quarta cedo demais costuma adicionar complexidade sem retorno.
O que quase sempre é esquecido
Duas coisas.
A primeira é esquecer de propósito. Memória que só acumula acaba carregando informação desatualizada, e o agente passa a agir com base em algo que deixou de ser verdade. Preferências mudam, endereços mudam, decisões são revertidas. Todo fato persistente precisa de data e de um mecanismo de atualização.
A segunda é que memória é dado pessoal. Guardar o que o usuário disse significa armazenar informação que ele confiou à aplicação num contexto de conversa. Isso traz obrigações: dizer que existe, permitir consultar e permitir apagar.
Comece pela terceira camada
Se o seu projeto está começando, a ordem de implementação que dá mais resultado por esforço é: fatos persistentes primeiro, janela recente depois, resumo quando as conversas começarem a ficar longas, e busca vetorial só se o volume justificar.
A inversão dessa ordem é o erro comum. Muita gente monta busca vetorial sobre o histórico inteiro antes de simplesmente guardar o nome do cliente numa tabela, e o segundo resolve mais problema visível que o primeiro.
Para as camadas que envolvem banco e índice, o que pesa na infraestrutura é memória e velocidade de leitura. A StayCloud tem opções com NVMe que atendem bem esse perfil.



