pub struct ToolCallLimitMiddleware { /* private fields */ }Expand description
Limits the number of tool invocations during a single agent run.
When the limit is exceeded, wrap_tool_call returns a
SynapticError::MaxStepsExceeded error.
Implementations§
Trait Implementations§
Source§impl AgentMiddleware for ToolCallLimitMiddleware
impl AgentMiddleware for ToolCallLimitMiddleware
Source§fn wrap_tool_call<'life0, 'life1, 'async_trait>(
&'life0 self,
request: ToolCallRequest,
next: &'life1 dyn ToolCaller,
) -> Pin<Box<dyn Future<Output = Result<Value, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn wrap_tool_call<'life0, 'life1, 'async_trait>(
&'life0 self,
request: ToolCallRequest,
next: &'life1 dyn ToolCaller,
) -> Pin<Box<dyn Future<Output = Result<Value, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Wraps a tool call. Override to intercept or replace tool execution.
Source§fn before_agent<'life0, 'life1, 'async_trait>(
&'life0 self,
_messages: &'life1 mut Vec<Message>,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn before_agent<'life0, 'life1, 'async_trait>(
&'life0 self,
_messages: &'life1 mut Vec<Message>,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called once when the agent starts executing.
Source§fn after_agent<'life0, 'life1, 'async_trait>(
&'life0 self,
_messages: &'life1 mut Vec<Message>,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn after_agent<'life0, 'life1, 'async_trait>(
&'life0 self,
_messages: &'life1 mut Vec<Message>,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called once when the agent finishes executing.
Source§fn before_model<'life0, 'life1, 'async_trait>(
&'life0 self,
_request: &'life1 mut ModelRequest,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn before_model<'life0, 'life1, 'async_trait>(
&'life0 self,
_request: &'life1 mut ModelRequest,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called before each model invocation. Can modify the request.
Source§fn after_model<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_request: &'life1 ModelRequest,
_response: &'life2 mut ModelResponse,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + 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,
_request: &'life1 ModelRequest,
_response: &'life2 mut ModelResponse,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called after each model invocation. Can modify the response.
Source§fn wrap_model_call<'life0, 'life1, 'async_trait>(
&'life0 self,
request: ModelRequest,
next: &'life1 dyn ModelCaller,
) -> Pin<Box<dyn Future<Output = Result<ModelResponse, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn wrap_model_call<'life0, 'life1, 'async_trait>(
&'life0 self,
request: ModelRequest,
next: &'life1 dyn ModelCaller,
) -> Pin<Box<dyn Future<Output = Result<ModelResponse, SynapticError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Wraps the model call. Override to intercept or replace the model invocation.
Auto Trait Implementations§
impl !Freeze for ToolCallLimitMiddleware
impl RefUnwindSafe for ToolCallLimitMiddleware
impl Send for ToolCallLimitMiddleware
impl Sync for ToolCallLimitMiddleware
impl Unpin for ToolCallLimitMiddleware
impl UnsafeUnpin for ToolCallLimitMiddleware
impl UnwindSafe for ToolCallLimitMiddleware
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