pub struct MemoryConfig {Show 34 fields
pub compression_guidelines: CompressionGuidelinesConfig,
pub sqlite_path: String,
pub history_limit: u32,
pub qdrant_url: String,
pub semantic: SemanticConfig,
pub summarization_threshold: usize,
pub context_budget_tokens: usize,
pub soft_compaction_threshold: f32,
pub hard_compaction_threshold: f32,
pub compaction_preserve_tail: usize,
pub compaction_cooldown_turns: u8,
pub auto_budget: bool,
pub prune_protect_tokens: usize,
pub cross_session_score_threshold: f32,
pub vector_backend: VectorBackend,
pub token_safety_margin: f32,
pub redact_credentials: bool,
pub autosave_assistant: bool,
pub autosave_min_length: usize,
pub tool_call_cutoff: usize,
pub sqlite_pool_size: u32,
pub sessions: SessionsConfig,
pub documents: DocumentConfig,
pub eviction: EvictionConfig,
pub compression: CompressionConfig,
pub sidequest: SidequestConfig,
pub routing: RoutingConfig,
pub graph: GraphConfig,
pub shutdown_summary: bool,
pub shutdown_summary_min_messages: usize,
pub shutdown_summary_max_messages: usize,
pub shutdown_summary_timeout_secs: u64,
pub structured_summaries: bool,
pub tiers: TierConfig,
}Fields§
§compression_guidelines: CompressionGuidelinesConfig§sqlite_path: String§history_limit: u32§qdrant_url: String§semantic: SemanticConfig§summarization_threshold: usize§context_budget_tokens: usize§soft_compaction_threshold: f32§hard_compaction_threshold: f32§compaction_preserve_tail: usize§compaction_cooldown_turns: u8§auto_budget: bool§prune_protect_tokens: usize§cross_session_score_threshold: f32§vector_backend: VectorBackend§token_safety_margin: f32§redact_credentials: bool§autosave_assistant: bool§autosave_min_length: usize§tool_call_cutoff: usize§sqlite_pool_size: u32§sessions: SessionsConfig§documents: DocumentConfig§eviction: EvictionConfig§compression: CompressionConfig§sidequest: SidequestConfig§routing: RoutingConfig§graph: GraphConfig§shutdown_summary: boolStore a lightweight session summary to the vector store on shutdown when no session
summary exists yet for this conversation. Enables cross-session recall for short or
interrupted sessions that never triggered hard compaction. Default: true.
shutdown_summary_min_messages: usizeMinimum number of user-turn messages required before a shutdown summary is generated.
Sessions below this threshold are considered trivial and skipped. Default: 4.
shutdown_summary_max_messages: usizeMaximum number of recent messages (user + assistant) sent to the LLM for shutdown
summarization. Caps token cost for long sessions that never triggered hard compaction.
Default: 20.
shutdown_summary_timeout_secs: u64Per-attempt timeout in seconds for each LLM call during shutdown summarization.
Applies independently to the structured call and to the plain-text fallback.
Default: 10.
structured_summaries: boolUse structured anchored summaries for context compaction.
When enabled, hard compaction requests a JSON schema from the LLM
instead of free-form prose. Falls back to prose if the LLM fails
to produce valid JSON. Default: false.
tiers: TierConfigAOI three-layer memory tier promotion system.
When tiers.enabled = true, a background sweep promotes frequently-accessed episodic
messages to a semantic tier by clustering near-duplicates and distilling via LLM.
Trait Implementations§
Source§impl Debug for MemoryConfig
impl Debug for MemoryConfig
Source§impl<'de> Deserialize<'de> for MemoryConfig
impl<'de> Deserialize<'de> for MemoryConfig
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<MemoryConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<MemoryConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for MemoryConfig
impl Serialize for MemoryConfig
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for MemoryConfig
impl RefUnwindSafe for MemoryConfig
impl Send for MemoryConfig
impl Sync for MemoryConfig
impl Unpin for MemoryConfig
impl UnsafeUnpin for MemoryConfig
impl UnwindSafe for MemoryConfig
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request