SubagentFactory

Struct SubagentFactory 

Source
pub struct SubagentFactory<P>
where P: LlmProvider + 'static,
{ /* private fields */ }
Expand description

Factory for creating subagents with shared resources.

The factory holds references to shared resources (provider, tool registries) and provides convenient methods to create subagents with common configurations.

Implementations§

Source§

impl<P> SubagentFactory<P>
where P: LlmProvider + 'static,

Source

pub const fn new(provider: Arc<P>) -> Self

Creates a new factory with the given LLM provider.

Source

pub fn with_read_only_registry(self, registry: ToolRegistry<()>) -> Self

Sets the read-only tool registry (typically glob, grep, read tools).

This registry is used when creating read-only subagents.

Source

pub fn with_full_registry(self, registry: ToolRegistry<()>) -> Self

Sets the full tool registry for full-access subagents.

Source

pub fn create_read_only(&self, config: SubagentConfig) -> SubagentTool<P>

Creates a read-only subagent with only read/search tools.

This is useful for exploration, research, and investigation tasks where the subagent should not modify any files.

§Panics

Panics if no read-only registry has been set.

Source

pub fn create_full_access(&self, config: SubagentConfig) -> SubagentTool<P>

Creates a subagent with all available tools.

§Panics

Panics if no full registry has been set.

Source

pub fn create_with_registry( &self, config: SubagentConfig, registry: Arc<ToolRegistry<()>>, ) -> SubagentTool<P>

Creates a subagent with a custom tool registry.

Source

pub fn provider(&self) -> Arc<P>

Returns the provider for manual subagent construction.

Trait Implementations§

Source§

impl<P> Clone for SubagentFactory<P>
where P: LlmProvider + 'static,

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<P> Freeze for SubagentFactory<P>

§

impl<P> !RefUnwindSafe for SubagentFactory<P>

§

impl<P> Send for SubagentFactory<P>

§

impl<P> Sync for SubagentFactory<P>

§

impl<P> Unpin for SubagentFactory<P>

§

impl<P> !UnwindSafe for SubagentFactory<P>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more