EvoX
Co-evolves the search strategy with the solutions: the parent/context selection policy is itself LLM-written code, scored by windowed improvement and hot-swapped on stagnation.
# 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.