pub struct SlidingWindowSummarizer { /* private fields */ }Expand description
Keeps only the most recent window messages and silently discards everything
older. No API call is made.
Use this when you want predictable, zero-cost context management and are comfortable with the model losing access to earlier turns.
Permanent Role::System messages are always preserved regardless of window.
§Example
use ds_api::DeepseekAgent;
use ds_api::conversation::SlidingWindowSummarizer;
// Keep the last 20 non-system messages; trigger summarization above 30.
let agent = DeepseekAgent::new("sk-...")
.with_summarizer(
SlidingWindowSummarizer::new(20)
.trigger_at(30)
);Implementations§
Source§impl SlidingWindowSummarizer
impl SlidingWindowSummarizer
Sourcepub fn new(window: usize) -> Self
pub fn new(window: usize) -> Self
Create a summarizer that retains at most window non-system messages.
Summarization triggers as soon as the non-system message count exceeds
window. Use trigger_at to set a larger trigger
threshold so the window only slides after a certain amount of growth.
Sourcepub fn trigger_at(self, n: usize) -> Self
pub fn trigger_at(self, n: usize) -> Self
Builder: set the non-system message count that triggers summarization.
Must be greater than window; if set to a value ≤ window it is
silently clamped to window + 1.
§Example
use ds_api::conversation::SlidingWindowSummarizer;
// Retain 20 turns but only start trimming after reaching 40.
let s = SlidingWindowSummarizer::new(20).trigger_at(40);Trait Implementations§
Source§impl Clone for SlidingWindowSummarizer
impl Clone for SlidingWindowSummarizer
Source§fn clone(&self) -> SlidingWindowSummarizer
fn clone(&self) -> SlidingWindowSummarizer
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 SlidingWindowSummarizer
impl Debug for SlidingWindowSummarizer
Source§impl Summarizer for SlidingWindowSummarizer
impl Summarizer for SlidingWindowSummarizer
Auto Trait Implementations§
impl Freeze for SlidingWindowSummarizer
impl RefUnwindSafe for SlidingWindowSummarizer
impl Send for SlidingWindowSummarizer
impl Sync for SlidingWindowSummarizer
impl Unpin for SlidingWindowSummarizer
impl UnsafeUnpin for SlidingWindowSummarizer
impl UnwindSafe for SlidingWindowSummarizer
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