pub struct FanOutConfig {
pub worker_agent: Option<String>,
pub worker_stage: Option<String>,
pub worker_query: Option<String>,
pub merge_stage: Option<String>,
pub max_workers: usize,
pub on_worker_failure: WorkerFailurePolicy,
pub split_prompt: String,
pub results_region: Option<String>,
pub max_items: Option<usize>,
}Expand description
Configuration for a StageMode::FanOut stage.
Exactly one of worker_agent / worker_stage / worker_query selects the
worker’s agent type (validated when the blueprint’s graph is checked).
Fields§
§worker_agent: Option<String>A separate registered/installed blueprint run as the worker agent type.
worker_stage: Option<String>A stage in this blueprint (self-as-agent-type); must be marked
allow_as_worker = true.
worker_query: Option<String>Discovery hint matched against installed agent types.
merge_stage: Option<String>Optional stage that reconciles worker results before transitioning.
max_workers: usizeMaximum number of workers running concurrently.
on_worker_failure: WorkerFailurePolicyHow to handle worker failures.
split_prompt: StringPrompt that produces the JSON array of work items (one per worker).
results_region: Option<String>Context region the consolidated worker report is written to. None
means conversation.
Worth naming when the results are bulky. conversation is a sliding
window carrying the message history, so a large report competes with the
turns around it and can be evicted by them. A region of its own gets a
budget of its own, and that budget is what each worker’s share is
divided from.
max_items: Option<usize>Most work items the split may produce. None means however many it
produces.
Distinct from max_workers, which caps how many run at once. This
caps how many there are at all, which is what bounds both the run’s cost
and each worker’s share of the results region: split a hundred ways and
every worker’s contribution is a hundredth of the space.
Trait Implementations§
Source§impl Clone for FanOutConfig
impl Clone for FanOutConfig
Source§fn clone(&self) -> FanOutConfig
fn clone(&self) -> FanOutConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FanOutConfig
impl Debug for FanOutConfig
Source§impl<'de> Deserialize<'de> for FanOutConfig
impl<'de> Deserialize<'de> for FanOutConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for FanOutConfig
Source§impl PartialEq for FanOutConfig
impl PartialEq for FanOutConfig
Source§impl Serialize for FanOutConfig
impl Serialize for FanOutConfig
impl StructuralPartialEq for FanOutConfig
Auto Trait Implementations§
impl Freeze for FanOutConfig
impl RefUnwindSafe for FanOutConfig
impl Send for FanOutConfig
impl Sync for FanOutConfig
impl Unpin for FanOutConfig
impl UnsafeUnpin for FanOutConfig
impl UnwindSafe for FanOutConfig
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.