Blog / NeoCore benchmarks

NeoCore, measured

Open-source memory for Claude Code, Codex, Hermes, OpenClaw or any AI harness: on your own machine, or shared by a whole team. We tested how well it recalls, and how well its 32M filter picks what helps. Here are the results, including where others score higher.

View code and install ↗Free · Apache-2.0
0.914 AUC

NeoSift 32M ranks useful memories above every open reranker we tested, including one 125× its size.

103 held-out coding prompts
89.6% · 87.5%

LongMemEval-S and LoCoMo, with zero LLM calls during recall.

small answering model
Not first everywhere

Hosted scorers and two LoCoMo systems score higher. They are all on this page.

sources linked
Watch how it works · under two minutes · sound on
Claude CodeCodexHermesOpenClawYour own agentAny MCP client
NeoCore
Local on your machineShared one memory for a whole team
01

NeoSift: a 32M model that picks the memories that help

For every prompt, recall finds about 48 candidate memories by words and by meaning. Most are related but not useful, and injecting them distracts the model. NeoSift reads each one with the prompt and asks one question: will this help? Only the best few get through.

The test: 103 real coding-assistant prompts and 8,397 candidate memories, locked away before training and labelled by hand-checked grades. AUC is the chance a useful memory is ranked above a non-useful one: 0.5 is random, 1.0 is perfect.

Same model size. Better ranking.

0.750.800.850.900.951.00Best open rerankerQwen3 4B · 0.835Ettin 32M · 0.796where we startedJev · 0.931hosted+0.118 from trainingNeoSift 32M · 0.914

We started from Ettin 32M, an open reranker, and trained it on GPT-6.1’s grades. Same 32 million parameters, and its score rose from 0.796 to 0.914: past every open reranker we tested.

Against the best open reranker

NeoSift 32MQwen3-Reranker-4B
Size
32M
4B · 125×
Ranking (AUC)
0.914
0.835
Time per prompt
0.099 s
8.50 s
Same batch, real time: ~81 candidates · RTX 3080
NeoSift
0.10 s ✓
Qwen3 4B
8.50 s ✓

1/125 of the parameters, about 86× faster in this test, and a higher ranking score. Open rerankers were run as published, without training for this task; NeoSift was trained for it.

Every scorer we tested AUC · 0.5 = random

  1. Claude Opus 5.5hosted frontier model
    0.976
  2. GPT-6.1 · NeoSift’s teacherhosted frontier model
    0.970
  3. TypeSafe Jevhosted, ~$0.0007 per prompt
    0.931
  4. NeoSift 32M32M · local GPU, no API fees
    0.914
  5. Qwen3-Reranker-4B4B · local GPU
    0.835
  6. Qwen3-Reranker-0.6B600M · local GPU
    0.821
  7. Ettin 400M400M · local GPU
    0.809
  8. Ettin 150M150M · local GPU
    0.801
  9. Ettin 32M · NeoSift’s base32M · local GPU
    0.796

+ 8 more open rerankers, all below 0.76: full table below.

Hosted scorers still lead. Jev scores 0.017 higher (the confidence intervals overlap), and the frontier judges about 0.06 higher. NeoSift runs on your own GPU, with no API fees.

When no memory helps lower is better

43 of the prompts had nothing useful in memory, so the right move is to inject nothing. How often did each scorer still let something through?

  1. Claude Opus 5.5
    7%
  2. NeoSift 32M
    40%
  3. GPT-6.1
    63%
  4. TypeSafe Jev
    74%

At its default cut, NeoSift still kept at least one memory on 40% of those prompts, against 74% for Jev. Opus is the strictest. These are results at the tested thresholds, not a full precision–recall comparison.

All 17 scorers, intervals and method
ScorerSizeRunsAUC95% intervalTime per prompt
Claude Opus 5.5 (LLM judge)not disclosedhosted frontier model0.9760.963–0.986–
GPT-6.1 (NeoSift’s teacher)not disclosedhosted frontier model0.9700.957–0.981–
TypeSafe Jev 1.13not disclosedhosted, ~$0.0007 per prompt0.9310.909–0.949–
NeoSift 32M round 1032Mlocal GPU, no API fees0.9140.884–0.9380.10 s
Qwen3-Reranker-4B4Blocal GPU0.8350.800–0.8728.5 s
Qwen3-Reranker-0.6B600Mlocal GPU0.8210.782–0.8621.6 s
Ettin reranker 400M400Mlocal GPU0.8090.764–0.8530.90 s
Ettin reranker 150M150Mlocal GPU0.8010.757–0.8440.41 s
Ettin reranker 32M (NeoSift’s base)32Mlocal GPU0.7960.752–0.8410.10 s
gte-reranker-modernbert-base149Mlocal GPU0.7530.706–0.7980.42 s
bge-reranker-v2-m3568Mlocal GPU0.7120.658–0.7660.78 s
ms-marco-MiniLM-L6-v223Mlocal GPU0.6810.622–0.7400.07 s
bge-reranker-large560Mlocal GPU0.635–0.72 s
bge-reranker-base278Mlocal GPU0.617–0.29 s
mxbai-rerank-large-v1435Mlocal GPU0.614–1.4 s
ms-marco-MiniLM-L12-v233Mlocal GPU0.585–0.11 s
mxbai-rerank-base-v1184Mlocal GPU0.572–0.54 s
  • The 103 prompts are real Claude Code and Codex prompts from one developer, kept out of all training. Each candidate is labelled useful, related or not useful. Intervals are 95% bootstrap intervals.
  • Every scorer saw the same text: the prompt, the end of the previous turn and the memory. Open rerankers ran zero-shot, as published, in bf16 on an RTX 3080. The time is the median to score one prompt’s ~81 test candidates.
  • The frontier judges were given NeoSift’s grading question and graded every candidate. GPT-6.1 is also the teacher NeoSift learned from, which may favour both.
  • NeoSift is trained on coding prompts. On other kinds of work it agrees with its teacher less well, which is why opt-in sharing exists.
02

How NeoCore scores on memory benchmarks

Two public benchmarks ask questions about long conversation histories: the system recalls memory, a small answering model replies, and a judge marks it. These runs used NeoCore’s recall without NeoSift, with zero LLM calls during recall. We list only published results that used a gpt-4o-class or smaller answering model, because answering models and judge prompts move scores a lot.

LongMemEval-S: 89.6% 500 questions · official GPT-4o judge

  1. Chronos (Low)GPT-4o reader + Cohere rerank + Gemini prompts
    92.6%
  2. NeoCore 0.2gpt-4.1-mini reader · 0 LLM calls during recall · ~4k tokens
    89.6%
  3. Mastra Observational Memorygpt-4o reader · ~30k tokens
    84.2%
  4. Supermemorygpt-4o reader
    81.6%
  5. Zepgpt-4o reader (Zep paper)
    71.2%
  6. Whole history in contextgpt-4o reader · ~115k tokens
    60.6%

Second among the published small-model results we found. Chronos scores 92.6% with a GPT-4o reader, a hosted reranker and extra model calls. In its reported setup, giving the reader the whole history scored 60.6%.

LoCoMo: 87.5% 1,540 questions · gpt-4.1-mini answering model

  1. 92.6%
  2. EverMemOSaudit re-score (paper: 93.1)
    92.3%
  3. MemMachine v0.2agent mode
    91.7%
  4. NeoCore 0.20 LLM calls during recall · ~3.6k tokens
    87.5%
  5. Zepas run by the EverMemOS authors
    85.2%
  6. Whole conversation, short answers~25k tokens per question
    82.0%
  7. MemOSas run by the EverMemOS authors
    80.8%
  8. Mem0as run by the EverMemOS authors
    64.2%

Here we don’t win. EverMemOS and MemMachine score 4–5 points higher, and so does the whole conversation in context with step-by-step answers, at about 25k tokens per question against NeoCore’s ~3.6k. NeoCore is ahead of Zep, MemOS and Mem0 as run by the EverMemOS authors. Answer prompts still differ between rows, so read small gaps with care.

How to read these numbers
  • Judges and answer prompts differ between published results. The LoCoMo audit shows how much the answer prompt alone can move a score, and that part of LoCoMo’s answer key is wrong.
  • Results of 92–95% from Zep, Mem0, Mastra, MemMachine and others use GPT-5-class answering models or judges, or do not say which. They are left out because they are not comparable, not because they are low.
  • NeoCore forms dated facts with one small-model call per stored session. Recall itself uses local search and embeddings, with no LLM calls. The benchmark runs did not use NeoSift.
  • Every external number links to its source. Ours come from the repository’s evals, run through the public package.

Use it with your own tools, or give your whole team one memory.

View code and install ↗How NeoCore works: the 0.2 post

Free and open source · Apache-2.0 · installs from GitHub