# EvoX — faithful port of SkyDiscover's EvoX (CoEvolutionController) defaults (the reference # implementation; it is the ground truth wherever it diverges from the paper). # Sections mirror the six core components, plus `meta` for the strategy co-evolution loop. seed: 0 general: max_iterations: 100 inner_retry_times: 3 # CoEvolutionController calls _run_iteration(retry_times=3): # up to 3 generate+evaluate attempts per solution iteration # against the SAME sampled parent, folding each failure into # the retry prompt; the solution-iteration counter and the # J-scoring window both advance by attempts_used (1..3) — see # EvoXScaffold.after_step inner_retry_solution_chars: 1500 # _format_failed_attempts caps the failed solution/response at 1500 inner_retry_traceback_chars: 800 # ... and the traceback tail at 800 (SkyDiscover DefaultContextBuilder) population: # EvoXPopulation improvement_threshold: 0.01 # stagnation-reset gain τ (DEFAULT_IMPROVEMENT_THRESHOLD) statistics_k: 20 # get_statistics k — top-k scores in the φ descriptor selection_policy: # EvoXPolicy num_context_programs: 4 # inspirations requested from the active strategy's # sample() each iteration meta: # the strategy co-evolution loop (EvoXScaffold itself, # NOT a single component slot) switch_interval: null # W; null → auto = max(1, 10% of max_iterations) meta_num_context_programs: 2 # strategy inspirations sampled from H per generation event meta_max_retries: 3 # meta generation attempts per event with failure feedback auto_generate_variation_operators: true # false → static DEFAULT_DIVERGE/REFINE_TEMPLATE (no LLM) use_llm_stats_insight: true # false → raw format_population_state text in the meta prompt use_problem_summary: true # problem-context summary guide call (cached per problem) use_batch_summaries: true # batch [PROGRAM N] summaries of prior strategies max_strategy_chars: 60000 # generated strategy cap (max_solution_length, meta side) # NOTE (deviations from the upstream config surface): # - upstream `share_llm` is not exposed: galapagos scaffolds carry ONE model, so the meta loop and # the guide calls always share the run's model (the share_llm: true behaviour). # - upstream `database_file_path`/`evaluation_file`/`config_path` are not exposed: the seed # strategy is bundled (seed_strategy.py) and Valid(·) is strategy.validate_strategy.