pub trait MemoryManager: Send + Sync {
// Required methods
fn recall_memories<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session: &'life1 mut Session,
config: &'life2 AgentLoopConfig,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn maybe_compress<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'async_trait>(
&'life0 self,
session: &'life1 mut Session,
config: &'life2 AgentLoopConfig,
phase: &'life3 str,
session_id: &'life4 str,
model_name: &'life5 str,
tool_schemas: &'life6 [ToolSchema],
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait;
}Expand description
Manages external memory recall, compression, and summarization.
Required Methods§
Sourcefn recall_memories<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session: &'life1 mut Session,
config: &'life2 AgentLoopConfig,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn recall_memories<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session: &'life1 mut Session,
config: &'life2 AgentLoopConfig,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Recall relevant memories for the current context.
Returns true if any memories were injected.
Sourcefn maybe_compress<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'async_trait>(
&'life0 self,
session: &'life1 mut Session,
config: &'life2 AgentLoopConfig,
phase: &'life3 str,
session_id: &'life4 str,
model_name: &'life5 str,
tool_schemas: &'life6 [ToolSchema],
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
fn maybe_compress<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'async_trait>(
&'life0 self,
session: &'life1 mut Session,
config: &'life2 AgentLoopConfig,
phase: &'life3 str,
session_id: &'life4 str,
model_name: &'life5 str,
tool_schemas: &'life6 [ToolSchema],
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
Check if compression should be applied and apply it.
Returns true if compression was performed.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".