Skip to content

How we measure ​

Two benchmarks, and one of them we publish every answer for.

LongMemEval ​

92.8% (464/500).

reader / planner / judgedeepseek-v4-flash
judge promptsthe LongMemEval benchmark's own evaluate_qa.py templates, byte-identical
storelongmemeval_s_500_Hobs_entitysubj, 500 users / 235,840 facts

Every answer and every retrieved memory is published in benchmarking/artifacts/ — 500 answers verbatim, 8,427 evidence rows.

Re-grade them with any judge, or hand the retrieved context to your own reader and see what the number does. Neither needs access to anything of ours.

LoCoMo ​

86.88% (1338/1540), categories 1–4. End-to-end QA accuracy, LLM-as-judge.

reader / planner / judgedeepseek-v4-flash
judge promptsthe LongMemEval benchmark's own templates, byte-copied
storelocomo10_Hobs, 10 user stores / 2,905 fact events
codea pre-release build — the repository's published history begins at v0.1.0

Category 5 (adversarial) is excluded, following common practice; the scores use the 1,540 non-adversarial questions.

No per-question artifacts are published for LoCoMo — no answers, no retrieved context, no run directory. What is published is the LoCoMo section of benchmarking/README.md: the per-category breakdown, the per-conversation spread, provenance and repro steps.

How to read these numbers ​

Three things the artifacts say about themselves, which we would rather state than have someone discover:

Reader and judge are the same model. That is a self-grading loop and it runs loose; how loose depends on the answer's shape. Score the published answers with your own judge — that is why they are published.

The reader is a budget model. Systems reporting 94–96% on LongMemEval generally use frontier readers, and reader tier moves the score more than most architectural differences do.

The retrieval is reproducible; the reader's prompt is not. That run had SODAMEM_BENCH_CAPTURE_INPUT off, so the assembled prompt was never recorded. What is reproducible was measured rather than assumed: the store's content fingerprint still matches, and the same query through two freshly opened stores returns the same evidence ids in the same order.

No web access ​

The planner's tools are all prefixed browser_, and every one of them browses the memory store — browser_search queries stored facts, browser_inspect_session opens one recorded session, browser_count_evidence counts matching evidence rows, browser_timeline_events walks one entity's history.

These runs made no network request of any kind beyond the LLM API. SodaMem ships no web-search tool; there is nothing in sodamem/tools/ that can reach the open internet.

Reproducing ​

The judge half needs nothing from us: hypothesis and golden_answer are both in the published file — point any judge at them.

The answer half needs no access to our service either: take retrieved_evidence for a question, feed it to any reader, and judge the result against golden_answer.

Regenerating the retrieval itself needs the frozen store, which is 12 GB and not distributed.

Apache-2.0 licensed.