pub struct LlmConditionalAgent { /* private fields */ }Available on crate feature
agents only.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
Source§fn description(&self) -> &str
fn description(&self) -> &str
Returns a human-readable description of this agent’s purpose.
Source§fn sub_agents(&self) -> &[Arc<dyn Agent>]
fn sub_agents(&self) -> &[Arc<dyn Agent>]
Returns the child agents managed by this agent.
Source§fn run<'life0, 'async_trait>(
&'life0 self,
ctx: Arc<dyn InvocationContext>,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<Event, AdkError>> + Send>>, AdkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
LlmConditionalAgent: 'async_trait,
fn run<'life0, 'async_trait>(
&'life0 self,
ctx: Arc<dyn InvocationContext>,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<Event, AdkError>> + Send>>, AdkError>> + Send + 'async_trait>>where
'life0: 'async_trait,
LlmConditionalAgent: 'async_trait,
Executes the agent and returns a stream of events.
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