pub struct ExperimentConfig {
pub enabled: bool,
pub eval_provider: ProviderName,
pub benchmark_file: Option<PathBuf>,
pub max_experiments: u32,
pub max_wall_time_secs: u64,
pub min_improvement: f64,
pub eval_budget_tokens: u64,
pub auto_apply: bool,
pub schedule: ExperimentSchedule,
pub tolerate_subject_errors: bool,
}Expand description
Configuration for the autonomous self-experimentation engine ([experiments] TOML section).
When enabled = true, Zeph periodically runs A/B experiments on its own skill and
prompt configurations to find improvements automatically.
§Example (TOML)
[experiments]
enabled = false
max_experiments = 20
auto_apply = falseFields§
§enabled: boolEnable autonomous self-experimentation. Default: false.
eval_provider: ProviderNameProvider name (from [[llm.providers]]) used as the LLM-as-judge for experiment
evaluation. An empty value falls back to the primary provider. Prefer a capable,
low-self-judge-bias model (e.g. a different provider than the one being evaluated).
benchmark_file: Option<PathBuf>Path to a benchmark JSONL file for evaluating experiments.
max_experiments: u32§max_wall_time_secs: u64§min_improvement: f64§eval_budget_tokens: u64§auto_apply: bool§schedule: ExperimentSchedule§tolerate_subject_errors: boolWhen true, a subject call failure (LLM error or timeout) excludes the case from
scoring instead of aborting the entire evaluation run.
Default: false (preserves existing abort-on-error semantics). Set to true when
running parallel evaluations where a single subject timeout should not discard all
already-billed responses from other in-flight futures — at the cost of producing a
partial result rather than a guaranteed complete evaluation.
Implementations§
Trait Implementations§
Source§impl Clone for ExperimentConfig
impl Clone for ExperimentConfig
Source§fn clone(&self) -> ExperimentConfig
fn clone(&self) -> ExperimentConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more