pub struct ContextFilterPlugin { /* private fields */ }Expand description
Plugin that filters or transforms conversation context before model calls.
Can be used to:
- Limit context window size
- Remove tool call/result turns
- Filter out specific content types
- Inject additional context
Implementations§
Source§impl ContextFilterPlugin
impl ContextFilterPlugin
Sourcepub fn with_max_turns(self, max_turns: usize) -> Self
pub fn with_max_turns(self, max_turns: usize) -> Self
Set the maximum number of turns to keep.
Sourcepub fn with_exclude_tool_turns(self, exclude: bool) -> Self
pub fn with_exclude_tool_turns(self, exclude: bool) -> Self
Set whether to exclude tool call/result turns.
Sourcepub fn exclude_tool_turns(&self) -> bool
pub fn exclude_tool_turns(&self) -> bool
Returns whether tool turns are excluded.
Trait Implementations§
Source§impl Default for ContextFilterPlugin
impl Default for ContextFilterPlugin
Source§impl Plugin for ContextFilterPlugin
impl Plugin for ContextFilterPlugin
Source§fn before_model<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_request: &'life1 LlmRequest,
_ctx: &'life2 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn before_model<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_request: &'life1 LlmRequest,
_ctx: &'life2 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called before a model generation request.
Source§fn before_agent<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn before_agent<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called before an agent starts execution.
Source§fn after_agent<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn after_agent<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called after an agent completes execution.
Source§fn before_tool<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_call: &'life1 FunctionCall,
_ctx: &'life2 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn before_tool<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_call: &'life1 FunctionCall,
_ctx: &'life2 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called before a tool is executed. Return
Deny to prevent execution.Source§fn after_tool<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_call: &'life1 FunctionCall,
_result: &'life2 Value,
_ctx: &'life3 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn after_tool<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_call: &'life1 FunctionCall,
_result: &'life2 Value,
_ctx: &'life3 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Called after a tool completes. Can transform or deny the result.
Source§fn on_event<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_event: &'life1 Event,
_ctx: &'life2 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_event<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_event: &'life1 Event,
_ctx: &'life2 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called when an event is emitted.
Source§fn on_user_message<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_message: &'life1 str,
_ctx: &'life2 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_user_message<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_message: &'life1 str,
_ctx: &'life2 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called when a user message is received.
Source§fn before_run<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn before_run<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called before a run starts (before the agent loop).
Source§fn after_run<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn after_run<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called after a run completes (after the agent loop).
Source§fn after_model<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_response: &'life1 LlmResponse,
_ctx: &'life2 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn after_model<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_response: &'life1 LlmResponse,
_ctx: &'life2 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called after a model generation response.
Source§fn on_model_error<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_error: &'life1 str,
_ctx: &'life2 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_model_error<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_error: &'life1 str,
_ctx: &'life2 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called when a model generation fails.
Source§fn on_tool_error<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_call: &'life1 FunctionCall,
_error: &'life2 str,
_ctx: &'life3 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn on_tool_error<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_call: &'life1 FunctionCall,
_error: &'life2 str,
_ctx: &'life3 InvocationContext,
) -> Pin<Box<dyn Future<Output = PluginResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Called when a tool execution fails.
Auto Trait Implementations§
impl Freeze for ContextFilterPlugin
impl RefUnwindSafe for ContextFilterPlugin
impl Send for ContextFilterPlugin
impl Sync for ContextFilterPlugin
impl Unpin for ContextFilterPlugin
impl UnsafeUnpin for ContextFilterPlugin
impl UnwindSafe for ContextFilterPlugin
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