pub struct ParallelCoordinator { /* private fields */ }Expand description
并行协调器
并行将任务分发给多个 Agent
Implementations§
Source§impl ParallelCoordinator
impl ParallelCoordinator
Sourcepub fn new(agent_ids: Vec<String>) -> ParallelCoordinator
pub fn new(agent_ids: Vec<String>) -> ParallelCoordinator
创建新的并行协调器
Trait Implementations§
Source§impl Coordinator for ParallelCoordinator
impl Coordinator for ParallelCoordinator
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,
ParallelCoordinator: '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,
ParallelCoordinator: '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,
ParallelCoordinator: '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,
ParallelCoordinator: '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,
ParallelCoordinator: '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,
ParallelCoordinator: 'async_trait,
选择执行任务的 Agent
Source§fn requires_all(&self) -> bool
fn requires_all(&self) -> bool
是否需要所有 Agent 完成
Auto Trait Implementations§
impl Freeze for ParallelCoordinator
impl RefUnwindSafe for ParallelCoordinator
impl Send for ParallelCoordinator
impl Sync for ParallelCoordinator
impl Unpin for ParallelCoordinator
impl UnsafeUnpin for ParallelCoordinator
impl UnwindSafe for ParallelCoordinator
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