pub struct AgentOrchestrator { /* private fields */ }Expand description
Agent orchestrator for managing and coordinating subagent execution
Implementations§
Source§impl AgentOrchestrator
impl AgentOrchestrator
Sourcepub fn new(
registry: Arc<SubagentRegistry>,
config: OrchestratorConfig,
operating_mode: OperatingMode,
) -> Self
pub fn new( registry: Arc<SubagentRegistry>, config: OrchestratorConfig, operating_mode: OperatingMode, ) -> Self
Create a new agent orchestrator
Sourcepub async fn execute_plan(
&self,
request: InvocationRequest,
) -> Result<OrchestratorResult, SubagentError>
pub async fn execute_plan( &self, request: InvocationRequest, ) -> Result<OrchestratorResult, SubagentError>
Execute an invocation plan
Sourcepub async fn execute_single(
&self,
invocation: AgentInvocation,
shared_context: &SharedContext,
) -> Result<SubagentExecution, SubagentError>
pub async fn execute_single( &self, invocation: AgentInvocation, shared_context: &SharedContext, ) -> Result<SubagentExecution, SubagentError>
Execute a single agent
Sourcepub async fn execute_sequential(
&self,
chain: AgentChain,
shared_context: &SharedContext,
) -> Result<Vec<SubagentExecution>, SubagentError>
pub async fn execute_sequential( &self, chain: AgentChain, shared_context: &SharedContext, ) -> Result<Vec<SubagentExecution>, SubagentError>
Execute agents sequentially
Sourcepub async fn execute_parallel(
&self,
invocations: Vec<AgentInvocation>,
shared_context: &SharedContext,
) -> Result<Vec<SubagentExecution>, SubagentError>
pub async fn execute_parallel( &self, invocations: Vec<AgentInvocation>, shared_context: &SharedContext, ) -> Result<Vec<SubagentExecution>, SubagentError>
Execute agents in parallel
Sourcepub async fn execute_mixed(
&self,
steps: Vec<ExecutionStep>,
shared_context: &SharedContext,
) -> Result<Vec<SubagentExecution>, SubagentError>
pub async fn execute_mixed( &self, steps: Vec<ExecutionStep>, shared_context: &SharedContext, ) -> Result<Vec<SubagentExecution>, SubagentError>
Execute mixed execution plan
Sourcepub async fn progress_receiver(&self) -> UnboundedReceiver<ProgressUpdate>
pub async fn progress_receiver(&self) -> UnboundedReceiver<ProgressUpdate>
Get progress receiver
Sourcepub fn reset_cancellation(&self)
pub fn reset_cancellation(&self)
Reset cancellation flag
Sourcepub fn active_count(&self) -> usize
pub fn active_count(&self) -> usize
Get active execution count
Source§impl AgentOrchestrator
Conditional execution support
impl AgentOrchestrator
Conditional execution support
Sourcepub async fn execute_conditional<F>(
&self,
invocation: AgentInvocation,
shared_context: &SharedContext,
condition: F,
) -> Result<Option<SubagentExecution>, SubagentError>
pub async fn execute_conditional<F>( &self, invocation: AgentInvocation, shared_context: &SharedContext, condition: F, ) -> Result<Option<SubagentExecution>, SubagentError>
Execute with conditional logic
Sourcepub async fn execute_with_dependencies(
&self,
invocation: AgentInvocation,
dependencies: Vec<String>,
shared_context: &SharedContext,
) -> Result<SubagentExecution, SubagentError>
pub async fn execute_with_dependencies( &self, invocation: AgentInvocation, dependencies: Vec<String>, shared_context: &SharedContext, ) -> Result<SubagentExecution, SubagentError>
Execute with dependencies
Trait Implementations§
Auto Trait Implementations§
impl Freeze for AgentOrchestrator
impl !RefUnwindSafe for AgentOrchestrator
impl Send for AgentOrchestrator
impl Sync for AgentOrchestrator
impl Unpin for AgentOrchestrator
impl !UnwindSafe for AgentOrchestrator
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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 more