pub enum LoopAction {
Warn,
Stop,
InjectWarning,
}Expand description
Action to take when a tool call loop is detected.
Variants§
Warn
Emit LoopEvent::LoopDetected and continue execution.
Use this for monitoring/alerting without interrupting the agent.
Stop
Stop the loop immediately with an error.
Returns LlmError::ToolExecution describing the loop.
InjectWarning
Inject a warning message into the conversation and continue.
Adds a system message like “You have called {tool} with identical arguments {n} times. Try a different approach.” This often helps the agent break out of the loop.
The warning fires at every multiple of threshold (3, 6, 9, …)
until the agent changes its approach. This prevents infinite loops
where the agent ignores the first warning.
Trait Implementations§
Source§impl Clone for LoopAction
impl Clone for LoopAction
Source§fn clone(&self) -> LoopAction
fn clone(&self) -> LoopAction
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 LoopAction
impl Debug for LoopAction
Source§impl PartialEq for LoopAction
impl PartialEq for LoopAction
impl Copy for LoopAction
impl Eq for LoopAction
impl StructuralPartialEq for LoopAction
Auto Trait Implementations§
impl Freeze for LoopAction
impl RefUnwindSafe for LoopAction
impl Send for LoopAction
impl Sync for LoopAction
impl Unpin for LoopAction
impl UnwindSafe for LoopAction
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