V 0.1.0 first release
SMRITI is a zero-infrastructure, local-first memory layer for AI agents.
One SQLite file. No Postgres, Neo4j, Docker, or cloud account — stdlib + numpy
is the entire dependency surface.
Why it's different (and tested)
- One line to run, nothing to stand up.
pip install -e .→ a working memory
layer in a single file. Offline test suite (33 tests) and the quickstart run with
no network and no API keys. - Nothing silently lost. Updates supersede rather than delete — the old fact is
kept and marked past — so you can answer "what's true now" and "what was true then,"
and accuracy doesn't decay as sessions accumulate. - Cheap by design. Lite mode does zero LLM calls at write time; budget-capped
context keeps per-query cost in fractions of a cent. Runs well on small models. - Predictable at scale. Measured: ~42k rows/s ingest, single-digit-ms queries to
~12k memories, correct retrieval to 300k+ rows. - Drop-in MCP server.
smriti-mcpgives any MCP agent (Claude Code, Cursor, …)
persistent, auditable memory — six typed tools, offline by default, security-hardened.
What's inside
Bi-temporal store with supersession · four-channel hybrid retrieval (BM25 + vectors +
entity-hop + temporal, RRF-fused) · LLM extraction & write-time consolidation ·
observation/digest layer with a per-type router (recall for aggregation, precision for
current-state) · MCP server · LongMemEval + LoCoMo benchmark harness with one-command A/B.
Honest framing — bring your own benchmark
We don't publish a self-graded headline. SMRITI ships the harness so you generate the
number that matters on your own data, with your own judge: bash bench/ab.sh. In our
within-system A/Bs the per-type router lifts multi-session aggregation ~10 pts (p<0.05)
with no regression on knowledge-update — verify it on your workload.
Next (post-ship)
Entity canonicalization · optional sqlite-vec ANN backend for scale · full
longmemeval_s + LoCoMo numbers · recursive-CTE traversal · production hardening.
Apache-2.0. Everything included — no gated tiers.