pub struct CostControlConfig {
pub enabled: bool,
pub keep_recent_tool_results: usize,
pub mask_after_tool_results: usize,
pub max_live_tool_result_bytes: usize,
pub max_uncached_input_tokens: u32,
pub min_cache_read_ratio: f32,
pub compact_after_tool_result_bytes: usize,
pub compact_min_input_tokens: usize,
}Expand description
Cost-control masking settings.
Unlike proactive compaction, this is cost-oriented rather than context-window-oriented: old bulky tool results should not stay verbatim in every request just because the model still has room for them.
Fields§
§enabled: boolEnable low-cost tool-result masking before every LLM call.
keep_recent_tool_results: usizeNumber of most-recent tool results to always keep verbatim.
mask_after_tool_results: usizeStart masking once this many tool results are present.
max_live_tool_result_bytes: usizeStart masking once aggregate live tool-result payload exceeds this many bytes.
max_uncached_input_tokens: u32If cumulative/session usage is available, mask when uncached input exceeds this.
min_cache_read_ratio: f32If cumulative/session usage is available, mask when cache read ratio falls below this.
compact_after_tool_result_bytes: usizeConsider durable compaction once raw tool-result history exceeds this many bytes.
compact_min_input_tokens: usizeDo not cost-trigger durable compaction for a smaller current prompt.
Trait Implementations§
Source§impl Clone for CostControlConfig
impl Clone for CostControlConfig
Source§fn clone(&self) -> CostControlConfig
fn clone(&self) -> CostControlConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CostControlConfig
impl Debug for CostControlConfig
Source§impl Default for CostControlConfig
impl Default for CostControlConfig
Source§impl<'de> Deserialize<'de> for CostControlConfig
impl<'de> Deserialize<'de> for CostControlConfig
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>,
Auto Trait Implementations§
impl Freeze for CostControlConfig
impl RefUnwindSafe for CostControlConfig
impl Send for CostControlConfig
impl Sync for CostControlConfig
impl Unpin for CostControlConfig
impl UnsafeUnpin for CostControlConfig
impl UnwindSafe for CostControlConfig
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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