pub struct LlmConditionalAgent { /* private fields */ }Expand description
LLM-based intelligent conditional routing agent.
Uses an LLM to classify user input and route to the appropriate sub-agent based on the classification result. Supports multi-way routing.
For rule-based routing (A/B testing, feature flags), use crate::ConditionalAgent.
§Example
ⓘ
let router = LlmConditionalAgent::builder("router", model)
.instruction("Classify as 'technical', 'general', or 'creative'.")
.route("technical", tech_agent)
.route("general", general_agent.clone())
.route("creative", creative_agent)
.default_route(general_agent)
.build()?;Implementations§
Trait Implementations§
Source§impl Agent for LlmConditionalAgent
impl Agent for LlmConditionalAgent
fn name(&self) -> &str
fn description(&self) -> &str
fn sub_agents(&self) -> &[Arc<dyn Agent>]
fn run<'life0, 'async_trait>(
&'life0 self,
ctx: Arc<dyn InvocationContext>,
) -> Pin<Box<dyn Future<Output = Result<EventStream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Auto Trait Implementations§
impl Freeze for LlmConditionalAgent
impl !RefUnwindSafe for LlmConditionalAgent
impl Send for LlmConditionalAgent
impl Sync for LlmConditionalAgent
impl Unpin for LlmConditionalAgent
impl UnsafeUnpin for LlmConditionalAgent
impl !UnwindSafe for LlmConditionalAgent
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
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request