Voltar as noticias
Desenvolvi um Sistema de Memória para Agentes e obtive 90,8% no LongMemEval
Agentic SEOAltaEN

Desenvolvi um Sistema de Memória para Agentes e obtive 90,8% no LongMemEval

Dev.to - MCP·13 de abril de 2026

Como a maioria dos usuários de agentes de IA como Claude Code, eu fiquei frustrado com o problema da memória do agente. Os modelos melhoraram extremamente e não perdem mais o foco em uma conversa longa como costumavam fazer, mas entre sessões a memória é bastante irregular, seja em uma conversa com um LLM onde ele recorda dados imperfeitos ou irrelevantes de chats anteriores, ou em uma nova sessão do Claude Code onde sinto que é o Dia da Marmota, integrando um novo funcionário que é inteligente e talentoso, mas não sabe nada sobre o meu mundo.

Comecei a investigar os vários sistemas de memória. Tentei arquivos markdown, cofres do Obsidian, algumas ferramentas de memória — todos eles se resumem a duas abordagens: similaridade de vetor plano ou arquivos de texto de fatos destilados de LLM. Nas categorias multi-sessão e temporal do LongMemEval, os armazenamentos vetoriais caem para os 60. Markdown se sai um pouco melhor nessas, mas perde 60% das perguntas do lado do assistente porque a destilação de LLM tende a favorecer as declarações do usuário. Funciona bem para "o que conversamos na semana passada?" mas desmorona no momento em que você precisa de um raciocínio real, como quando os fatos se contradizem, quando a resposta requer conectar informações de três conversas diferentes, ou quando o usuário pergunta "o que mudou desde janeiro?"

Então eu construí Memento, um sistema de memória de gráfico de conhecimento bitemporal para agentes de IA. Depois, eu o coloquei através do melhor benchmark de memória de longo prazo que consegui encontrar, LongMemEval. Esta é a história do que funcionou, do que não funcionou e do que aprendi ao longo do caminho.

O problema com a memória de armazenamento vetorial

A memória padrão de IA funciona assim: o usuário diz algo, você o incorpora, armazena e depois incorpora uma consulta para encontrar os vizinhos mais próximos e empurra os resultados para um prompt. Isso é busca de documentos, não memória.

Não tem conceito de entidades - "John" e "John Smith" podem ser dois pedaços diferentes. Não tem consciência do tempo - um fato de janeiro parece idêntico a um de ontem. E não tem como detectar quando novas informações contradizem informações antigas.

Eu queria uma memória que pudesse rastrear entidades, tempo e contradições.

O que Memento faz de diferente

Memento constrói um gráfico de conhecimento a partir de conversas. Quando você ingere texto, ele extrai entidades e suas propriedades - pessoas, organizações, projetos - e as resolve em relação ao que já sabe. "John", "John Smith" e "o VP de vendas" colapsam em um único nó usando correspondência em camadas: exata, difusa, fonética, depois similaridade de incorporação, e então um desempate de LLM.

Ele detecta contradições. Se o título de John era "VP de Vendas" e agora é "SVP de Vendas", isso é sinalizado. Ele rastreia o tempo bitemporalmente - quando um fato era verdadeiro no mundo e quando o sistema o aprendeu. E armazena texto literal como uma alternativa, para que erros de extração não signifiquem perda de informação. A conversa bruta está sempre lá via FTS5 e busca vetorial.

Quando você consulta, ele percorre o gráfico em vez de apenas buscar vetores. "O que eu devo saber antes da minha reunião com John?" encontra o nó de John, percorre suas relações com a Alpha Corp, encontra a aquisição pendente da Alpha Corp e monta um briefing - tudo dentro de um orçamento de tokens que você especifica.

   Agente / LLM
         │ (Consulta/Ingestão)
         ▼
  Motor de Recuperação  <───>  Pipeline de Ingestão
         │                     │
         ▼                     ▼
    Gráfico de Conhecimento Temporal (SQLite)
         │
         ├── Motor de Consolidação (decair, deduplicar, podar)
         ├── Alternativa Literal (FTS5 + busca vetorial)
         └── Camada de Privacidade (exportar, auditar, exclusão permanente)

Encontrando um benchmark

Eu queria avaliar contra exemplos reais. LongMemEval é um benchmark construído especificamente para memória conversacional de longo prazo - 500 perguntas em cinco categorias:

  • Recordação de sessão única - fatos declarados em uma conversa
  • Rastreamento de preferências - aplicando preferências reveladas em conversas passadas
  • Raciocínio multi-sessão - sintetizando informações espalhadas por várias conversas
  • Atualizações de conhecimento - retornando o valor mais recente quando os fatos mudam
  • Raciocínio temporal - entendendo quando os eventos aconteceram e sua ordem

Cada pergunta inclui sessões de palheiro e uma resposta de referência. Um juiz GPT-4o compara a saída do sistema com a referência. Todas as execuções usaram Claude Sonnet para extração e raciocínio; GPT-4o como juiz de avaliação, seguindo a metodologia do artigo. Cada pergunta também tem uma variante de abstenção onde a resposta correta é "não sei" - isso testa se o sistema alucina.

Eu executei contra a variante oráculo: sessões apenas com evidências, sem distrações, de 1 a 6 sessões por pergunta. Um teste limpo de se o sistema pode extrair e raciocinar sobre informações que definitivamente possui.

Primeiro contato - 91.0%

Eu acabei de tornar o Memento de código aberto e não tinha um suporte de benchmark ainda. Eu escrevi um, fiz um teste rápido de 5 perguntas (5/5, apenas checando a parte técnica), depois configurei a execução completa de 500 perguntas.

Mas antes dessa execução, eu já havia identificado duas lacunas.

A lacuna do timestamp. O Memento não tinha como saber quando uma conversa aconteceu. Para perguntas de raciocínio temporal como "qual aconteceu primeiro, X ou Y?" o sistema estava adivinhando. Correção: canalizar datas de sessão na ingestão como timestamps e adicionar cabeçalhos [Data da conversa: ...] ao texto.

A lacuna da busca literal. O Memento estava ingerindo cada sessão como um grande bloco de texto. Se um usuário perguntasse sobre uma frase específica, o FTS5 estava buscando em todas as sessões concatenadas em vez de turnos individuais. Correção: armazenar cada turno individualmente no armazenamento literal, enquanto ainda ingere sessões completas para extração de entidades.

A primeira execução completa: 455/500 - 91.0% no geral, 92.4% em média por tarefa.

Categoria Precisão
Single-session (assistente) 100.0%
Single-session (usuário) 94.3%
Single-session (preferência) 93.3%
Raciocínio temporal 91.0%
Atualização de conhecimento 91.0%
Multi-sessão 85.0%

A single-session foi quase perfeita. Multi-sessão com 85.0% foi o ponto fraco.

A armadilha da recuperação - 89.6%

A movimentação óbvia: multi-sessão é fraca, então dê mais contexto. Eu ampliei a janela de recuperação - top_k de 10 para 20, limite de conversa de 5 para 10, orçamento de tokens de 4K para 8K. Também adicionei algumas melhorias de prompt, como: "não faça perguntas de esclarecimento para consultas de preferência" e "enumere antes de contar."

Execução completa de 500 perguntas: 89.6% no geral, 91.0% em média por tarefa. Uma regressão. A recuperação mais ampla prejudicou a precisão de single-session em 4–6 pontos percentuais devido à diluição do contexto, enquanto ajudou multi-sessão em +0.7%. Quando você despeja 8K tokens de contexto vagamente relacionado em um prompt, o modelo começa a duvidar de si mesmo em perguntas que anteriormente havia respondido corretamente.

Mais recuperação não é melhor recuperação.

Eu revertei a ampliação da recuperação, mas mantive as melhorias de prompt e executei novamente: 91.2% no geral, 92.4% em média por tarefa. As mudanças de prompt sozinhas estavam fazendo um trabalho real.

Retornos decrescentes - 86.0% → 90.8%

Em seguida, corrigi cinco bugs (referências de conflito, decaimento idempotente, profundidade de entidade de recordação, exclusão suave para relacionamentos, confirmação...

Contexto Triplo Up

A implementação de sistemas de memória eficazes pode transformar a interação de usuários com agentes de IA, aumentando a eficiência em atendimentos e personalização. Empresas brasileiras podem se beneficiar ao adotar essas tecnologias para melhorar a experiência do cliente e otimizar processos internos. A capacidade de reter e raciocinar sobre informações ao longo do tempo é crucial para a competitividade no mercado atual.

Noticias relacionadas

Gostou do conteudo?

Receba toda semana as principais novidades sobre WebMCP.