pub struct Swarm {
pub agents: Vec<AgentSpec>,
pub mode: SwarmMode,
pub synthesizer: Option<AgentSpec>,
pub isolated: bool,
pub workspaces: Option<WorkspaceConfig>,
}Fields§
§agents: Vec<AgentSpec>§mode: SwarmMode§synthesizer: Option<AgentSpec>§isolated: boolWhen true, each agent gets an isolated state overlay. Writes go to a per-agent local store; reads fall through to the shared parent. On success, local state is merged back to the parent.
workspaces: Option<WorkspaceConfig>When set (parallel mode), each agent gets an isolated filesystem
workspace, advertised to the runner via AgentSpec.metadata["workspace"].
Implementations§
Source§impl Swarm
impl Swarm
pub fn new(agents: Vec<AgentSpec>, mode: SwarmMode) -> Self
pub fn with_synthesizer(self, spec: AgentSpec) -> Self
Sourcepub fn with_isolation(self) -> Self
pub fn with_isolation(self) -> Self
Enable per-agent state isolation for this swarm.
Sourcepub fn with_workspaces(self, config: WorkspaceConfig) -> Self
pub fn with_workspaces(self, config: WorkspaceConfig) -> Self
Provision an isolated filesystem workspace per agent (parallel mode). Each
agent’s AgentSpec gets a workspace metadata entry with its directory;
the runner is expected to run its file tools there. Workspaces are removed
when the run completes. Prevents parallel file-mutating agents from
clobbering one another.
pub fn run<'a>( &'a self, task: &'a str, runner: &'a Arc<dyn AgentRunner>, infra: &'a SharedInfra, ) -> BoxFuture<'a, Result<SwarmResult, MultiError>>
Auto Trait Implementations§
impl Freeze for Swarm
impl RefUnwindSafe for Swarm
impl Send for Swarm
impl Sync for Swarm
impl Unpin for Swarm
impl UnsafeUnpin for Swarm
impl UnwindSafe for Swarm
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
impl<T> ErasedDestructor for Twhere
T: 'static,
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