pub struct AutoMemory {
pub entries: Vec<MemoryEntry>,
pub config: MemoryConfig,
pub max_entries: usize,
pub min_importance: f64,
pub enabled: bool,
/* private fields */
}Expand description
Manager for automatic memory accumulation.
Fields§
§entries: Vec<MemoryEntry>All memory entries.
config: MemoryConfigConfiguration for memory management.
max_entries: usizeLegacy fields for backward compatibility (deprecated).
min_importance: f64§enabled: boolImplementations§
Source§impl AutoMemory
impl AutoMemory
Sourcepub fn rebuild_index(&mut self)
pub fn rebuild_index(&mut self)
Rebuild search index.
Sourcepub fn with_config(config: MemoryConfig) -> Self
pub fn with_config(config: MemoryConfig) -> Self
Create with custom configuration.
Sourcepub fn add(&mut self, entry: MemoryEntry)
pub fn add(&mut self, entry: MemoryEntry)
Add a new memory entry.
Sourcepub fn add_memory(
&mut self,
category: MemoryCategory,
content: String,
source_session: Option<String>,
)
pub fn add_memory( &mut self, category: MemoryCategory, content: String, source_session: Option<String>, )
Add memory from detected content.
Sourcepub fn has_similar(&self, content: &str) -> bool
pub fn has_similar(&self, content: &str) -> bool
Check if similar content already exists.
Sourcepub fn calculate_similarity(a: &str, b: &str) -> f64
pub fn calculate_similarity(a: &str, b: &str) -> f64
Calculate word-based similarity between two strings.
Sourcepub fn smart_merge(&mut self) -> usize
pub fn smart_merge(&mut self) -> usize
Smart merge of similar memories.
Sourcepub fn by_category(&self, category: MemoryCategory) -> Vec<&MemoryEntry>
pub fn by_category(&self, category: MemoryCategory) -> Vec<&MemoryEntry>
Get entries by category.
Sourcepub fn by_category_fast(
&mut self,
category: MemoryCategory,
) -> Vec<&MemoryEntry>
pub fn by_category_fast( &mut self, category: MemoryCategory, ) -> Vec<&MemoryEntry>
Get entries by category using index.
Sourcepub fn top_n(&self, n: usize) -> Vec<&MemoryEntry>
pub fn top_n(&self, n: usize) -> Vec<&MemoryEntry>
Get top N most important entries.
Sourcepub fn top_n_fast(&mut self, n: usize) -> Vec<&MemoryEntry>
pub fn top_n_fast(&mut self, n: usize) -> Vec<&MemoryEntry>
Get top N using index.
Sourcepub fn search(&self, query: &str) -> Vec<&MemoryEntry>
pub fn search(&self, query: &str) -> Vec<&MemoryEntry>
Search entries by content or tags.
Sourcepub fn search_with_limit(
&self,
query: &str,
limit: Option<usize>,
) -> Vec<&MemoryEntry>
pub fn search_with_limit( &self, query: &str, limit: Option<usize>, ) -> Vec<&MemoryEntry>
Search entries with result limit.
Sourcepub fn search_fast(
&mut self,
query: &str,
limit: Option<usize>,
) -> Vec<&MemoryEntry>
pub fn search_fast( &mut self, query: &str, limit: Option<usize>, ) -> Vec<&MemoryEntry>
Search using index.
Sourcepub fn search_multi(&self, keywords: &[&str]) -> Vec<&MemoryEntry>
pub fn search_multi(&self, keywords: &[&str]) -> Vec<&MemoryEntry>
Multi-keyword search.
Sourcepub fn search_multi_fast(&mut self, keywords: &[&str]) -> Vec<&MemoryEntry>
pub fn search_multi_fast(&mut self, keywords: &[&str]) -> Vec<&MemoryEntry>
Multi-keyword search using index.
Sourcepub fn add_batch(&mut self, entries: Vec<MemoryEntry>)
pub fn add_batch(&mut self, entries: Vec<MemoryEntry>)
Batch add multiple entries.
Sourcepub fn update_references(&mut self, messages: &[Message])
pub fn update_references(&mut self, messages: &[Message])
Mark entries as referenced.
Sourcepub fn generate_prompt_summary(&self, max_entries: usize) -> String
pub fn generate_prompt_summary(&self, max_entries: usize) -> String
Generate summary for system prompt.
Sourcepub fn generate_contextual_summary(
&self,
context: &str,
max_entries: usize,
) -> String
pub fn generate_contextual_summary( &self, context: &str, max_entries: usize, ) -> String
Generate context-aware summary.
Sourcepub fn generate_contextual_summary_with_keywords(
&self,
context_keywords: &[String],
max_entries: usize,
) -> String
pub fn generate_contextual_summary_with_keywords( &self, context_keywords: &[String], max_entries: usize, ) -> String
Generate context-aware summary with pre-extracted keywords.
Sourcepub fn update_retrieval_stats(&mut self, retrieved_ids: &[String])
pub fn update_retrieval_stats(&mut self, retrieved_ids: &[String])
Update reference statistics.
Sourcepub fn get_retrieval_ids(
&self,
context_keywords: &[String],
max_entries: usize,
) -> Vec<String>
pub fn get_retrieval_ids( &self, context_keywords: &[String], max_entries: usize, ) -> Vec<String>
Get IDs of entries for retrieval.
Sourcepub async fn generate_contextual_summary_async(
&self,
context: &str,
max_entries: usize,
fast_provider: Option<&dyn Provider>,
) -> String
pub async fn generate_contextual_summary_async( &self, context: &str, max_entries: usize, fast_provider: Option<&dyn Provider>, ) -> String
Generate context-aware summary async with AI keyword extraction.
Sourcepub fn format_all(&self) -> String
pub fn format_all(&self) -> String
Format all entries for display.
Sourcepub fn generate_statistics(&self) -> MemoryStatistics
pub fn generate_statistics(&self) -> MemoryStatistics
Generate statistics summary.
Sourcepub fn apply_time_decay(&mut self)
pub fn apply_time_decay(&mut self)
Apply time decay to memory importance.
Trait Implementations§
Source§impl Clone for AutoMemory
impl Clone for AutoMemory
Source§fn clone(&self) -> AutoMemory
fn clone(&self) -> AutoMemory
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more