pub struct CompositeHandoffPolicy { /* private fields */ }Expand description
Composite handoff policy - combines multiple handoff policies.
Implementations§
Source§impl CompositeHandoffPolicy
impl CompositeHandoffPolicy
Sourcepub fn new(policies: Vec<AnyHandoffPolicy>) -> Self
pub fn new(policies: Vec<AnyHandoffPolicy>) -> Self
Create new composite policy from a list of policies.
Trait Implementations§
Source§impl Clone for CompositeHandoffPolicy
impl Clone for CompositeHandoffPolicy
Source§fn clone(&self) -> CompositeHandoffPolicy
fn clone(&self) -> CompositeHandoffPolicy
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 CompositeHandoffPolicy
impl Debug for CompositeHandoffPolicy
Source§impl From<CompositeHandoffPolicy> for AnyHandoffPolicy
impl From<CompositeHandoffPolicy> for AnyHandoffPolicy
Source§fn from(policy: CompositeHandoffPolicy) -> Self
fn from(policy: CompositeHandoffPolicy) -> Self
Converts to this type from the input type.
Source§impl HandoffPolicy for CompositeHandoffPolicy
impl HandoffPolicy for CompositeHandoffPolicy
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 CompositeHandoffPolicy
impl RefUnwindSafe for CompositeHandoffPolicy
impl Send for CompositeHandoffPolicy
impl Sync for CompositeHandoffPolicy
impl Unpin for CompositeHandoffPolicy
impl UnsafeUnpin for CompositeHandoffPolicy
impl UnwindSafe for CompositeHandoffPolicy
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