LLM Long-Term Memory SQLite + FTS5 · MIT

Temporal memory, not a pile of facts

An agent should remember facts—and know which ones stopped being true.

Update facts, recover exact details from raw conversation, and explain every selection and rejection.

Open the live engine

Instant guided tour

See one memory change end to end

curated scenario · browser-local

This is an explicitly labelled interactive walkthrough.

01

02

03

held-out accuracy
median context tokens
recovered by the raw archive
automated tests

Live engine

Run supersession and retrieval on the real service

real SQLite · real ONNX retrieval

The public service calls no model provider.

Connecting to the live engine… encoder
01

Conversation

Choose a scenario when the engine is ready.

02

Memory delta

03

Result and reason

Developer mode: edit structured events, raw turns, and queries
Write a structured fact
Raw archive and query

Last API request and response
nothing yet

Why it works this way

Three boundaries matter more than a feature list

Only explicit replacements close old values

Ambiguity is preserved, not guessed away.

Compression is lossy, so raw turns remain

Exact artifacts remain recoverable from raw turns.

Rejection must be explainable

Selected and rejected candidates both carry reasons.

Evidence and limits

Read the numbers with their constraints

The held-out number is a frozen single shot, not an unseen-set margin over a baseline.

For developers

A local-first memory layer agents can call

REST API

Write, search, timeline, evidence, raw fallback, and capability manifest.

MCP Server

Every tool requires an explicit user_id.

SQLite + FTS5

Single-file raw and structured memory.

Reproducible

Configuration, source, outputs, and audit evidence are fingerprinted.

View source, design decisions, and experiment records →