Skip to main content

lc_memory/
lib.rs

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