pub struct ExecutorConfig {
pub llm: LlmConfig,
pub timeout_secs: u64,
pub save_traces: bool,
pub trace_dir: Option<PathBuf>,
pub verbose: bool,
pub use_mock: bool,
pub budget: BudgetConfig,
pub cli_tool: Option<CliToolConfig>,
pub self_consistency: Option<SelfConsistencyConfig>,
pub show_progress: bool,
pub enable_parallel: bool,
pub max_concurrent_steps: usize,
}Expand description
Configuration for protocol execution
Fields§
§llm: LlmConfigLLM configuration
timeout_secs: u64Global timeout in seconds
save_traces: boolWhether to save traces
trace_dir: Option<PathBuf>Trace output directory
verbose: boolVerbose output
use_mock: boolUse mock LLM (for testing)
budget: BudgetConfigBudget constraints for adaptive execution
cli_tool: Option<CliToolConfig>CLI tool configuration (for shell-out execution to claude/codex/gemini/etc.)
self_consistency: Option<SelfConsistencyConfig>Self-Consistency configuration (Wang et al. 2023) Enables voting across multiple reasoning paths for improved accuracy Reference: arXiv:2203.11171 (+17.9% GSM8K improvement)
show_progress: boolShow progress indicators during execution Outputs step progress to stderr so it doesn’t interfere with JSON output
enable_parallel: boolEnable parallel execution of independent steps When enabled, steps without dependencies or with satisfied dependencies will be executed concurrently, significantly reducing total latency. PERFORMANCE: Can reduce (N-1)/N latency for N independent steps.
max_concurrent_steps: usizeMaximum concurrent steps when parallel execution is enabled Set to 0 for unlimited concurrency (default: 4)
Implementations§
Source§impl ExecutorConfig
impl ExecutorConfig
Sourcepub fn with_cli_tool(tool: CliToolConfig) -> Self
pub fn with_cli_tool(tool: CliToolConfig) -> Self
Create config for CLI tool execution
Sourcepub fn claude_cli() -> Self
pub fn claude_cli() -> Self
Create config for Claude CLI
Sourcepub fn gemini_cli() -> Self
pub fn gemini_cli() -> Self
Create config for Gemini CLI
Sourcepub fn opencode_cli() -> Self
pub fn opencode_cli() -> Self
Create config for OpenCode CLI
Sourcepub fn copilot_cli() -> Self
pub fn copilot_cli() -> Self
Create config for Copilot CLI
Sourcepub fn with_self_consistency(self) -> Self
pub fn with_self_consistency(self) -> Self
Enable Self-Consistency with default config (5 samples, majority vote) Research: Wang et al. 2023 (arXiv:2203.11171) +17.9% GSM8K
Sourcepub fn with_self_consistency_config(self, config: SelfConsistencyConfig) -> Self
pub fn with_self_consistency_config(self, config: SelfConsistencyConfig) -> Self
Enable Self-Consistency with custom config
Sourcepub fn with_self_consistency_fast(self) -> Self
pub fn with_self_consistency_fast(self) -> Self
Enable fast Self-Consistency (3 samples, 70% threshold)
Sourcepub fn with_self_consistency_thorough(self) -> Self
pub fn with_self_consistency_thorough(self) -> Self
Enable thorough Self-Consistency (10 samples, no early stopping)
Sourcepub fn with_self_consistency_paranoid(self) -> Self
pub fn with_self_consistency_paranoid(self) -> Self
Enable paranoid Self-Consistency (15 samples, max accuracy)
Sourcepub fn with_parallel(self) -> Self
pub fn with_parallel(self) -> Self
Enable parallel execution of independent steps PERFORMANCE: Can reduce (N-1)/N latency for N independent steps
Sourcepub fn with_parallel_limit(self, max_concurrent: usize) -> Self
pub fn with_parallel_limit(self, max_concurrent: usize) -> Self
Enable parallel execution with custom concurrency limit
Trait Implementations§
Source§impl Clone for ExecutorConfig
impl Clone for ExecutorConfig
Source§fn clone(&self) -> ExecutorConfig
fn clone(&self) -> ExecutorConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ExecutorConfig
impl Debug for ExecutorConfig
Source§impl Default for ExecutorConfig
impl Default for ExecutorConfig
Source§impl<'de> Deserialize<'de> for ExecutorConfig
impl<'de> Deserialize<'de> for ExecutorConfig
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 ExecutorConfig
impl RefUnwindSafe for ExecutorConfig
impl Send for ExecutorConfig
impl Sync for ExecutorConfig
impl Unpin for ExecutorConfig
impl UnwindSafe for ExecutorConfig
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 more