pub struct CompactionConfig {
pub enabled: bool,
pub context_limit: usize,
pub threshold: f64,
pub emergency_threshold: f64,
pub critical_threshold: f64,
pub input_headroom_ratio: f64,
pub single_tool_result_share: f64,
pub safety_margin: f64,
pub overflow_retries: u32,
}Expand description
Context compaction configuration.
Fields§
§enabled: boolWhether automatic context compaction is enabled.
context_limit: usizeMaximum context window size in tokens.
threshold: f64Fraction (0.0-1.0) of context_limit that triggers compaction.
emergency_threshold: f64Fraction (0.0-1.0) for emergency truncation mode.
critical_threshold: f64Fraction (0.0-1.0) for critical hard-trim mode.
input_headroom_ratio: f64Fraction of context_limit usable for messages (reserves rest for tool definitions, system prompt, and output tokens). Default: 0.75.
Maximum fraction of context window a single tool result may consume. Default: 0.50.
safety_margin: f64Safety margin multiplier for token estimates (>1.0 = conservative). Default: 1.2.
overflow_retries: u32Maximum overflow retries before giving up. Default: 3.
Trait Implementations§
Source§impl Clone for CompactionConfig
impl Clone for CompactionConfig
Source§fn clone(&self) -> CompactionConfig
fn clone(&self) -> CompactionConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CompactionConfig
impl Debug for CompactionConfig
Source§impl Default for CompactionConfig
impl Default for CompactionConfig
Source§impl<'de> Deserialize<'de> for CompactionConfigwhere
CompactionConfig: Default,
impl<'de> Deserialize<'de> for CompactionConfigwhere
CompactionConfig: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for CompactionConfig
impl RefUnwindSafe for CompactionConfig
impl Send for CompactionConfig
impl Sync for CompactionConfig
impl Unpin for CompactionConfig
impl UnsafeUnpin for CompactionConfig
impl UnwindSafe for CompactionConfig
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Erasable for T
impl<T> Erasable for 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>
Converts
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>
Converts
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 more