Choosing between the built-in datasets
Before building your own, check whether one of the existing datasets already covers what you need:
You can also run all three to get a full picture of where a memory system is strong or weak — a system that’s great at LoCoMo but weak at LongMemEval is good at temporal recall but struggles with dense information retrieval, for example.
The Benchmark interface
Every dataset — built-in or custom — implements the same interface (src/types/benchmark.ts):
Adding your own benchmark
- Create
src/benchmarks/mybenchmark/index.tsimplementing theBenchmarkinterface above load()parses your dataset (JSON, CSV, whatever you have) intoUnifiedSessions and questionsgetQuestions()returns your question set, each with a ground-truth answer and a question type- Register it in
src/benchmarks/index.tsand add the name toBenchmarkNameinsrc/types/benchmark.ts - Run it exactly like a built-in benchmark:
billing_history, escalation_context, preference_drift, etc.), and the final report breaks accuracy down per type so you can see exactly where a provider is strong or weak on your scenarios, not a generic academic one.
Full interface details and a working template:
src/benchmarks/README.md in the repo.Next
Adding a Provider
Register a memory system to run against your new benchmark.
Measuring Results
How accuracy, latency, and MemScore are computed.