Skip to content
v3-alpha · Bitemporal memory engine

Remember what was true,when it was true.

A cognitive memory engine with bitemporal facts, episodic recall and hybrid retrieval over Postgres full-text (ts_rank_cd), dense vectors and a memory graph. One Postgres. No SaaS dependencies.

memory graphlive
factepisodeentitydecision
2time axes — valid + transaction
7stages in the recall pipeline
10primitives — facts, decisions, episodes, entities, tasks, events & more
1Postgres · zero third-party

Anatomy of the engine

Lay it down. Pull it back.

Mnemosyne splits in two by design: how memory is written down, and how it is recalled. Each half is independently inspectable, testable and replaceable.

Storage layer

Lay it down.

Ten typed primitives — facts, decisions, episodes, entities, tasks, events and more — each with a schema, each with bitemporal timestamps. Postgres-native, RLS-enforced isolation. No bolted-on key-value store, no orphan embeddings.

  • Bitemporal facts: valid-time + transaction-time on every row
  • Episodes — conversations as structured units, not text chunks
  • Entities and decisions, graph-linked from day one
  • Tenant isolation enforced by RLS, not by WHERE clauses
Open source · Apache 2.0Read the concepts

Recall layer

Pull it back.

A seven-stage pipeline that merges Postgres full-text, dense vectors and graph traversal, reranks the candidates, filters by tenant and time, and returns cited results — in one round-trip.

  • Hybrid retrieval: full-text + dense + graph in one query
  • Cross-encoder rerank with feedback signal
  • Bitemporal filters — "as of last Tuesday" is one parameter
  • Cited results: every claim traces back to a source fact
Open source · Apache 2.0See the pipeline
dockerPostgresa memory engine on your machine

One container. Bitemporal memory, on.

$

Postgres comes bundled. Boot in under a minute. No paywall, no rate limit, no "contact sales".

A vector store isn’t a memory engine

Bag of embeddings on one side. An engine on the other.

Vector search retrieves text that looks similar. A memory engine knows what was true, when it was true, who told it, and how to recall it under three retrieval strategies at once.

A vector store

A flat bag of embeddings.

No tense. No structure. No audit.

Mnemosyne
FTS
dense
graph

Hybrid recall + rerank.

Bitemporal. Cited. Tenant-scoped.

Memory has tense.

Every fact carries two timestamps: when it was true in the world, and when the engine learned it. Replay yesterday’s state, audit drift, roll back a bad ingest — without rebuilding the index.

Episodes, not chunks.

A conversation isn’t a wall of text. Mnemosyne stores it as an episode with participants, decisions and outcomes — recallable as structured units, not just nearest-neighbour fragments.

Recall is a pipeline.

Postgres full-text, dense vectors and graph traversal merge through a reranker that knows which tier to weight. Seven stages. One round-trip. Cited results, every time.