A memory written now is retrievable now. Measured, not claimed.

Most memory systems ingest asynchronously — a fact you save can take minutes to hours to become retrievable, or only lands at the end of a session. brainbox writes and indexes synchronously, so we benchmark the tier others can't enter: same-turn write→recall, against a corpus built to be hostile. Full method below; every number here comes from clean-room runs on an isolated tenant with a fixed seed.

Last run: 13 July 2026 · three clean-room runs · full method and per-run data below · public harness repo ships with the launch

1.000 hit@5
Every tier, every mode, every fact type — the written memory is always in the top 5 the same second it's written, including under adversarial interference. Held across all three runs.
0.90 hit@1
Semantic paraphrase queries under full interference — 150 golds against 150 near-twin distractors that differ by a single attribute. 95% CI [0.84, 0.94].
1.34s p50
End-to-end recall latency through the live API (p95 1.8s). Writes p50 1.4s. Cold sessions pay no warm-up penalty — cold latency matched warm within noise.
reproduced
Three from-scratch runs, wiped tenant, same seed. Every stable metric landed inside the previous run's confidence interval.
We published the failure before the fix
Run 1 — the benchmark bit us

Rank-1 precision under near-twin interference came back at 0.39 — our distractors (same job, different city; same event, different city) tied with the right answer and the tie broke randomly. Impossible queries never triggered an "I don't know." We built the benchmark to be adversarial; it was.

Diagnosis — measured, not guessed

Live probes showed same-template candidates collapsing onto byte-identical relevance scores — a tie cluster — and cosine similarity scoring 0.88 for provably unanswerable queries, far above any usable threshold. An independent adversarial review of our first fix caught it attacking weights when the bug was the formula's shape.

Run 3 — the fix, verified

Completeness-weighted term coverage plus deterministic tie-breaking took rank-1 from 0.39 to 0.90 on the identical corpus and seed — entity 0.84, preference 0.92, temporal 0.94 — while top-5 stayed perfect and latency improved. Same benchmark, same hostility, third clean room.

Run 3, in full
TierQuery modenhit@195% CIhit@5MRRp50p95
Fresh (same-turn)semantic750.933[0.853, 0.971]1.0000.9671.36s1.96s
Fresh (same-turn)keyed751.000[0.951, 1.000]1.0001.0001.40s1.93s
Interference (headline)semantic1500.900[0.842, 0.938]1.0000.9501.34s1.76s
Interferencekeyed1501.000[0.975, 1.000]1.0001.0001.35s1.94s
Cold (separate session)semantic1500.900[0.842, 0.938]1.0000.9501.04s1.15s
Cold (separate session)keyed1501.000[0.975, 1.000]1.0001.0001.03s1.15s

Headline = interference tier, semantic mode: paraphrase queries, no shared identifiers with the target, after the entire corpus (golds + distractors) is written. Keyed mode (query contains the memory's unique token) is a fulltext-precision check — we report it, we don't headline it, because it's easy by construction. The fresh tier carries a recency advantage, so it's a freshness claim, not the headline. The cold tier runs hours later in a separate session: semantic rank-1 held at 0.900 — identical to warm — where the pre-fix worker had degraded to 0.23. Recall is not warm-cache theatre.

What we'd say if we were reviewing this

Impossible queries don't abstain yet — 0 of 30

Our negative probes ask for combinations that don't exist ("the actuary in Porto" when the corpus has actuaries and Porto, never together). The system currently returns its closest matches instead of saying "nothing connects these." The detection signal exists (no candidate covers the full query), and a qualified-answer behaviour is on the roadmap — we ship the 0/30 disclosed rather than gaming the metric with a threshold tuned to this corpus.

The corpus is synthetic and template-generated

Facts and paraphrases are generated deterministically (seed 42) with uniqueness guarantees, which makes runs reproducible but means query phrasing is systematic. A human-written blind probe set is being added before the public harness release.

This is our benchmark, run by us

No third party has verified these numbers yet. That's exactly why the harness ships with the method, seeds, and per-run state files — run it against your own tenant and check us. Industry-standard suites (LongMemEval) are planned next; their scores will be published here whatever they come out to be.

How the benchmark works

Corpus. 150 gold facts across three types (entities, preferences, dated events), each with a unique canary token and a semantic key that is unique among golds — every probe has exactly one correct answer. Each gold gets a near-twin distractor sharing half its key (same profession, different city), so rank-1 requires beating a near-twin, not an empty field. 30 negative probes ask for combinations absent from the corpus.

Probes. Every gold is probed two ways: keyed (contains the canary — fulltext check) and semantic (paraphrase, no canary). Three tiers: immediately after each write, after the full corpus is in, and in a later cold session. Rank is parsed from the API's structured output; hits require the canary in the returned text.

Discipline. Isolated evaluation tenant, wiped to zero nodes before every run. Fixed seed. Retrieval parameters at production defaults. Latencies measured client-side through the live public API, paced within production rate limits. Confidence intervals are Wilson at 95%.

The industry-standard suite, scored by the official judge

Same-turn recall is the tier others can't enter. LongMemEval-S is the tier everyone competes on — 500 questions over long, multi-session chat histories, across six reasoning types. We ran the whole set through our unchanged recall pipeline and scored it with LongMemEval's official gpt-4o judge — the exact scorer Zep and Mem0 publish against. Not our proxy metric; their pipeline. An independent adversarial pass re-computed the number before it went here.

65.3% overall
326 of 499 correct, official gpt-4o-2024-08-06 judge. 499/500 scored — all six categories in full proportion.
+5.1 vs full-context
Above the whole-haystack-into-gpt-4o baseline (60.2). Retrieval earns its place — it adds signal over stuffing everything into the prompt.
2 of 6 beat Zep
We top Zep+gpt-4o on assistant-turn recall (94.6 vs 80.4) and temporal reasoning (66.2 vs 62.4).
~6pp to frontier
Under Zep+gpt-4o (71.2) — and the entire gap is one category. Above Zep+gpt-4o-mini (63.8) and Mem0 (~49).
29% → 60% → 65%, and we say why at each step
Run 1 — 29%, and the benchmark told us where the floor was

First subset came back at 29% — but retrieval hit the evidence session ~97% of the time. The reader was answering "I don't know" with the answer already in its context. Reader-limited, not memory-limited — the opposite of where most systems fail.

Tuning — 60.4% on the official reader prompt

Adopting LongMemEval's own reader prompt (extract-then-reason, no reflexive "I don't know") and putting the session date into each memory took temporal reasoning from 0 to 62%. 60.4% on a 48-question subset — parity with Zep+gpt-4o-mini — with the fix isolated to the reader, not the retrieval.

Full 500 — 65.3%, sharded and verified

A single eval node hit a database-churn ceiling at ~q114. We sharded the run across five ephemeral nodes, merged, and scored once. 65.3% on the full set — independently re-computed by an adversarial second pass before publication.

Every category, next to the frontier
System (reader)Overallss-userss-asstss-prefmulti-sesstemporalknow-update
brainbox (gpt-4o)65.381.494.613.351.966.271.4
Zep (gpt-4o)71.292.980.456.757.962.483.3
Full-context (gpt-4o)60.2
Mem0~49

brainbox = openai/gpt-4o via OpenRouter, k=30, session granularity, seed 42, unchanged recall pipeline. Comparators are the published numbers from the Zep paper (arXiv:2501.13956, Jan 2025, Tables 2–3), which uses the same official gpt-4o judge. Bold = brainbox's category wins. We report judged accuracy, not evidence-hit rate — a fact existing in the retrieved set is not the same as answering the question, and only the second is honest to publish.

What we'd say if we were reviewing this

Preference is our weak category — 13.3%, and we're not hiding it

On single-session-preference the reader gives generically helpful advice without recalling and applying the user's stated preference, so the judge marks it wrong. It is nearly the entire 6-point gap to Zep — a reader failure, not a retrieval one (the evidence is retrieved). Lift this one category to even ~50% and the overall lands near 68%. It's the next fix, disclosed rather than buried.

Reader snapshot is unpinned — on both sides

We call openai/gpt-4o via OpenRouter; the Zep paper likewise reports "gpt-4o" without a pinned snapshot. A few points of the gap could be reader drift rather than memory-system difference. The judge is pinned (gpt-4o-2024-08-06, the official scorer) for both.

Our run; their published numbers

The brainbox row is our own run. The Zep, full-context and Mem0 rows are the figures published in the Zep paper, on the same dataset and the same official judge. No third party has re-run brainbox yet — which is why the harness ships with the method, shard seeds and per-run state files. Run it and check us.

Run it against your own brain

Beta cohort 2 is five seats. You get an isolated tenant, the connector that works across Claude, Cursor, Codex and the rest of the verified list — and the harness to hold us to these numbers.

Request a seat What is brainbox?