pub struct RuleBasedRouter { /* private fields */ }Expand description
基于规则的路由器
Implementations§
Source§impl RuleBasedRouter
impl RuleBasedRouter
pub fn new() -> RuleBasedRouter
pub fn with_default_agent(self, agent_id: impl Into<String>) -> RuleBasedRouter
pub fn with_confirm_on_match(self, confirm: bool) -> RuleBasedRouter
Sourcepub async fn add_rule(&self, rule: RoutingRule)
pub async fn add_rule(&self, rule: RoutingRule)
添加规则
Sourcepub async fn remove_rule(&self, rule_id: &str)
pub async fn remove_rule(&self, rule_id: &str)
移除规则
Trait Implementations§
Source§impl AgentRouter for RuleBasedRouter
impl AgentRouter for RuleBasedRouter
Source§fn route<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
context: &'life1 RoutingContext,
available_agents: &'life2 [AgentInfo],
) -> Pin<Box<dyn Future<Output = Result<RoutingDecision, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
RuleBasedRouter: 'async_trait,
fn route<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
context: &'life1 RoutingContext,
available_agents: &'life2 [AgentInfo],
) -> Pin<Box<dyn Future<Output = Result<RoutingDecision, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
RuleBasedRouter: 'async_trait,
为子任务选择最合适的Agent
Source§fn route_batch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
contexts: &'life1 [RoutingContext],
available_agents: &'life2 [AgentInfo],
) -> Pin<Box<dyn Future<Output = Result<Vec<RoutingDecision>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn route_batch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
contexts: &'life1 [RoutingContext],
available_agents: &'life2 [AgentInfo],
) -> Pin<Box<dyn Future<Output = Result<Vec<RoutingDecision>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
批量路由多个子任务
Source§fn validate_decision<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
decision: &'life1 RoutingDecision,
available_agents: &'life2 [AgentInfo],
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn validate_decision<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
decision: &'life1 RoutingDecision,
available_agents: &'life2 [AgentInfo],
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
验证路由决策是否有效
Source§impl Default for RuleBasedRouter
impl Default for RuleBasedRouter
Source§fn default() -> RuleBasedRouter
fn default() -> RuleBasedRouter
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for RuleBasedRouter
impl !RefUnwindSafe for RuleBasedRouter
impl Send for RuleBasedRouter
impl Sync for RuleBasedRouter
impl Unpin for RuleBasedRouter
impl UnsafeUnpin for RuleBasedRouter
impl !UnwindSafe for RuleBasedRouter
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> 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> 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 moreSource§impl<T> Message for T
impl<T> Message for T
Source§fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>
fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>
Convert a BoxedMessage to this concrete type
Source§fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>
fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>
Convert this message to a BoxedMessage