pub struct CompositeStrategy { /* private fields */ }Expand description
Chains multiple strategies, applying each in order until token budget is met.
Each strategy is tried in sequence. After each strategy’s compact runs,
the resulting token count is re-estimated. If it falls below max_tokens,
iteration stops early.
Use BoxedStrategy::new to wrap concrete strategies before collecting them.
§Example
use neuron_context::{CompositeStrategy, SlidingWindowStrategy, ToolResultClearingStrategy};
use neuron_context::strategies::BoxedStrategy;
let strategy = CompositeStrategy::new(vec![
BoxedStrategy::new(ToolResultClearingStrategy::new(2, 100_000)),
BoxedStrategy::new(SlidingWindowStrategy::new(10, 100_000)),
], 100_000);Implementations§
Trait Implementations§
Source§impl ContextStrategy for CompositeStrategy
impl ContextStrategy for CompositeStrategy
Source§fn should_compact(&self, messages: &[Message], token_count: usize) -> bool
fn should_compact(&self, messages: &[Message], token_count: usize) -> bool
Whether compaction should be triggered given the current messages and token count.
Source§fn compact(
&self,
messages: Vec<Message>,
) -> impl Future<Output = Result<Vec<Message>, ContextError>> + WasmCompatSend
fn compact( &self, messages: Vec<Message>, ) -> impl Future<Output = Result<Vec<Message>, ContextError>> + WasmCompatSend
Compact the message list to reduce token usage.
Source§fn token_estimate(&self, messages: &[Message]) -> usize
fn token_estimate(&self, messages: &[Message]) -> usize
Estimate the token count for a list of messages.
Auto Trait Implementations§
impl Freeze for CompositeStrategy
impl !RefUnwindSafe for CompositeStrategy
impl Send for CompositeStrategy
impl Sync for CompositeStrategy
impl Unpin for CompositeStrategy
impl UnsafeUnpin for CompositeStrategy
impl !UnwindSafe for CompositeStrategy
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