Backboard LongMemEval Benchmark

February 10, 2026 · View on GitHub

Backboard

We ran Backboard against the full LongMemEval benchmark — 500 questions testing long-term conversational memory across 6 categories.

Overall accuracy: 93.4% (467/500 correct)

Results

CategoryQuestionsCorrectAccuracy
Single-Session (Assistant)565598.2%
Single-Session (User)706897.1%
Knowledge Update787393.6%
Multi-Session13312291.7%
Temporal Reasoning13312291.7%
Single-Session (Preference)302790.0%
Total50046793.4%

Cross-Evaluator Accuracy

We evaluated the same answers with 4 different LLM judges to make sure results are robust and not dependent on a single evaluator.

CategoryGPT-4GPT-4o-miniGemini 3 ProGPT-5.2
Single-Session (Assistant)96.4%98.2%96.4%96.4%
Single-Session (User)95.7%97.1%95.7%95.7%
Knowledge Update89.7%93.6%93.6%93.6%
Multi-Session94.0%91.7%92.5%89.5%
Temporal Reasoning93.2%91.7%92.5%92.5%
Single-Session (Preference)80.0%90.0%80.0%66.7%
Overall92.8%93.4%92.8%91.2%

The main results table uses GPT-4o-mini as the evaluator (highest overall accuracy). Bold values in the cross-evaluator table show the best score per category.

How It Works

The benchmark is pretty simple:

  1. Feed conversations — Send past chat sessions to Backboard (with memory=Auto so it extracts and stores memories)
  2. Ask a question — Let Backboard retrieve relevant memories and answer (with memory=Readonly)
  3. Score the answer — Compare against ground truth using LongMemEval's evaluation protocol

Each question gets its own isolated assistant and thread, so there's no cross-contamination between tests.

Architecture

LongMemEval Dataset (500 questions + conversation histories)


        ┌───────────────────────┐
        │   Backboard Runner    │
        │   (Autocomplete API)  │
        └───────────────────────┘

        ┌───────────┴───────────┐
        ▼                       ▼
  Feed Sessions           Ask Question
  (memory=Auto)          (memory=Readonly)
        │                       │
        └───────────┬───────────┘

            Predictions


        ┌───────────────────────┐
        │  LLM Judge Evaluation │
        │  (4 models, majority) │
        └───────────────────────┘


          Accuracy by Category

Dataset

We used the s_cleaned dataset, which has ~40-50 conversation sessions per question (roughly ~115k tokens each). The benchmark model was gpt-4.1 via OpenAI.

Question TypeWhat It Tests
Temporal Reasoning (133)"When did X happen?" / ordering of events
Multi-Session (133)Info scattered across many conversations
Knowledge Update (78)Facts that changed over time
Single-Session User (70)User-stated facts from one conversation
Single-Session Assistant (56)Assistant-stated facts from one conversation
Single-Session Preference (30)User preferences mentioned in passing

Important Disclaimer

How we ran this benchmark: For this evaluation, we fed the maximum possible conversation history in a single message — that's how competitors in this space (Supermemory, Mastra, etc.) are running their benchmarks too, so we kept it apples-to-apples.

What real-world usage looks like: In practice, each message in a LongMemEval haystack session would be its own separate Backboard message — the way actual users interact in a real app. We're currently running the benchmark this way and will share those results as soon as they're ready. We're optimistic about it!

Running It Yourself

Setup

git clone <repo-url>
cd <repo>
python -m venv .venv
source .venv/bin/activate
pip install -e .

# Get the LongMemEval evaluation code
git clone https://github.com/xiaowu0162/LongMemEval.git LongMemEval
pip install -r LongMemEval/requirements-lite.txt

# Download datasets
huggingface-cli download xiaowu0162/longmemeval-cleaned \
    --local-dir data --include "*.json"

# Configure API keys
cp .env.sample .env
# Add your BACKBOARD_API_KEY and OPENAI_API_KEY

Run the Benchmark

# Quick test with a single question
python scripts/run_backboard_benchmark.py --id e47becba --evaluate

# Run a subset
python scripts/run_backboard_benchmark.py --limit 50 --evaluate

# Full benchmark (all 500 questions)
python scripts/run_backboard_benchmark.py --evaluate

Evaluate with Different LLM Judges

# Direct OpenAI evaluation
python scripts/evaluate_run.py --run-id knowledge-update --eval-model gpt-4

# Via Backboard (any provider)
python scripts/evaluate_run.py --run-id knowledge-update \
    --eval-provider openrouter --eval-model google/gemini-3-pro-preview

Generate Reports

# Multi-evaluator comparison report
python scripts/generate_report.py --multi-eval --output reports/comparison.html

Project Structure

├── src/                    # Core source code
│   ├── backboard_client.py     # Backboard API client
│   ├── backboard_runner.py     # Benchmark runner
│   ├── dataset_loader.py       # Dataset loading
│   └── config.py               # Configuration
├── scripts/                # CLI scripts
│   ├── run_backboard_benchmark.py
│   ├── evaluate_run.py
│   └── generate_report.py
├── data/                   # LongMemEval datasets (gitignored)
├── runs/                   # Benchmark results
│   ├── consolidated_results.json
│   ├── knowledge-update/
│   ├── multi-session/
│   ├── single-session-assistant/
│   ├── single-session-preference/
│   ├── single-session-user/
│   └── temporal-reasoning-report/
└── reports/                # Generated HTML reports

Requirements

  • Python 3.10+
  • Backboard API key
  • OpenAI API key (for LLM judge evaluation)