The engine, in one line.
A bitemporal graph and vector store where every fact knows when it was true, when you learned it, where it came from, and how sure you are.
One embeddable Rust engine — no daemon, no socket — with two parallel read/write surfaces over a single storage layer, plus an agentic loop layered on top. Subject–predicate–object facts carry full bitemporal validity and provenance; semantic, symbolic, relational, and temporal recall fuse into one answer. The same store powers every surface below.
Four surfaces. One store.
Pick the altitude your work needs. A high-level fact API for triples, a Datomic-style datom API for explicit schema, a durable agent kernel for resumable runs, and an MCP server so any LLM can use the engine as a tool. Every surface writes and reads the same facts.
Subject/predicate/object triples with valid_from, valid_until, confidence, and source. Asserting a contradicting fact atomically closes the old one and opens the new. as_of(t) returns a view over historical world-state.
Datomic-style [entity, attr, value, tx, op] tuples with explicit schema — cardinality and value types you control. A single-writer transactor commits batches; the graph reads them with time-travel, walks edges, and lints for orphans, dangling refs, and contradictions.
A resumable agentic loop over the stores above. Spec → Run → Step, each persisted as one transaction batch and replayable from the log. A budget governor and optional verifier close the run; approval-gated steps park it until you say go.
The engine exposed to any LLM as Model Context Protocol tools. Seven outcome-oriented, namespace-scoped tools over JSON-RPC 2.0 — speak it over stdio or POST /mcp. Tools return bounded, provenance-rich projections, never raw embeddings.
What makes it a memory, not a store.
Four properties are baked into the engine at write time. They are why an agent can trust what it reads back — and know when not to.
Every fact carries valid time and transaction time. as_of reconstructs exactly what you believed at any moment — including what you have since corrected.
Provenance travels with the data. Every fact records where it came from and a score from 0.00 to 1.00. Below your threshold it lands as a candidate and the agent abstains instead of guessing.
Assert a contradicting fact and the engine closes the old one as Superseded and opens the new one in a single atomic batch. Set-valued predicates coexist when you ask them to.
One build_context call returns a confidence-ranked, deduped, source-cited packet inside your token budget. Stale facts collapse to the one current truth.
Why not just a vector store?
A vector index finds things that sound similar. That is one of four recall paths — and it answers what, never when or why. An agent's memory needs all three.
as_of reconstructs any past world-state.
One engine. Facts your agents can actually trust.
Bitemporal storage, hybrid recall, source-cited provenance, a durable agent kernel, and an MCP server — the whole platform over one store. Start building.