pub struct LlmTextAgent { /* private fields */ }Expand description
Core text agent — calls BaseLlm::generate(), dispatches tools, loops
until the model produces a final text response.
Middleware hooks fire at each lifecycle point:
before_model/after_model— wraps eachBaseLlm::generate()call;before_modelmay return a cached response to skip the LLM entirely.before_tool/after_tool/on_tool_error— wraps each tool dispatch.on_error— called whenrun()is about to return an error.
Note: before_agent/after_agent are Live-session hooks that require an
InvocationContext (a Live WebSocket concept) and are therefore not invoked
by LlmTextAgent. Use before_model or wrap in a custom TextAgent if you
need entry/exit hooks for the text path.
Implementations§
Source§impl LlmTextAgent
impl LlmTextAgent
Sourcepub fn new(name: impl Into<String>, llm: Arc<dyn BaseLlm>) -> Self
pub fn new(name: impl Into<String>, llm: Arc<dyn BaseLlm>) -> Self
Create a new LLM text agent.
Sourcepub fn instruction(self, inst: impl Into<String>) -> Self
pub fn instruction(self, inst: impl Into<String>) -> Self
Set the system instruction.
Sourcepub fn tools(self, dispatcher: Arc<ToolDispatcher>) -> Self
pub fn tools(self, dispatcher: Arc<ToolDispatcher>) -> Self
Set the tool dispatcher.
Sourcepub fn temperature(self, t: f32) -> Self
pub fn temperature(self, t: f32) -> Self
Set temperature.
Sourcepub fn max_output_tokens(self, n: u32) -> Self
pub fn max_output_tokens(self, n: u32) -> Self
Set max output tokens.
Sourcepub fn add_middleware(self, mw: Arc<dyn Middleware>) -> Self
pub fn add_middleware(self, mw: Arc<dyn Middleware>) -> Self
Append a middleware layer to the chain.
Layers are run in insertion order for before_* / on_error hooks
and in reverse insertion order for after_* hooks (outermost last).
Sourcepub fn with_middleware_chain(self, chain: MiddlewareChain) -> Self
pub fn with_middleware_chain(self, chain: MiddlewareChain) -> Self
Replace the entire middleware chain (advanced — prefer add_middleware).
Trait Implementations§
Source§impl TextAgent for LlmTextAgent
impl TextAgent for LlmTextAgent
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,
state. Returns the final text output.