pub struct SequentialCoordinator { /* private fields */ }Expand description
顺序协调器
按顺序将任务分发给多个 Agent
Implementations§
Source§impl SequentialCoordinator
impl SequentialCoordinator
Sourcepub fn new(agent_ids: Vec<String>) -> SequentialCoordinator
pub fn new(agent_ids: Vec<String>) -> SequentialCoordinator
创建新的顺序协调器
Trait Implementations§
Source§impl Coordinator for SequentialCoordinator
impl Coordinator for SequentialCoordinator
Source§fn dispatch<'life0, 'life1, 'async_trait>(
&'life0 self,
task: Task,
_ctx: &'life1 AgentContext,
) -> Pin<Box<dyn Future<Output = Result<Vec<DispatchResult>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SequentialCoordinator: 'async_trait,
fn dispatch<'life0, 'life1, 'async_trait>(
&'life0 self,
task: Task,
_ctx: &'life1 AgentContext,
) -> Pin<Box<dyn Future<Output = Result<Vec<DispatchResult>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SequentialCoordinator: 'async_trait,
分发任务给 Agent(s)
Source§fn aggregate<'life0, 'async_trait>(
&'life0 self,
results: Vec<AgentOutput>,
) -> Pin<Box<dyn Future<Output = Result<AgentOutput, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
SequentialCoordinator: 'async_trait,
fn aggregate<'life0, 'async_trait>(
&'life0 self,
results: Vec<AgentOutput>,
) -> Pin<Box<dyn Future<Output = Result<AgentOutput, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
SequentialCoordinator: 'async_trait,
聚合多个 Agent 的结果
Source§fn pattern(&self) -> CoordinationPattern
fn pattern(&self) -> CoordinationPattern
获取协调模式
Source§fn select_agents<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_task: &'life1 Task,
_ctx: &'life2 AgentContext,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
SequentialCoordinator: 'async_trait,
fn select_agents<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_task: &'life1 Task,
_ctx: &'life2 AgentContext,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, AgentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
SequentialCoordinator: 'async_trait,
选择执行任务的 Agent
Source§fn requires_all(&self) -> bool
fn requires_all(&self) -> bool
是否需要所有 Agent 完成
Auto Trait Implementations§
impl Freeze for SequentialCoordinator
impl RefUnwindSafe for SequentialCoordinator
impl Send for SequentialCoordinator
impl Sync for SequentialCoordinator
impl Unpin for SequentialCoordinator
impl UnsafeUnpin for SequentialCoordinator
impl UnwindSafe for SequentialCoordinator
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