SQLite-backed local memory for AI agents. Implements
cel-memory's MemoryProvider trait with single-file storage,
FTS, and vector search through sqlite-vec.
Status: v0.2.0 on crates.io — implements the full MemoryProvider surface: writes, sessions, hybrid (vector + FTS + recency) retrieval fronted by a TTL+LRU cache, summarization and daily/rule-week rollups (via an injected summarizer), aging sweeps, export, stats, and bulk re-embed.
Use cel-memory-sqlite when you want a local, embeddable MemoryProvider
backend without running a separate database or vector service. It is designed
for agents, CLIs, desktop apps, local servers, and test harnesses that need
durable memory in one SQLite file.
SqliteMemoryProvider—MemoryProviderimpl backed by SQLite (one file, no separate process).Embedder/MockEmbedder— re-exported fromcel-memory(since 0.2.0).FastEmbedEmbedderbehind thefastembedfeature — local ONNX runtime +bge-small-en-v1.5(~130 MB model download).- Schema migrations for
memory_chunks,memory_vec(sqlite-vec virtual table),memory_fts(FTS5), sessions, access log, eviction log. sqlite-vecextension loaded at connection open; thememory_vecvirtual table is available without extra setup.
- Single SQLite file. One file to back up, encrypt, ship to compliance. No separate vector service, no second process to manage.
- Brute-force vector scan up to ~1M chunks per user.
sqlite-vecis fast on Apple Silicon (5–30 ms at typical personal-memory scale). HNSW is a drop-in upgrade whensqlite-vecships it. - Hybrid retrieval: vector + FTS + recency, weighted per
RetrievalProfile, fused with reciprocal-rank fusion and fronted by a short-TTL LRU cache. - Governance-first. Every write consults the optional
MemoryWriteHookfromcel-memory— a rule engine can redact or veto.
use std::sync::Arc;
use cel_memory_sqlite::{MockEmbedder, SqliteMemoryProvider};
let provider = SqliteMemoryProvider::open(
"memory.sqlite",
Arc::new(MockEmbedder::new()),
).await?;
// Use as cel_memory::MemoryProvider — same trait as BasicMemoryProvider.Run the complete example:
cargo run --example basicfastembed— enablesFastEmbedEmbedderfor local embeddings. Off by default to avoid the 130 MB model download in dev workflows.
Depends on cel-memory 0.2.0; import Embedder from cel_memory or keep
using the sqlite re-export. See the
0.2 migration guide.
Apache-2.0