Skip to main content

The neutral benchmark harness for AI memory systems. Run LongMemEval, LOCOMO, and more against any memory system.

Project description

Bench'd Harness

The neutral benchmark harness for AI memory systems. Every score is independently run, cryptographically signed, and verifiable by anyone.

Leaderboard | Docs | Methodology | Submit Results

Quick Start

pip install benchd-harness

# Generate signing keys
benchd keys generate --out ./keys

# Set your LLM API key (for the judge)
export OPENROUTER_API_KEY=sk-or-...

# Run LongMemEval against your MCP-compatible memory system
benchd run -a mcp -b longmemeval-v1 --judge --key ./keys/private.key \
  --adapter-config '{"endpoint": "http://localhost:3000/mcp"}'

# Submit results to the leaderboard
benchd submit ./runs/run_xxx/manifest.signed.json

MCP Systems: Zero-Code Testing

If your memory system exposes an MCP server with ingest and query tools, you don't need to write any adapter code:

benchd run -a mcp -b longmemeval-v1 --judge \
  --adapter-config '{"endpoint": "http://localhost:3000/mcp"}'

The MCP adapter auto-discovers your tools and maps them to Bench'd's interface.

Available Benchmarks

Benchmark Slug Questions What it tests
LongMemEval longmemeval-v1 500 Recall, temporal reasoning, knowledge updates
LoCoMo locomo-v1 1,540 Multi-session conversational memory
Smoke smoke-memory-v0 10 Quick sanity check

Built-in Adapters

Adapter System Install
mcp Any MCP server Built-in
mem0-local Mem0 OSS pip install benchd-harness[mem0]
langchain-memory LangChain pip install benchd-harness[langchain]
llamaindex-memory LlamaIndex pip install benchd-harness[llamaindex]
llm-baseline Raw LLM (no memory) pip install openai
echo Test adapter Built-in

Writing a Custom Adapter

from benchd_harness.adapters.base import BaseAdapter

class MyAdapter(BaseAdapter):
    @property
    def name(self) -> str:
        return "my-system"

    def setup(self) -> None:
        self.client = MyMemoryClient()

    def ingest(self, turns: list[dict]) -> None:
        for turn in turns:
            self.client.add(role=turn["role"], content=turn["content"])

    def recall(self, query: str) -> str:
        return self.client.search(query).text

    def reset(self) -> None:
        self.client.clear()

Register in benchd_harness/adapters/__init__.py and run with benchd run -a my-system.

Commands

Command Description
benchd run Run a benchmark against a memory system
benchd submit Submit signed results to benchd.ai
benchd verify Verify a signed manifest
benchd keys generate Generate Ed25519 signing keys
benchd list List available adapters and benchmarks

Signing & Verification

Every run produces an Ed25519-signed manifest containing all inputs, outputs, scores, and failure traces. Anyone can verify:

benchd verify ./runs/run_xxx/manifest.signed.json

Current Results (May 2026)

# System LongMemEval Status
1 LlamaIndex 59.0% Verified
1 LangChain 59.0% Verified
3 LLM Baseline 57.6% Verified
4 Mem0 OSS 32.4% Verified

Full results at benchd.ai/leaderboard.

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

benchd_harness-0.2.0.tar.gz (67.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

benchd_harness-0.2.0-py3-none-any.whl (87.5 kB view details)

Uploaded Python 3

File details

Details for the file benchd_harness-0.2.0.tar.gz.

File metadata

  • Download URL: benchd_harness-0.2.0.tar.gz
  • Upload date:
  • Size: 67.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for benchd_harness-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9c8b988d36a11825c1330de7b105a96fa583dff2e20e8dc0e05b8244e536f23e
MD5 02c13dcb67ea845a093e6df3155d6e71
BLAKE2b-256 947435099771caffe572c93f1165e191589216d8f598c56e3dee10b3e74cfb35

See more details on using hashes here.

File details

Details for the file benchd_harness-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: benchd_harness-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 87.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for benchd_harness-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ab3738968df77891fa3276549add62c6494dfe70c1a6abe1aee2d2e301707eb7
MD5 2a17ba7084cda4183c732c153e134106
BLAKE2b-256 faaab7a39a72e9d86bc4e0475a24de1ca7e14968f3a3acbc3a8fc492279f85f5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page