pub struct OrchestrationConfig {Show 23 fields
pub enabled: bool,
pub max_tasks: u32,
pub max_parallel: u32,
pub default_failure_strategy: String,
pub default_max_retries: u32,
pub task_timeout_secs: u64,
pub planner_provider: ProviderName,
pub planner_max_tokens: u32,
pub dependency_context_budget: usize,
pub confirm_before_execute: bool,
pub aggregator_max_tokens: u32,
pub deferral_backoff_ms: u64,
pub plan_cache: PlanCacheConfig,
pub topology_selection: bool,
pub verify_provider: ProviderName,
pub verify_max_tokens: u32,
pub max_replans: u32,
pub verify_completeness: bool,
pub tool_provider: ProviderName,
pub completeness_threshold: f32,
pub cascade_routing: bool,
pub cascade_failure_threshold: f32,
pub tree_optimized_dispatch: bool,
}Expand description
Configuration for the task orchestration subsystem ([orchestration] TOML section).
Fields§
§enabled: boolEnable the orchestration subsystem.
max_tasks: u32Maximum number of tasks in a single graph.
max_parallel: u32Maximum number of tasks that can run in parallel.
default_failure_strategy: StringDefault failure strategy for all tasks unless overridden per-task.
default_max_retries: u32Default number of retries for the retry failure strategy.
task_timeout_secs: u64Timeout in seconds for a single task. 0 means no timeout.
planner_provider: ProviderNameProvider name from [[llm.providers]] for planning LLM calls.
Empty string = use the agent’s primary provider.
planner_max_tokens: u32Maximum tokens budget hint for planner responses. Reserved for future use when
per-call token limits are added to the LlmProvider::chat API.
dependency_context_budget: usizeTotal character budget for cross-task dependency context injection.
confirm_before_execute: boolWhether to show a confirmation prompt before executing a plan.
aggregator_max_tokens: u32Maximum tokens budget for aggregation LLM calls. Default: 4096.
deferral_backoff_ms: u64Base backoff for ConcurrencyLimit retries; grows exponentially (×2 each attempt) up to 5 s.
plan_cache: PlanCacheConfigPlan template caching configuration.
topology_selection: boolEnable topology-aware concurrency selection. When true, TopologyClassifier
adjusts max_parallel based on the DAG structure. Default: false (opt-in).
verify_provider: ProviderNameProvider name from [[llm.providers]] for verification LLM calls.
Empty string = use the agent’s primary provider. Should be a cheap/fast provider.
verify_max_tokens: u32Maximum tokens budget for verification LLM calls. Default: 1024.
max_replans: u32Maximum number of replan cycles per graph execution. Default: 2.
Prevents infinite verify-replan loops. 0 = disable replan (verification still runs, gaps are logged only).
verify_completeness: boolEnable post-task completeness verification. Default: false (opt-in).
When true, completed tasks are evaluated by PlanVerifier. Task stays
Completed during verification; downstream tasks are unblocked immediately.
Verification is best-effort and does not gate dispatch.
tool_provider: ProviderNameProvider name from [[llm.providers]] for tool-dispatch routing.
When set, tool-heavy tasks prefer this provider over the primary.
Prefer mid-tier models (e.g., qwen2.5:14b) for reliability per arXiv:2601.16280.
Empty string = use the primary provider.
completeness_threshold: f32Minimum completeness score (0.0–1.0) for the plan to be accepted without
replanning. Default: 0.7. When the verifier reports confidence < completeness_threshold AND gaps exist, a replan cycle is triggered.
Used by both per-task and whole-plan verification.
Values outside [0.0, 1.0] are rejected at startup by Config::validate().
cascade_routing: boolEnable cascade-aware routing for Mixed-topology DAGs. Requires topology_selection = true.
When enabled, tasks in failing subtrees are deprioritized in favour of healthy branches.
Default: false (opt-in).
cascade_failure_threshold: f32Failure rate threshold (0.0–1.0) above which a DAG region is considered “cascading”. Must be in (0.0, 1.0]. Default: 0.5.
tree_optimized_dispatch: boolEnable tree-optimized dispatch for FanOut/FanIn topologies. Sorts the ready queue by critical-path distance (deepest tasks first) to minimize end-to-end latency. Default: false (opt-in).
Trait Implementations§
Source§impl Clone for OrchestrationConfig
impl Clone for OrchestrationConfig
Source§fn clone(&self) -> OrchestrationConfig
fn clone(&self) -> OrchestrationConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for OrchestrationConfig
impl Debug for OrchestrationConfig
Source§impl Default for OrchestrationConfig
impl Default for OrchestrationConfig
Source§impl<'de> Deserialize<'de> for OrchestrationConfigwhere
OrchestrationConfig: Default,
impl<'de> Deserialize<'de> for OrchestrationConfigwhere
OrchestrationConfig: Default,
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>,
Auto Trait Implementations§
impl Freeze for OrchestrationConfig
impl RefUnwindSafe for OrchestrationConfig
impl Send for OrchestrationConfig
impl Sync for OrchestrationConfig
impl Unpin for OrchestrationConfig
impl UnsafeUnpin for OrchestrationConfig
impl UnwindSafe for OrchestrationConfig
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,
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>
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>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request