Memória de curto e longo prazo em agentes: o que vale a pena guardar?
Decidir que um agente vai ter memória é a parte fácil. A parte difícil é decidir o que, exatamente, merece ser guardado, porque guardar tudo tem um custo que raramente aparece até a base ficar grande demais para ser útil. Aqui o ponto de partida é simples: memória é o que sobrevive além de uma sessão específica, diferente de contexto, que é só o que está ativo numa chamada. A pergunta que interessa de verdade é o que, dentro do que poderia sobreviver, realmente compensa guardar.
Memória de trabalho: o que só precisa durar a sessão
Memória de curto prazo, muitas vezes chamada de working memory ou session memory, é o que fica disponível durante uma sessão ou conversa: o que foi dito há poucas mensagens, um resultado intermediário de uma ferramenta, uma decisão tomada há pouco que ainda é relevante para o próximo passo. Esse tipo de memória não precisa sobreviver ao fim da sessão. Ela existe para dar coerência à interação enquanto ela dura, normalmente mantida como parte do histórico reenviado a cada chamada, sem exigir armazenamento persistente nenhum.
Memória de longo prazo: o que sobrevive além da sessão
Memória de longo prazo implica uma decisão deliberada: algo que aconteceu numa sessão é considerado relevante o suficiente para persistir além dela, ser recuperado numa sessão futura completamente diferente. Isso exige armazenamento externo (banco de dados, índice vetorial, arquivo estruturado) e, mais importante, um critério explícito sobre o que entra ali.
Três formas comuns de organizar isso
Sistemas de memória em agentes costumam se dividir, na prática, em estruturas com propósitos diferentes:
- memória de sessão: o histórico bruto da conversa atual, geralmente truncado ou resumido conforme cresce;
- memória de entidade: fatos associados a uma entidade específica (uma pessoa, um projeto, um cliente), atualizados conforme novas informações aparecem sobre aquela entidade;
- memória vetorial: trechos de conversas ou documentos anteriores, indexados por embedding, recuperados por similaridade semântica quando parecem relevantes para a pergunta atual.
Cada uma resolve um problema diferente. Memória de entidade responde bem “o que eu já sei sobre X”. Memória vetorial responde melhor “o que já foi dito que se parece com isso aqui”, sem exigir que a entidade relevante tenha sido nomeada explicitamente na pergunta atual.
O que realmente vale a pena guardar
A pergunta “o que guardar” tem uma resposta mais estreita do que parece. Nem toda frase de uma conversa merece virar memória permanente. Preferência declarada de um usuário, fato estável sobre uma entidade, decisão que vai ser referenciada de novo depois: esse tipo de informação tem valor guardado. Detalhe circunstancial de uma única sessão, pensamento intermediário que só fazia sentido naquele momento específico, ou informação que já está disponível em outro sistema (e pode ser buscada de novo quando precisar) normalmente não precisa virar memória persistente só porque apareceu numa conversa.
Guardar tudo parece mais seguro, mas tem custo real: mais dado para buscar, mais ruído competindo por relevância na hora da recuperação, e mais chance de um fato desatualizado (uma preferência que mudou, uma informação que deixou de ser verdade) continuar sendo trazido de volta como se ainda fosse válido.
Sumarização como alternativa a guardar tudo bruto
Uma estratégia comum para reduzir esse volume é sumarizar em vez de armazenar a conversa inteira: em vez de persistir cada mensagem trocada, um processo separado (às vezes o próprio modelo, numa chamada dedicada) condensa o que aconteceu numa sessão em alguns fatos relevantes, descartando o resto. Isso economiza espaço de armazenamento e, na recuperação, contexto: um resumo de três frases compete por muito menos atenção do que o histórico bruto de uma conversa inteira reinserido sem filtro.
Memória não é sinônimo de guardar mais
O instinto de guardar tudo “por garantia” tende a produzir um sistema de memória caro de manter e ruidoso de consultar, sem necessariamente deixar o agente mais útil. A pergunta que vale a pena fazer antes de persistir qualquer coisa não é “isso pode ser útil algum dia”. É “existe uma razão concreta para esperar que isso precise ser recuperado depois desta sessão terminar”. Quando a resposta é vaga, provavelmente não vale o custo de guardar.