pub struct ReflectRetryToolPlugin { /* private fields */ }Expand description
Plugin that handles tool failures by reflecting on errors.
When a tool call fails, this plugin injects the error message as context so the model can learn from the failure and try a different approach.
Implementations§
Trait Implementations§
Source§impl Default for ReflectRetryToolPlugin
impl Default for ReflectRetryToolPlugin
Source§impl Plugin for ReflectRetryToolPlugin
impl Plugin for ReflectRetryToolPlugin
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.
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 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 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.
Auto Trait Implementations§
impl Freeze for ReflectRetryToolPlugin
impl RefUnwindSafe for ReflectRetryToolPlugin
impl Send for ReflectRetryToolPlugin
impl Sync for ReflectRetryToolPlugin
impl Unpin for ReflectRetryToolPlugin
impl UnsafeUnpin for ReflectRetryToolPlugin
impl UnwindSafe for ReflectRetryToolPlugin
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