pub struct DispatchTextAgent { /* private fields */ }Expand description
Fire-and-forget background task launcher with global task budget.
Launches each child agent as a background tokio::spawn task,
stores handles in a TaskRegistry, and returns immediately.
Implementations§
Source§impl DispatchTextAgent
impl DispatchTextAgent
Sourcepub fn new(
name: impl Into<String>,
children: Vec<(String, Arc<dyn TextAgent>)>,
registry: TaskRegistry,
budget: Arc<Semaphore>,
) -> Self
pub fn new( name: impl Into<String>, children: Vec<(String, Arc<dyn TextAgent>)>, registry: TaskRegistry, budget: Arc<Semaphore>, ) -> Self
Create a new dispatch agent with named children and a concurrency budget.
Sourcepub fn with_middleware_chain(self, chain: MiddlewareChain) -> Self
pub fn with_middleware_chain(self, chain: MiddlewareChain) -> Self
Attach a middleware chain. AgentEvent::AgentStarted is emitted
through it as each child task is launched, and AgentEvent::AgentCompleted
from inside the detached task when the child finishes (the chain is
cloned into the task, so this fires even after run has returned).
Trait Implementations§
Source§impl TextAgent for DispatchTextAgent
impl TextAgent for DispatchTextAgent
Source§fn run<'life0, 'life1, 'async_trait>(
&'life0 self,
state: &'life1 State,
) -> Pin<Box<dyn Future<Output = Result<String, AgentError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn run<'life0, 'life1, 'async_trait>(
&'life0 self,
state: &'life1 State,
) -> Pin<Box<dyn Future<Output = Result<String, AgentError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute this agent. Reads/writes
state. Returns the final text output.Auto Trait Implementations§
impl Freeze for DispatchTextAgent
impl !RefUnwindSafe for DispatchTextAgent
impl Send for DispatchTextAgent
impl Sync for DispatchTextAgent
impl Unpin for DispatchTextAgent
impl !UnwindSafe for DispatchTextAgent
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<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].