Neomonic
Benchmarks · October 2026

Three benchmarks, mem0's own harness.

We ran BEAM, LoCoMo and LongMemEval through mem0's open-source benchmark harness and changed one thing: the memory search. GPT-5 answers and GPT-5 judges, with the harness's own prompts and scoring. Neomonic is ahead on BEAM, level on LoCoMo and behind on LongMemEval. Every question, answer and verdict is published below.

The results.

Each neomonic figure is the mean of two or three complete runs. The mem0 figures are the ones mem0 publishes in its README (platform v3, GPT-5). We did not run mem0 ourselves.

+3.5
BEAM 10M, 50 memories
49.0% pass vs mem0 45.5%
+2.2
BEAM 1M, 200 memories
72.3% pass vs mem0 70.1%
level
LoCoMo, with half the memories
92.9% at 100 vs mem0 92.5% at 200
−1.1
LongMemEval, 50 memories
93.7% vs mem0 94.8%
BenchmarkQuestionsMemories (top-k)neomonic, meanEach runmem0, publishedResult
BEAM 10M2005049.0% / 0.44848.5% / 0.452 · 49.5% / 0.44345.5% / 0.413ahead +3.5
BEAM 1M70020072.3% / 0.66372.0% / 0.656 · 72.6% / 0.66970.1% / 0.641ahead +2.2
BEAM 10M20020051.8% / 0.48752.5% / 0.482 · 51.0% / 0.49250.5% / 0.486ahead on pass rate level on score
BEAM 1M7005067.4% / 0.62567.4% / 0.625 · 67.3% / 0.62467.1% / 0.604level on pass rate ahead on score
LoCoMo1,540ours 100, mem0 20092.9%93.2% · 92.5%92.5%level, half the memories
LoCoMo1,5405092.1%92.3% · 91.8%91.8%level
LongMemEval5005093.7%467 · 472 · 466 correct of 50094.8%behind −1.1

BEAM reports two numbers: the share of questions that pass (per-question score of 0.5 or more) and the mean score from 0 to 1. LoCoMo and LongMemEval report the share judged correct. Run-to-run spread is up to 1.5 points, so a gap smaller than that is a tie, and the LoCoMo rows are reported as one.

How it was run.

The harness is mem0's: github.com/mem0ai/memory-benchmarks, at commit 4b61c5d. Only the memory search was replaced with neomonic's. The answer prompt, the judge prompt and the scoring code are the harness's, unchanged. GPT-5 writes every answer and GPT-5 judges every one.

BEAM: no training at all

Each conversation turn is cut into pieces of at most 1,500 characters. Pieces are ranked by BM25 and by cosine similarity on nomic-embed-text embeddings, and the two rankings are fused by reciprocal-rank fusion (k = 60). No BEAM labels were read and nothing was tuned on BEAM. At 50 memories this sends GPT-5 about 13k tokens of memory per question, and about 52k at 200.

LoCoMo: a trained evidence ranker

Neomonic's evidence ranker (hopnet) scores every turn of the conversation against the question. It was trained leave-one-conversation-out: each of LoCoMo's ten conversations was ranked by a model that never saw it in training.

LongMemEval: the ranker, plus notes

The same ranker, trained 5-fold, so no question is ranked by a model trained on it. On top of the ranking, a note step (gpt-5-mini) reads the top turns and writes dated, verbatim quotes. It is routed by the question's wording alone, never by its type label. In each run 186 of the 500 questions get notes and the other 314 get ranked turns only. The notes count toward the same 50-memory budget.

Same answerer, same judge

The harness's GPT-5 answerer sees only what the memory search returns, cut at the stated top-k. The judge sees the question, the gold answer and the generated answer. We changed neither prompt.

By category.

Per-category results at the cutoffs in the headline table. BEAM and LongMemEval figures are means over the runs, and LoCoMo shows each run separately.

BEAM, share of questions passing

Question type10M · top-5010M · top-2001M · top-501M · top-200
abstention42.5%37.5%57.1%57.9%
contradiction resolution55.0%45.0%55.7%47.1%
event ordering12.5%17.5%57.9%68.6%
information extraction57.5%70.0%77.1%83.6%
instruction following82.5%87.5%79.3%87.9%
knowledge update70.0%75.0%69.3%70.7%
multi-session reasoning17.5%22.5%59.3%75.7%
preference following72.5%70.0%97.1%97.9%
summarization50.0%57.5%61.4%72.9%
temporal reasoning30.0%35.0%59.3%60.7%

BEAM 10M has 20 questions per type, so one question moves a 10M cell by 2.5 points over two runs. BEAM 1M has 70 per type.

LoCoMo, judged correct

CategoryQuestionstop-100 run 1top-100 run 2top-50 run 1top-50 run 2
single-hop84194.8%94.4%93.3%93.5%
multi-hop28292.9%91.5%91.1%89.7%
temporal32194.4%94.1%93.8%93.1%
open-domain9677.1%74.0%81.2%78.1%
all1,54093.2%92.5%92.3%91.8%

Open-domain has only 96 questions, so a single answer moves it by about one point. In run 2 the same retrieval was judged at both cutoffs.

LongMemEval, judged correct

Question typeQuestionsCorrect, runs 1 / 2 / 3Mean
single-session user7066 / 68 / 6896.2%
single-session assistant5654 / 54 / 5496.4%
single-session preference3029 / 29 / 3097.8%
knowledge update7876 / 77 / 7597.4%
temporal reasoning133128 / 128 / 12896.2%
multi-session133114 / 116 / 11185.5%
all500467 / 472 / 46693.7%

Multi-session questions, which need counting or combining facts across many sessions, account for most of the misses.

Read this first.

Published numbers, not a rerun

Every mem0 figure here comes from mem0's own README (platform v3, GPT-5). We did not run mem0 ourselves. mem0 reports those figures from its own harness with GPT-5 answering and judging, which is the setup we used. The runs were made at different times, and possibly at a different harness commit.

Runs vary

Two runs of the identical setup differ by up to 1.5 points. That is why every figure is a mean, every individual run is shown, and gaps inside that spread are called level rather than wins.

Where we are not ahead

LoCoMo is a tie. Neomonic reaches mem0's score while sending half as many memories (100 against 200), but the score itself is level. LongMemEval is behind by 1.1 points.

Accuracy only

These are answer-accuracy results. They make no claim about speed or latency against mem0.

The evidence.

For every run in the table: the harness's final score file, and every question with its gold answer, GPT-5's answer and the judge's verdict and reason. The text of the retrieved memories is left out for size, but their ids and scores are kept. Each score was recounted from the per-question rows and matches the reported figure exactly. The manifest lists sha256 hashes and maps each file to its row.