cloud-hosted, multi-tenant, MIT licensed

Give your chatbot memory
across sessions.

A FastAPI service that stores conversational facts and hands back relevant context, so an agent can appear to remember a user without you building the plumbing yourself.

LoCoMo benchmark, full dataset

The real number, all ten conversations.

10/10 LoCoMo conversations run, official dataset
1,986 questions scored, no subset shortcuts
0.166 F1, strict word-overlap scoring

That's the official, harsh unigram-overlap F1 the LoCoMo paper itself uses, not a lenient LLM-judge score. The README's full writeup includes the two experiments that made the number worse before the one that actually moved it, and a ranking bug the benchmark itself found and that's now fixed in code. Nothing here is dressed up.

four stores, each doing one job

Not a framework. Four boring, well-chosen pieces.

Multi-tenancy resolved server-side from a hashed API key, one pooled collection with payload-filter isolation, an audit log on every access. Cloud-first by design, not a deployment detail bolted on later.

Qdrant

Semantic memory. Every fact embedded locally, cosine similarity, one pooled collection across tenants.

Redis

Working memory: last 10 turns, retrieval-frequency counters, a short-lived semantic query cache.

Neo4j

Entities and LLM-extracted relationships, powering one-hop graph expansion at recall time.

Postgres

The control plane: tenants, API keys, audit log. Survived the move off a sqlite file that couldn't handle a second replica.

verified live, not just by reading the code

Tested against a running instance.

Memory systems are the textbook case for prompt injection: anything a user says gets stored and replayed into every future prompt. Rather than just reasoning about it, these were run as real attacks against the live API.

Full write-up, including the one dependency finding that's documented but not yet patched, is in the README under Verified live and Known gaps.

setup

One command, real services.

# fill in AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY first cp .env.example .env docker compose up --build

Qdrant, Redis, Neo4j, and Postgres in one compose file. Register a tenant, write a memory, search for it, all documented in the README with copy-pasteable curl examples.