pub struct Fleet {
pub agents: Vec<AgentSpec>,
pub agent_timeout_secs: Option<u64>,
}Expand description
Fleet orchestrator — runs independent agents concurrently with shared knowledge.
Each agent gets its own Runtime (via SharedInfra) but they share state, event log, and policies. Agents communicate through the shared state (and optionally via Mailbox for real-time messaging).
§Example
ⓘ
let fleet = Fleet::new(vec![
AgentSpec::new("researcher", "Research competitor pricing"),
AgentSpec::new("analyst", "Analyze market trends"),
]);
let result = fleet.run(&runner, &infra).await?;Fields§
§agents: Vec<AgentSpec>Agent specifications — each runs independently.
agent_timeout_secs: Option<u64>Optional timeout per agent (seconds).
Implementations§
Source§impl Fleet
impl Fleet
pub fn new(agents: Vec<AgentSpec>) -> Self
pub fn with_timeout(self, timeout_secs: u64) -> Self
Sourcepub async fn run(
&self,
runner: &Arc<dyn AgentRunner>,
infra: &SharedInfra,
) -> Result<FleetResult, MultiError>
pub async fn run( &self, runner: &Arc<dyn AgentRunner>, infra: &SharedInfra, ) -> Result<FleetResult, MultiError>
Run all agents concurrently. Returns when all complete (or timeout).
Auto Trait Implementations§
impl Freeze for Fleet
impl RefUnwindSafe for Fleet
impl Send for Fleet
impl Sync for Fleet
impl Unpin for Fleet
impl UnsafeUnpin for Fleet
impl UnwindSafe for Fleet
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 more