Pular para o conteúdo principal
Um assistente com quem você trabalha há meses precisa lembrar do que você contou: a decisão de três semanas atrás, o número que você corrigiu na terça passada, a cidade para onde você se mudou, e também quando dizer “você nunca me contou isso”. O LongMemEval mede exatamente isso, e rodamos as 500 perguntas dele no chatcli.

90,8%

454 de 500 perguntas respondidas corretamente

90,0%

nas 440 perguntas nunca usadas para ajustar o chatcli

469 / 470

perguntas em que a busca do chatcli trouxe a evidência

22 s · US$ 0,08

tempo mediano e custo médio por pergunta
Acurácia do chatcli no LongMemEval-S por tipo de pergunta: 100% em fatos ditos pelo usuário e pelo assistente, 94,9% em fatos atualizados, 88,0% em raciocínio temporal, 86,7% em preferências, 83,5% em várias sessões, 90,0% em recusaAcurácia do chatcli no LongMemEval-S por tipo de pergunta: 100% em fatos ditos pelo usuário e pelo assistente, 94,9% em fatos atualizados, 88,0% em raciocínio temporal, 86,7% em preferências, 83,5% em várias sessões, 90,0% em recusa

A história por trás dos números

O artigo no LinkedIn mostra as 500 perguntas, as falhas reais, os bugs que a rodada encontrou e o que mudou depois.

O que é o LongMemEval

O LongMemEval é um benchmark do artigo LongMemEval: Benchmarking Chat Assistants on Long-Term Interactive Memory (Di Wu, Hongwei Wang, Wenhao Yu, Yuwei Zhang, Kai-Wei Chang e Dong Yu, ICLR 2025). São 500 perguntas curadas à mão. Cada pergunta vem com o próprio histórico de sessões de chat, com data e hora. Na variante S, esse histórico tem cerca de 115 mil tokens, umas 40 a 50 sessões de conversa do dia a dia, e a evidência da resposta está escondida em algum lugar ali dentro. As perguntas testam cinco habilidades:

Por que importa

  • É difícil de propósito. O artigo relata que assistentes comerciais e LLMs de contexto longo perdem 30% de acurácia ao memorizar informação ao longo de interações contínuas. Uma janela de contexto maior, sozinha, não resolve.
  • Testa a falha que o usuário de fato vê. Um assistente que esquece uma correção, mistura duas viagens ou inventa uma resposta que nunca recebeu perde a confiança rápido. O LongMemEval mede cada um desses casos separadamente.
  • É reproduzível. O dataset, as perguntas, as respostas de referência e os prompts do juiz são públicos (MIT), então qualquer pessoa pode rodar de novo e comparar.

Como o chatcli foi testado

O objetivo era testar o chatcli do jeito que você o usa, não testar o modelo. Nada foi colado no prompt. O histórico de cada pergunta virou sessões salvas do próprio chatcli, e ele teve que achar a evidência com as ferramentas de memória dele.
1

Uma instalação isolada por pergunta

Um CHATCLI_STATE_DIR novo guarda o histórico da pergunta como sessões salvas; a data de modificação de cada arquivo é a data da sessão. Sua memória real nunca se mistura, e seu login é reaproveitado no lugar via CHATCLI_AUTH_DIR.
2

O relógio no dia da pergunta

O CHATCLI_NOW é a data da pergunta, então “há duas semanas” significa duas semanas antes da pergunta, não antes da execução.
3

O chatcli responde sozinho

chatcli -p "/coder …" com Claude Sonnet 5.5 e uma única instrução neutra: responda pelas nossas conversas anteriores e diga se elas não têm a resposta. O chatcli decide quais tools chamar.
4

O juiz oficial

Cada resposta é avaliada com os prompts oficiais de verificação do LongMemEval, sem alteração, rodando com Claude Sonnet 5.5.

Resultados

454 de 500 corretas: 90,8% (intervalo de confiança de 95%: 87,9% a 93,0%). Pela média dos seis tipos de pergunta, em que cada tipo pesa igual: 92,2%.

Nota fora da amostra de ajuste

Antes da rodada completa, uma amostra de 60 perguntas (10 por tipo, semente fixa) foi usada para achar e corrigir fraquezas do chatcli. Essas 60 deram 96,7% na rodada final, então não são um teste neutro. Nas outras 440 perguntas o chatcli acertou 396/440 = 90,0% (IC 95% de 86,8% a 92,5%), com a mesma média por tipo de 92,2%. É o número conservador.

Onde falha

A rodada registra, para cada pergunta, quais sessões salvas contêm a resposta segundo o gabarito do dataset e se essas sessões chegaram ao modelo. Isso separa achar de raciocinar.
Onde as 46 falhas aconteceram: 27 evidência achada com resposta errada, 9 evidência achada mas o modelo disse que não havia, 6 só parte da evidência achada, 3 responderam uma pergunta sem resposta, 1 evidência nunca achadaOnde as 46 falhas aconteceram: 27 evidência achada com resposta errada, 9 evidência achada mas o modelo disse que não havia, 6 só parte da evidência achada, 3 responderam uma pergunta sem resposta, 1 evidência nunca achada
A busca não é o gargalo. A sessão com a resposta chegou ao modelo em 469 das 470 perguntas que têm resposta. Das 46 falhas, só uma foi de busca. O resto é julgamento:
  • Contar entre sessões (várias sessões, 22 falhas): “Quantos projetos concluí desde que comecei as aulas de pintura?” — o chatcli achou 4 dos 5.
  • Aritmética e ordem de datas (temporal, 16 falhas): “Qual livro terminei primeiro?” quando uma sessão diz “no fim de semana passado” e outra “acabei de terminar”.
  • Cautela demais: em 9 perguntas a evidência estava diante do modelo e ele respondeu “isso não está nas nossas conversas”.
  • Ousadia demais: em 3 das 30 perguntas sem resposta ele chutou em vez de recusar.
Duas das 46 falhas tiveram outra causa, achada lendo os transcripts: uma busca por “St. Mary’s Church” levou um apóstrofo sem escape que cortou a tool call. Esse bug do parser está corrigido no #1842, e as duas perguntas passam quando rodadas de novo. Os 90,8% acima são a nota medida, sem essa correção.

Custo e velocidade

O chatcli usou @session search 1.068 vezes, @session get 967 vezes e @memory recall 344 vezes. Em 66 perguntas ele limitou as buscas por data por conta própria, com os flags from, to e as_of da busca de sessões (137 chamadas). Ele nunca foi à web.

O que o benchmark mudou no chatcli

Rodar o LongMemEval achou bugs reais, e cada um foi corrigido no próprio chatcli, não no teste: Na amostra de 60 perguntas, essas mudanças levaram raciocínio temporal de 8/10 para 10/10, fatos atualizados de 8/10 para 9/10 e várias sessões de 9/10 para 10/10, sem nenhuma pergunta piorando.

Lendo os números com honestidade

O juiz de referência do artigo é o GPT-4o. Esta rodada usou os mesmos prompts oficiais com o Claude Sonnet 5.5 como juiz, então a nota não é diretamente comparável com números de leaderboard julgados pelo GPT-4o.
A amostra de 60 perguntas orientou as correções acima. Os 90,0% nas outras 440 são o número que nunca foi visto durante o ajuste.
Modelos variam entre execuções. Uma pergunta no limite pode virar para um lado ou para o outro numa nova rodada.
O nome de uma sessão de evidência apareceu no que o modelo viu: resultados de busca, o bloco de auto-recall ou uma página que ele leu. Mostra que a busca chegou à conversa certa, não que o modelo leu a frase exata.
As sessões salvas se chamaram chat-<data>-<índice>; os ids do próprio dataset revelariam quais sessões têm a resposta. A data no nome é a mesma informação que todo resultado de busca mostra.

Os dados

Tudo da rodada é público no repositório do chatcli, em evals/longmemeval:

Rode você mesmo

Você precisa de um login do Claude no chatcli (OAuth ou API key). Páginas relacionadas: Memória, Busca de conversas, Evals.