pub struct WorkflowSpawnInfo {Show 14 fields
pub agent_id: String,
pub goal: String,
pub role: String,
pub isolation: String,
pub context_inheritance: String,
pub model_hint: Option<String>,
pub trust: String,
pub output_schema: Option<Value>,
pub reducer: Option<String>,
pub input_agent_ids: Vec<String>,
pub judge_match: Option<JudgeMatch>,
pub loop_max_iters: Option<usize>,
pub classify_labels: Vec<String>,
pub token_budget: Option<u64>,
}Expand description
Enough to run one spawned workflow node, carried to the SDK in the WorkflowBatchSpawned
observation. Role/isolation/inheritance are canonical snake_case strings (serde names) so the
host SDK can rebuild an agent run spec — the kernel generates these specs internally, so this
is how the goal reaches the SDK that actually executes the node.
Fields§
§agent_id: String§goal: String§role: String§isolation: String§context_inheritance: String§model_hint: Option<String>§trust: StringW3 trust level ("trusted" | "quarantined") — the SDK runs quarantined nodes without
privileges and crosses their output back only as a structured summary.
output_schema: Option<Value>G3 structured output: the JSON Schema the node’s output must conform to, carried verbatim
from WorkflowNode::output_schema. The SDK instructs the agent with it and validates +
retries on its result. None when the node declared no schema. Additive ABI.
reducer: Option<String>G2 deterministic compute: present only for a NodeKind::Reduce node — the name of the
SDK-registered pure function the SDK runs (over input_agent_ids’ outputs) instead of an LLM
agent. None for every ordinary node. Additive ABI.
input_agent_ids: Vec<String>G2: the dependency agent ids whose outputs a NodeKind::Reduce node consumes (its
depends_on, resolved to stable agent ids). Empty for non-reduce nodes. Additive ABI.
judge_match: Option<JudgeMatch>Present only for a tournament judge spawn (A#2): the two entrant agent ids whose outputs
this judge must compare. The SDK looks up those entrants’ produced candidates, runs the
judge, and reports the winner in the result’s tournament_winner. None for every ordinary
(entrant / spawn / loop / classify) node. Additive ABI: omitted on the wire when None.
loop_max_iters: Option<usize>Present only for a NodeKind::Loop iteration spawn (A#2 v2): the loop’s max_iters. It
both marks the spawn as a loop iteration — so the SDK knows to solicit and report a
loop_continue stop signal from the agent — and gives the cap for the agent’s prompt. None
for every non-loop node. Mirrors how reducer / judge_match distinguish reduce / judge
spawns. Additive ABI: omitted on the wire when None.
classify_labels: Vec<String>Present only for a NodeKind::Classify spawn (A#2): the branch labels the classifier must
choose among. Non-empty marks the spawn as a classifier — the SDK instructs the agent to
pick exactly one label and reports it in the result’s classify_branch. Empty for every
non-classify node. Additive ABI: omitted on the wire when empty.
token_budget: Option<u64>M4/G5: the node’s per-node cumulative token cap, if set. The SDK sets the child run’s
max_total_tokens to this so the node self-terminates at the cap. Additive ABI: omitted when
None.
Trait Implementations§
Source§impl Clone for WorkflowSpawnInfo
impl Clone for WorkflowSpawnInfo
Source§fn clone(&self) -> WorkflowSpawnInfo
fn clone(&self) -> WorkflowSpawnInfo
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 WorkflowSpawnInfo
impl Debug for WorkflowSpawnInfo
Source§impl<'de> Deserialize<'de> for WorkflowSpawnInfo
impl<'de> Deserialize<'de> for WorkflowSpawnInfo
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<WorkflowSpawnInfo, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<WorkflowSpawnInfo, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for WorkflowSpawnInfo
Source§impl PartialEq for WorkflowSpawnInfo
impl PartialEq for WorkflowSpawnInfo
Source§fn eq(&self, other: &WorkflowSpawnInfo) -> bool
fn eq(&self, other: &WorkflowSpawnInfo) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for WorkflowSpawnInfo
impl Serialize for WorkflowSpawnInfo
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for WorkflowSpawnInfo
Auto Trait Implementations§
impl Freeze for WorkflowSpawnInfo
impl RefUnwindSafe for WorkflowSpawnInfo
impl Send for WorkflowSpawnInfo
impl Sync for WorkflowSpawnInfo
impl Unpin for WorkflowSpawnInfo
impl UnsafeUnpin for WorkflowSpawnInfo
impl UnwindSafe for WorkflowSpawnInfo
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.