AgentBuilder

Struct AgentBuilder 

Source
pub struct AgentBuilder { /* private fields */ }
Expand description

Builder for creating reactive LLM agents.

AgentBuilder provides a clean interface for creating agents that can:

  • React to messages from other agents based on role and conditions
  • Share memory across multiple agents
  • Control reactive cycles to prevent infinite loops
  • Maintain conversation context
  • Handle speech-to-text and text-to-speech capabilities

Implementations§

Source§

impl AgentBuilder

Source

pub fn new() -> Self

Creates a new AgentBuilder instance.

Source

pub fn role(self, role: impl Into<String>) -> Self

Sets the role name for this agent.

The role is used to identify messages from this agent in shared memory and for reactive message filtering.

Source

pub fn on(self, role: impl Into<String>, condition: MessageCondition) -> Self

Configures the agent to react to messages from a specific role with a condition.

The agent will only trigger when messages from the specified role match the condition.

Source

pub fn max_cycles(self, max: u32) -> Self

Sets the maximum number of reactive cycles this agent can perform.

This prevents infinite loops in multi-agent conversations.

Source

pub fn single_reply_per_turn(self, enabled: bool) -> Self

Configures the agent to send only one reply per conversational turn.

Source

pub fn debounce(self, ms: u64) -> Self

Sets a debounce delay in milliseconds before reacting to messages.

Source

pub fn llm(self, llm_builder: LLMBuilder) -> Self

Sets the underlying LLM configuration.

Source

pub fn stt(self, stt_builder: LLMBuilder) -> Self

Sets the Speech-to-Text LLM configuration.

Source

pub fn tts(self, tts_builder: LLMBuilder) -> Self

Sets the Text-to-Speech LLM configuration.

Source

pub fn memory(self, memory: impl MemoryProvider + 'static) -> Self

Sets a memory provider for the agent.

Source

pub fn build(self) -> Result<Box<dyn LLMProvider>, LLMError>

Builds the agent and returns an LLM provider with agent capabilities.

§Errors

Returns an error if the underlying LLM configuration is invalid.

Trait Implementations§

Source§

impl Default for AgentBuilder

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

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> 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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
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
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

Source§

impl<T> MaybeSendSync for T