Skip to content
open agent-memory showcase · by Memseek

MemBukkit

Open long-term memory you can trust.

A small, inspectable library + CLI + GUI for dated facts, as-of answers, supersession, budgeted search, and clickable receipts. It is where we demonstrate the agent-memory method and publish the recipes behind our SOTA results.

Simulation · example walkthrough. The personal-assistant scenario and memory records below are seeded examples, not customer data. The library, code, and benchmark harness are real and runnable; the depicted history is illustrative.

Apache-2.0 · Python 3.10+ · runs locally

personal-assistant / asktrace on

How much is my rent?

answer · as of 2024-06-01 €950 per month.
current

Landlord raised rent to €950 from June.

2024-04-02 · turn 18
superseded

Monthly rent is €800.

2024-01-08 · turn 4
3 buckets opened30% scan budget2 citations
00 · the problem

Your rent was €800. In June it becomes €950. What should the assistant say in May?

Both answers are right — but only on the right date. Most memory keeps one value and overwrites it, so asking in May returns June’s number, the €800 figure is gone, and there is no way to show what changed or when anyone learned it.

the usual options

Overwrite the value, or keep both and hope.

  • Overwrite it, and “what was my rent in May?” has no answer.
  • Keep both undated, and the newest text wins before it is true.
  • No receipt. You cannot see the turn the number came from.
with membukkit

Date the facts, and answer as of a date.

  • Each fact carries the dates it is true for.
  • A replacement points at what it replaces, instead of deleting it.
  • Every answer arrives with a receipt.
  1. january

    Your landlord mentions the rent. It becomes one small dated fact.

    “Monthly rent is €800.”
  2. april

    A change is announced now, but it does not start until June.

    “The landlord is raising the rent to €950 from June.” Memory records both when it heard this and when it becomes true.
  3. ask twice

    The same question, two dates, two correct answers.

    as of 15 May → €800 per month  ·  as of 1 June → €950 per month The €800 fact is still there, marked as replaced, and still openable.
  4. what you get back

    Every answer comes with a short receipt of how it was found.

    answer:   €950 per month
    cites:    turn 18, turn 4
    receipt:  3 buckets opened · 30% of memory read
One question, two correct answersThe date in the question decides which fact is valid.
Nothing is deleted€800 is still on file, marked superseded, and still openable.
A receipt every timeWhich turns were cited, and how much of memory had to be read.

New here? MemBukkit is the open, code-first project where this memory method is demonstrated and benchmarked. Memseek is the context engine built on the same method for production agents — this page is the small, runnable half — what a context engine is.

the words the rest of this page usesplain english
dated fact
One small claim plus the dates it is true for.
as-of query
Asking what was true on a particular date, not only what is true now.
supersession
A new fact naming the older one it replaces, instead of erasing it.
receipt
The short record of how an answer was found: sources cited, buckets opened, budget used.
1
January · the first fact

The conversation becomes an atomic, dated claim.

The demo records “Monthly rent is €800” with the source turn and the time from which the claim is valid. Atomic facts are useful here because later evidence can replace one value without rewriting unrelated memory.

# conceptual record projection
fact: Monthly rent is €800
valid_from: 2024-01-08
source: conversation / turn 4
status: current
valid_from

Makes “what was true then?” different from “what is true now?”

source

Keeps the answer openable back to the exact conversation turn.

writes now

One active rent fact. No future value is inferred.

2
April · a future change arrives

The new amount supersedes the old claim from June onward.

The landlord’s April message says the rent rises to €950 in June. Memory must distinguish when the statement was observed from when the new value becomes true.

# conceptual record projection
fact: Monthly rent is €950
observed_at: 2024-04-02
valid_from: 2024-06-01
source: conversation / turn 18
supersedes: rent-800
observed_at

Records when the system learned about the change.

valid_from

Prevents the April message from making the May answer prematurely become €950.

supersedes

Links the replacement to the older claim without deleting it.

writes next

One future-effective €950 fact plus a supersession edge to the €800 fact. Both sources remain inspectable.

3
the as-of question

The query date chooses the valid claim; the receipt explains the search.

For May, the €800 interval is still valid. For June, the superseding €950 claim wins. The response includes the evidence turns plus the buckets opened and scan budget used to find them.

turn 4 · learned January

Monthly rent is €800.

valid
from 2024-01-08
turn 18 · learned April

Rent becomes €950 from June.

valid
from 2024-06-01
replaces
the €800 fact
as-of query
select valid fact
ask · 2024-05-15

€800 per month.

cites turn 4
ask · 2024-06-01

€950 per month.

cites turn 18 and preserves turn 4 as superseded history

Visible effect: one question produces two correct answers because the query date changes which fact is valid.

# conceptual query receipt
question: How much is my rent?
as_of: 2024-06-01
answer: €950 per month
evidence: [turn 18, turn 4]
receipt:
  buckets_opened: 3
  scan_budget: 30%
as_of

Evaluates fact validity at the requested time rather than flattening the timeline.

evidence

Shows the winning claim and the history needed to explain what changed.

receipt

Makes the bounded retrieval path inspectable, including what memory was not scanned.

final state

No memory is written by the question. The read returns a dated answer and an explainability receipt.

Continue into the full memory method →
how they fit together

MemBukkit demonstrates the memory. Memseek delivers the context engine.

context engine

Memseek

The broader context engine for production agents: search, maintained state, provenance, policies, connectors, and prompt-time context assembly.

What a context engine is →
shared method SOTA search coming to hosted Memseek
demonstrated in MemBukkit
open showcase

MemBukkit

The focused agent-memory project: a library, CLI, explainability GUI, demos, and the public benchmark harness you can run yourself.

Read the MemBukkit docs →
what the showcase proves

Memory should explain itself.

A vector match is not enough when facts change. MemBukkit keeps both the current answer and the history required to verify it.

01

Dated facts

Turn conversations and documents into atomic facts with dates and source references.

02

As-of answers

Ask what was true on a particular date instead of flattening old and new facts together.

03

Supersession

Mark what changed without silently deleting the history needed to explain the answer.

04

Receipts

See the scan budget, buckets opened, evidence used, and source turn behind a result.

search path

Topic buckets → scan budget → hybrid ranking → evidence

The method partitions memory, routes each question into the most useful region, and ranks within that bounded scan. MemBukkit makes each step inspectable; Memseek offers this search inside the full context engine.

See the method and eval →
public benchmark · official judge

92.6% on LongMemEval-S.
When LongMemEval judges, MemBukkit leads.

Higher reported numbers use a different judge. MemBukkit uses LongMemEval’s official gpt-4o judge and publishes the frozen recipe behind the result.

Answer accuracy

published best claims
OMEGA + GPT-4.1same model answers + grades
95.4%
Mem0 Cloud + GPT-5author's GPT-5 judge
94.4%
MemBukkit + gpt-5.4official gpt-4o judge
92.6%
Hindsightofficial prompts · judge model swapped
91.4%
Mem0 OSSauthor's GPT-5 judge
91.0%
Supermemoryofficial gpt-4o judge
85.2%
Zepofficial gpt-4o judge
71.2%
Full-context readingno memory system · official judge
60.2%

LongMemEval-S · 500 questions. Solid bars use the benchmark’s official gpt-4o judge. Patterned bars use another judge and are context, not like-for-like rankings. See who judged what ↗

Accuracy vs. cost per answer

better and cheaper ↖
MemBukkit · official judge others · official judge alternate judge

Query-time model list-price floors on measured answer context; write-time distillation and hidden reasoning tokens are excluded. Sources and protocol →

+25.6 pts over paired full context

82.0% vs 56.4% with the same reader, official judge, and ingestion.

~32× less answer context

~3.2k tokens read per question instead of roughly 100k.

1.3% without receipt-named buckets

Accuracy falls from 80.0%; excluding a matched random set leaves 82.3%.

try the showcase

See the distinction in one demo.

Run the personal-assistant demo, ask about rent in May and June, and inspect why the answer changes. The same local store powers the CLI and GUI.

First use needs an API key (or a local LLM), downloads model weights, and distills the bundled demo once. Later opens reuse the local store.

terminal
# clone and install
$ git clone https://github.com/memseekai/membukkit
$ cd membukkit
$ pip install -e ".[all]"
$ export OPENAI_API_KEY=sk-...

# open the explainability GUI with a bundled story
$ membukkit ui --demo personal-assistant

# or reproduce a low-cost benchmark smoke test
$ membukkit bench --repro longmemeval-gpt4o-mini --lite
where to go next

Explore with MemBukkit. Ship with Memseek.

Want to inspect agent memory, run a demo, or verify the benchmarks? Start with MemBukkit. Want the search method inside a governed context layer? Start with Memseek.