Expand description
cel-memory — the durable cross-turn memory contract for AI agents.
This crate answers one question: what should persist across turns? It
owns the memory contract — the MemoryProvider trait plus the value
types every backend and caller share (chunks, sessions, queries, retrieval
profiles, caller scopes, write hooks, summaries, rollups, aging, export).
Storage backends implement the trait; callers depend only on it.
The crate is deliberately narrow. It does not observe live environment
state and it does not assemble per-turn LLM prompts. cel-memory owns
persistence only.
BasicMemoryProvider is the in-crate reference implementation — real
bodies for MemoryProvider::retrieve, MemoryProvider::write, session
lifecycle, export, stats, summarization, rollups, and re-embed metadata
updates when a Summarizer is attached; no-ops for
MemoryProvider::update_importance and MemoryProvider::supersede.
A full storage backend (e.g. cel-memory-sqlite)
implements the same trait in a separate crate — see
BACKENDS.md.
Re-exports§
pub use basic::BasicMemoryProvider;pub use chunk::ChunkKind;pub use chunk::ChunkSource;pub use chunk::MemoryChunk;pub use chunk::MemoryTier;pub use chunk::NewMemoryChunk;pub use conformance::assert_retrieve_finds_written;pub use conformance::assert_session_lifecycle;pub use conformance::assert_summarize_session_roundtrip;pub use conformance::assert_write_get_stats;pub use embedder::Embedder;pub use embedder::EmbedderError;pub use embedder::EmbedderResult;pub use embedder::MockEmbedder;pub use error::MemoryError;pub use error::Result;pub use importance::score as score_importance;pub use offdevice_hook::ClosureOffdeviceHook;pub use offdevice_hook::OffdeviceCallDescriptor;pub use offdevice_hook::OffdeviceCallHook;pub use offdevice_hook::OffdeviceDecision;pub use ops::AccessEntry;pub use ops::AgingReport;pub use ops::EvictionEntry;pub use ops::EvictionReason;pub use ops::ExportBundle;pub use ops::ExportFilter;pub use ops::MemoryStats;pub use ops::PurgeReport;pub use ops::ReEmbedReport;pub use provider::MemoryProvider;pub use query::CallerScope;pub use query::MemoryPredicate;pub use query::MemoryQuery;pub use query::RetrievalProfile;pub use session::MemorySession;pub use session::NewMemorySession;pub use session::SessionFilter;pub use session::SessionOutcome;pub use summarizer::MockSummarizer;pub use summarizer::MockSummaryCall;pub use summarizer::Summarizer;pub use summarizer::SummarizerError;pub use summarizer::SummarizerResult;pub use summarizer::SummaryContext;pub use write_hook::ClosureHook;pub use write_hook::MemoryWriteHook;pub use write_hook::WriteDecision;
Modules§
- basic
BasicMemoryProvider— the v1 backing implementation.- chunk
- Memory chunk — the primary persisted unit.
- conformance
- Shared behavioral checks for
MemoryProviderimplementations. - embedder
- Embedder trait and reference implementations.
- error
- Memory subsystem error type.
- importance
- Importance scoring for memory chunks.
- offdevice_
hook - The
OffdeviceCallHooktrait — the off-device call governance seam. - ops
- Operational types — eviction, access logging, export bundles, reports.
- provider
- The
MemoryProvidertrait — the durable cross-turn memory contract. - query
- Query, profile, scope, and predicate types.
- session
- Memory session — a coherent unit of work.
- summarizer
- Summarizer trait and supporting types.
- write_
hook - The
MemoryWriteHooktrait — per-write governance for memory backends.