Launch

96.0% on LongMemEval: what retrieval does for long-term memory

Papr scores 480 of 500 on LongMemEval-S with the official judge, the highest published result we know of. Here is how the retrieval works, what 5 vs 20 sessions changes, and what it costs.

Papr

An assistant that remembers you has to find one sentence you said three months ago, inside hundreds of conversations, and then reason about it. LongMemEval is the benchmark most memory systems use to measure that. Each of its 500 questions comes with about 50 past chat sessions, around 112,000 tokens of history, and the right answer sits in one or a few of them.

We ran all 500 questions through Papr with the benchmark's own answer prompt and its own grader. Papr answered 480 correctly (96.0%). That is the highest published score we have found. Every answer and every grading decision is public, so you can check it yourself.

The number we care about more is what it took. Our 95.4% run sends the answer model 16.5k tokens per question, about a third of the next system that reports it. Accuracy, cost and speed together are the point of this post.

Scatter plot of LongMemEval-S accuracy against tokens sent to the answer model per question. Papr's three configurations sit at 94.4 to 96.0 percent with 15k to 60k tokens; Hindsight is at 94.6 percent with 43.6k; full history in the prompt is at 60.2 percent with 112k.

Where it lands

All rows use LongMemEval-S, 500 questions. Other rows are the numbers each team reported.

Bar chart of published LongMemEval-S results: Papr High top 20 at 96.0 percent, Chronos High 95.6, Papr High top 5 95.4, Mastra 94.9, Hindsight 94.6, Papr with gpt-5-mini 94.4, Chronos Low 92.6, Honcho 90.4, Zep 71.2, full history 60.2.

# System Answer model Judge Overall Context to answer model
1 Papr High, top 20 Claude Opus 4.6 gpt-4o 96.0% ~60k
2 Chronos High Claude Opus 4.6 gpt-4o 95.6% not reported
3 Papr High, top 5 Claude Opus 4.6 gpt-4o 95.4% 16.5k
4 Mastra Observational Memory gpt-5-mini gpt-4o 94.9% not reported
5 Hindsight Gemini 3.1 Pro Gemini 2.5 Flash Lite 94.6% 43.6k
6 Papr Rerank gpt-5-mini gpt-4o 94.4% 15k
7 Chronos Low gpt-4o gpt-4o 92.6% not reported
8 gbrain Claude Sonnet 4.6 gpt-4o 90.6% 15.8k
9 Honcho Claude Haiku 4.5 gpt-4o 90.4% not reported
10 Zep gpt-4o gpt-4o 71.2% not reported
11 Full history in the prompt gpt-4o gpt-4o 60.2% ~112k

Two things stand out. With gpt-5-mini, a small and cheap model, Papr reaches 94.4%, close to systems running far larger models. And the 95.4% run sends the answer model 16.5k tokens per question, about a third of what Hindsight sends and a seventh of the full history.

The top three are within half a point of each other. The benchmark's variance from run to run is about 3 questions, so read 96.0, 95.6 and 95.4 as a tight group. We are not claiming a wide lead.

How Papr finds the right sessions

Most of the work is retrieval. If the right session never reaches the answer model, no model can answer. Our pipeline has three steps.

1. Embed with papr-embed. Every user turn and every question is embedded with papr-embed-schema-1-0.6b, our schema-aware embedding model, using the memory:personal schema. A general-purpose embedding treats text as text. A schema-aware one is trained to notice the things a memory question turns on: a person, a date, a purchase, a change of plan. A session scores as high as its best-matching turn, and we keep the top 20. Embedding a question takes about 170 ms and the search itself under 1 ms.

2. Rerank. Gemini 2.5 Flash reads those 20 sessions in one call and grades each one for whether it holds evidence the question needs. This takes 1.8 s at the median.

Retrieval time per question: papr-embed 170 ms, search under 1 ms, then the optional Gemini reranker at 1.8 s median.

3. Answer. The answer model gets the top sessions, sorted by date, in the official LongMemEval prompt.

How often does retrieval find everything? For the 470 questions that have an answer, all of the evidence sessions are in the top 5 for 460 (97.9%), and in the top 20 for 467. So retrieval is close to solved here, and most remaining errors are the answer model reasoning wrongly over the right sessions.

Top 5 or top 20

Since the top 20 contains the evidence for 7 more questions than the top 5, we tried handing all 20 to the answer model.

It worked where we expected. Temporal reasoning, the category with questions like "how many weeks between the two trips", went from 123 to 130 of 133. Dates are scattered across sessions, and more sessions means more of them in view.

Grouped bars comparing top 5 and top 20 sessions by question type. Temporal reasoning gains 7 questions; multi-session, knowledge update and preference lose 1, 2 and 1.

It also cost something. Twenty sessions gave the model more to get distracted by: 11 questions became right, 8 that had been right became wrong. The net gain is 3 questions, the same size as the run-to-run noise. Context grew from 16.5k to about 60k tokens per question.

Our read: top 5 is the better default. It is within 0.6 points of the best score at less than a third of the context. Top 20 is worth it when the question is about time and the user is willing to pay for it. We picked top 20 after looking at what top 5 got wrong, so treat 96.0% as a tuned result.

Speed and cost

Accuracy is only one axis. A memory system runs on every turn of a conversation, so latency and tokens add up.

  • Retrieval latency: about 1.9 s per question with the reranker, which every config above uses. Without it, papr-embed alone takes 0.17 s and still scores 91.0% with gpt-5-mini.
  • Context per question: 15k to 16.5k tokens for our top-5 configs, against 43.6k for Hindsight and about 112k for the full history. gbrain sends a similar 15.8k and scores 90.6%, so at the same budget Papr answers about 4 to 5 points more questions.
  • Model size: 94.4% with gpt-5-mini means most teams do not need a frontier model to get strong memory.

Bar chart of tokens per question: Papr with gpt-5-mini 15k, Papr High top 5 16.5k, Hindsight 43.6k, Papr High top 20 60k, full history 112k.

Fewer tokens per answer is a direct cost saving on every call, and it leaves room in the context window for the actual task.

What we did not do

  • No question labels are used anywhere in retrieval or answering. The type of question, and whether it has an answer, are only used for grading.
  • The answer prompt and grader are the official ones, unmodified. The grader is gpt-4o-2024-08-06, as in the paper.
  • We tuned prompts on half the questions and checked on the other half. There is no further held-out set, which is true of most published LongMemEval results.

Check it yourself

Everything is in github.com/Papr-ai/papr-longmemeval: every answer, every grading decision, the retrieved sessions for each question, and the code. The benchmark's own print_qa_metrics.py reproduces our scores from those files. We also posted the results to the LongMemEval repository.

papr-embed is available through the Papr Memory API. If you are building an agent that needs to remember, this is the retrieval behind these numbers.

ShareMarkdown
Papr Work

Build the apps your work runs on

A desktop app for Mac and Windows that builds the apps and automations you describe.