pub struct SpawnAgentTool { /* private fields */ }Expand description
Tool that spawns a nested agent through a shared SessionHost.
This is the dynamic delegation entry point for a parent agent’s ReAct
loop: the model calls spawn_agent, the tool blocks until the child finishes,
and the child’s output is returned as the tool result.
Nesting depth is derived from ToolCallContext::spawn_depth: a top-level
session turn spawns at depth 0; a host-spawned agent at depth d spawns at
d + 1.
Implementations§
Source§impl SpawnAgentTool
impl SpawnAgentTool
Sourcepub fn new(host: Arc<dyn SessionHost>) -> Self
pub fn new(host: Arc<dyn SessionHost>) -> Self
Bind to a host.
Sourcepub const fn with_default_capability(self, mode: CapabilityMode) -> Self
pub const fn with_default_capability(self, mode: CapabilityMode) -> Self
Default capability mode for children when the model omits it.
Sourcepub fn with_allowed_agent_types(
self,
types: impl IntoIterator<Item = impl Into<String>>,
) -> Self
pub fn with_allowed_agent_types( self, types: impl IntoIterator<Item = impl Into<String>>, ) -> Self
Restrict spawnable agent_type values (W5.3). Empty allowlist rejects all typed spawns.
Trait Implementations§
Source§impl Debug for SpawnAgentTool
impl Debug for SpawnAgentTool
Source§impl DynTool for SpawnAgentTool
impl DynTool for SpawnAgentTool
Source§fn description(&self) -> &'static str
fn description(&self) -> &'static str
Description.
Source§fn parameters(&self) -> Value
fn parameters(&self) -> Value
JSON schema parameters.
Source§fn metadata(&self) -> ToolMetadata
fn metadata(&self) -> ToolMetadata
Metadata.
Source§fn call<'life0, 'async_trait>(
&'life0 self,
ctx: ToolCallContext,
arguments: Value,
) -> Pin<Box<dyn Future<Output = Result<ToolResult, MachiError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn call<'life0, 'async_trait>(
&'life0 self,
ctx: ToolCallContext,
arguments: Value,
) -> Pin<Box<dyn Future<Output = Result<ToolResult, MachiError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Execute with JSON arguments (blocking convenience). Read more
Source§fn definition(&self) -> ToolDefinition
fn definition(&self) -> ToolDefinition
Model-facing definition.
Source§fn execute<'life0, 'async_trait>(
&'life0 self,
ctx: ToolCallContext,
arguments: Value,
) -> Pin<Box<dyn Future<Output = Pin<Box<dyn Stream<Item = ToolStreamItem> + Send>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn execute<'life0, 'async_trait>(
&'life0 self,
ctx: ToolCallContext,
arguments: Value,
) -> Pin<Box<dyn Future<Output = Pin<Box<dyn Stream<Item = ToolStreamItem> + Send>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Streaming entry point. Default wraps
DynTool::call as a single terminal.Auto Trait Implementations§
impl !RefUnwindSafe for SpawnAgentTool
impl !UnwindSafe for SpawnAgentTool
impl Freeze for SpawnAgentTool
impl Send for SpawnAgentTool
impl Sync for SpawnAgentTool
impl Unpin for SpawnAgentTool
impl UnsafeUnpin for SpawnAgentTool
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