Skip to main content

Crate cel_memory

Crate cel_memory 

Source
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 MemoryProvider implementations.
embedder
Embedder trait and reference implementations.
error
Memory subsystem error type.
importance
Importance scoring for memory chunks.
offdevice_hook
The OffdeviceCallHook trait — the off-device call governance seam.
ops
Operational types — eviction, access logging, export bundles, reports.
provider
The MemoryProvider trait — 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 MemoryWriteHook trait — per-write governance for memory backends.