pub struct LoopTextAgent { /* private fields */ }Expand description
Runs a text agent repeatedly until max iterations or a state predicate.
Implementations§
Source§impl LoopTextAgent
impl LoopTextAgent
Sourcepub fn new(
name: impl Into<String>,
body: Arc<dyn TextAgent>,
max: u32,
) -> LoopTextAgent
pub fn new( name: impl Into<String>, body: Arc<dyn TextAgent>, max: u32, ) -> LoopTextAgent
Create a new loop agent that repeats up to max iterations.
Sourcepub fn until(
self,
pred: impl Fn(&State) -> bool + Send + Sync + 'static,
) -> LoopTextAgent
pub fn until( self, pred: impl Fn(&State) -> bool + Send + Sync + 'static, ) -> LoopTextAgent
Add a predicate — loop breaks when predicate returns true.
Sourcepub fn with_middleware_chain(self, chain: MiddlewareChain) -> LoopTextAgent
pub fn with_middleware_chain(self, chain: MiddlewareChain) -> LoopTextAgent
Attach a middleware chain. AgentEvent::LoopIteration is emitted through
it on every iteration, so on_event observers (e.g. M::on_loop) fire.
Trait Implementations§
Source§impl TextAgent for LoopTextAgent
impl TextAgent for LoopTextAgent
Source§fn run<'life0, 'life1, 'async_trait>(
&'life0 self,
state: &'life1 State,
) -> Pin<Box<dyn Future<Output = Result<String, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LoopTextAgent: '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
'life0: 'async_trait,
'life1: 'async_trait,
LoopTextAgent: 'async_trait,
Execute this agent. Reads/writes
state. Returns the final text output.Auto Trait Implementations§
impl Freeze for LoopTextAgent
impl !RefUnwindSafe for LoopTextAgent
impl Send for LoopTextAgent
impl Sync for LoopTextAgent
impl Unpin for LoopTextAgent
impl !UnwindSafe for LoopTextAgent
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<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§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].