pub enum TaskNodeKind {
Leaf,
Team {
subgraph: Box<TaskGraph>,
},
Debate {
config: DebateConfig,
},
}Expand description
Execution kind for a TaskNode: leaf worker, nested sub-team, or multi-agent debate.
A leaf runs a single agent; a team executes its own nested TaskGraph;
a debate node runs multiple agents arguing a contested goal across rounds.
Existing (Phase A–F) nodes all default to Leaf when deserialized from
JSON that does not carry a kind field.
§Example
use gglib_core::domain::council::task_graph::TaskNodeKind;
// Missing `kind` in old JSON → defaults to `Leaf`.
let kind: TaskNodeKind = serde_json::from_str("\"leaf\"").unwrap();
assert!(matches!(kind, TaskNodeKind::Leaf));Variants§
Leaf
A standard single-worker node. This is the default for all v1 nodes
and for any node deserialized from JSON that omits the kind field.
Team
A compound node that encapsulates a nested TaskGraph (a sub-team).
The executor recurses into subgraph and runs it to completion before
marking this node done and passing its synthesised output downstream.
Debate
A debate node where multiple agents argue a contested goal across multiple rounds, with an optional judge and final synthesis.
The executor runs the debate engine to completion before marking this
node done. The synthesis output becomes the node’s output and is
compacted for downstream predecessors exactly like a leaf output.
Fields
config: DebateConfigFull debate configuration (participants, rounds, judge).
Trait Implementations§
Source§impl Clone for TaskNodeKind
impl Clone for TaskNodeKind
Source§fn clone(&self) -> TaskNodeKind
fn clone(&self) -> TaskNodeKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more