pub struct MultiExplicitHandoffPolicy { /* private fields */ }Expand description
Multi-target explicit handoff policy - supports multiple handoff targets. Each tool name maps to a specific target agent.
Implementations§
Trait Implementations§
Source§impl Clone for MultiExplicitHandoffPolicy
impl Clone for MultiExplicitHandoffPolicy
Source§fn clone(&self) -> MultiExplicitHandoffPolicy
fn clone(&self) -> MultiExplicitHandoffPolicy
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 MultiExplicitHandoffPolicy
impl Debug for MultiExplicitHandoffPolicy
Source§impl From<MultiExplicitHandoffPolicy> for AnyHandoffPolicy
impl From<MultiExplicitHandoffPolicy> for AnyHandoffPolicy
Source§fn from(policy: MultiExplicitHandoffPolicy) -> Self
fn from(policy: MultiExplicitHandoffPolicy) -> Self
Converts to this type from the input type.
Source§impl HandoffPolicy for MultiExplicitHandoffPolicy
impl HandoffPolicy for MultiExplicitHandoffPolicy
Source§fn handoff_tools(&self) -> Vec<ChatCompletionTool>
fn handoff_tools(&self) -> Vec<ChatCompletionTool>
Generate handoff tools that the LLM can call.
These tools will be injected into the agent’s available tools.
Source§fn handle_handoff_tool(
&self,
invocation: &ToolInvocation,
) -> Result<HandoffRequest, BoxError>
fn handle_handoff_tool( &self, invocation: &ToolInvocation, ) -> Result<HandoffRequest, BoxError>
Handle a handoff tool call by converting it to a HandoffRequest.
This is called when the LLM invokes one of the handoff tools.
Source§fn should_handoff(
&self,
_state: &LoopState,
_outcome: &StepOutcome,
) -> Option<HandoffRequest>
fn should_handoff( &self, _state: &LoopState, _outcome: &StepOutcome, ) -> Option<HandoffRequest>
Make runtime handoff decisions based on agent state and step outcome.
This allows for automatic handoffs based on conditions (e.g., no tools called).
Source§fn is_handoff_tool(&self, tool_name: &str) -> bool
fn is_handoff_tool(&self, tool_name: &str) -> bool
Check if a tool call is a handoff tool managed by this policy.
Source§fn transform_on_handoff(
&self,
messages: Vec<ChatCompletionRequestMessage>,
_from_agent: &str,
_to_agent: &str,
_handoff: &HandoffRequest,
) -> Pin<Box<dyn Future<Output = Result<Vec<ChatCompletionRequestMessage>, BoxError>> + Send>>
fn transform_on_handoff( &self, messages: Vec<ChatCompletionRequestMessage>, _from_agent: &str, _to_agent: &str, _handoff: &HandoffRequest, ) -> Pin<Box<dyn Future<Output = Result<Vec<ChatCompletionRequestMessage>, BoxError>> + Send>>
Transform messages during handoff. Read more
Auto Trait Implementations§
impl Freeze for MultiExplicitHandoffPolicy
impl RefUnwindSafe for MultiExplicitHandoffPolicy
impl Send for MultiExplicitHandoffPolicy
impl Sync for MultiExplicitHandoffPolicy
impl Unpin for MultiExplicitHandoffPolicy
impl UnsafeUnpin for MultiExplicitHandoffPolicy
impl UnwindSafe for MultiExplicitHandoffPolicy
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more