pub struct AgentTool { /* private fields */ }Expand description
The unified agent delegation tool.
Spawns one or more specialist sub-agents (workers) according to a
caller-supplied manifest and execution mode.
Implementations§
Source§impl AgentTool
impl AgentTool
pub fn new( workspace: impl Into<PathBuf>, provider: Arc<dyn ChatProvider>, all_tools: ToolRegistry, max_depth: usize, current_depth: usize, permission_hook: Option<Arc<dyn PermissionHook>>, ) -> Self
Sourcepub fn with_registry(self, registry: WorkerRegistry) -> Self
pub fn with_registry(self, registry: WorkerRegistry) -> Self
Attach a WorkerRegistry so workers can send messages to each other.
Sourcepub fn with_pool(self, pool: Arc<RwLock<AgentPool>>) -> Self
pub fn with_pool(self, pool: Arc<RwLock<AgentPool>>) -> Self
Attach an AgentPool for shared-memory coordination between workers.
Sourcepub fn with_task_registry(self, reg: Arc<TaskRegistry>) -> Self
pub fn with_task_registry(self, reg: Arc<TaskRegistry>) -> Self
Attach a TaskRegistry so this agent and its descendants can
share background tasks (Phase D). If never called, a private
in-memory registry is used.
Sourcepub fn with_definitions(self, defs: AgentDefinitions) -> Self
pub fn with_definitions(self, defs: AgentDefinitions) -> Self
Attach an AgentDefinitions registry so manifest entries can
reference definitions by name via the definition field.
Sourcepub fn with_workers(self, workers: WorkerTable) -> Self
pub fn with_workers(self, workers: WorkerTable) -> Self
Attach a shared background-worker continuation table. When set,
background workers register their continuation handle here so that
send_message can drive follow-up turns on the same runtime.
Trait Implementations§
Source§impl Tool for AgentTool
impl Tool for AgentTool
fn spec(&self) -> ToolSpec
Source§fn side_effect_class(&self) -> ToolSideEffect
fn side_effect_class(&self) -> ToolSideEffect
Classify this tool’s observable side-effects. Default is the most
conservative value (
External) so any unannotated tool is treated
as risky on resume. Override to ReadOnly or Mutating for
built-in tools; MCP tools derive this from their annotations.fn execute<'life0, 'async_trait>(
&'life0 self,
arguments: Value,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn is_deferred(&self) -> bool
fn is_deferred(&self) -> bool
Return
true to send this tool as deferred (name-only) in the initial
prompt; the model must call ToolSearch to load its full schema.
Default is false (eager). Override in low-frequency tools.Source§fn kind(&self) -> ToolKind
fn kind(&self) -> ToolKind
Return the ACP
ToolKind for tool_call notifications (Sprint 3).
Defaults to ToolKind::Other. Concrete tools override to map
to their corresponding ACP category.Source§fn is_readonly(&self) -> bool
fn is_readonly(&self) -> bool
Convenience: a tool is read-only iff it classifies as
ReadOnly.
Used by the parallel-dispatch path in agent.rs. Override only if
you have an unusual reason (you almost never should — override
side_effect_class instead and let this default through).Auto Trait Implementations§
impl !RefUnwindSafe for AgentTool
impl !UnwindSafe for AgentTool
impl Freeze for AgentTool
impl Send for AgentTool
impl Sync for AgentTool
impl Unpin for AgentTool
impl UnsafeUnpin for AgentTool
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
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> IntoMaybeUndefined<T> for T
impl<T> IntoMaybeUndefined<T> for T
Source§fn into_maybe_undefined(self) -> MaybeUndefined<T>
fn into_maybe_undefined(self) -> MaybeUndefined<T>
Converts this value into a three-state builder argument.
Source§impl<T> IntoOption<T> for T
impl<T> IntoOption<T> for T
Source§fn into_option(self) -> Option<T>
fn into_option(self) -> Option<T>
Converts this value into an optional builder argument.