Skip to main content

lc_memory/
lib.rs

1#![warn(missing_docs)]
2// lc-memory/src/lib.rs
3//! Memory system for conversation history management.
4//!
5//! Provides conversation memory management functionality.
6//!
7//! # Core Concepts
8//!
9//! - **BaseMemory**: Base trait for memory.
10//! - **ConversationBufferMemory**: Simple conversation buffer.
11//! - **ConversationBufferWindowMemory**: Conversation buffer with window.
12//! - **ConversationSummaryMemory**: LLM-based summary compression.
13//! - **ConversationSummaryBufferMemory**: Hybrid compression (summary + recent messages).
14//! - **PersistentMemory**: Trait for persistent memory storage.
15//! - **ContextWindow**: Fits messages within a token budget.
16//!
17//! # Feature Flags
18//!
19//! - `mongodb-persistence` — Enables `MongoPersistentMemory` (MongoDB-backed persistent memory).
20//! - `vectorstore-memory` — Enables `VectorStoreRetrieverMemory` (vector-store-backed memory).
21
22pub mod base;
23pub mod buffer;
24pub mod context_window;
25pub mod decay;
26pub mod file_memory;
27pub mod persistent;
28pub mod semantic;
29pub mod summary;
30pub mod summary_buffer;
31pub mod window;
32pub mod with_history;
33
34#[cfg(feature = "vectorstore-memory")]
35pub mod vectorstore_memory;
36
37#[cfg(feature = "mongodb-persistence")]
38pub mod mongo_memory;
39
40#[cfg(test)]
41mod test_support;
42
43pub use base::{
44    memory_variables_to_messages, BaseChatMemory, BaseMemory, ChatMessageHistory, MemoryError,
45};
46pub use buffer::ConversationBufferMemory;
47pub use context_window::{ContextWindow, Strategy};
48pub use decay::{ForgetConfig, ForgettingMemory};
49pub use file_memory::{FileMemoryError, FileMemoryStore, MemoryEntry};
50pub use persistent::{MemoryData, PersistenceConfig, PersistentMemory};
51pub use semantic::{
52    DecayWeights, LexicalScorer, LongTermMemory, MemoryExtractor, MemoryHit, MemoryItem,
53    MemoryQuery, MemoryStore, MemoryTier, PromotionPolicy, SemanticScorer, ShortTermMemory,
54    StoredMemory, TwoTierMemory,
55};
56pub use summary::ConversationSummaryMemory;
57pub use summary_buffer::ConversationSummaryBufferMemory;
58pub use window::ConversationBufferWindowMemory;
59pub use with_history::{RunnableWithMessageHistory, SharedMemory};
60
61#[cfg(feature = "vectorstore-memory")]
62pub use vectorstore_memory::VectorStoreRetrieverMemory;
63
64#[cfg(feature = "mongodb-persistence")]
65pub use mongo_memory::MongoPersistentMemory;