pub struct EpisodicMemorySchema;Expand description
Marker struct for episodic agent memory tables (Phase 9).
Actual schema is enforced by column names in episodic_columns module.
An episodic memory table extends LlmContextSchema with recency and
importance signals, enabling hybrid scoring during recall:
-- From llm_columns::* (required baseline)
chunk_id: Utf8
chunk_text: Utf8
embedding: FixedSizeBinary(N) -- F16, cosine
-- From episodic_columns::* (Phase 9 extensions)
agent_id: Utf8 -- UUID string
session_id: Utf8 -- UUID string
created_at: Timestamp(ns, UTC) -- use ailake_core::now_ns()
recency_weight: Float32 -- exp(-λ * days_since_access), updated by MemoryDecayJob
access_count: UInt32 -- incremented on each recall() hit
last_accessed_at: Timestamp(ns, UTC) -- updated on recall, use ailake_core::now_ns()
importance_score: Float32 -- agent-assigned [0.0, 1.0]Hybrid scoring: after HNSW retrieval, re-rank results by
hybrid_score(distance, recency_weight, importance_score). Memories
that are semantically similar AND recently accessed AND flagged important
rank highest.
Recommended setup:
- One HNSW over
embedding(text, cosine, dim=1536). - Partition by
agent_idviaVectorStoragePolicyhidden partitioning. - Run
MemoryDecayJobdaily to updaterecency_weightvia compaction.
Auto Trait Implementations§
impl Freeze for EpisodicMemorySchema
impl RefUnwindSafe for EpisodicMemorySchema
impl Send for EpisodicMemorySchema
impl Sync for EpisodicMemorySchema
impl Unpin for EpisodicMemorySchema
impl UnsafeUnpin for EpisodicMemorySchema
impl UnwindSafe for EpisodicMemorySchema
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more