# OpenEvolve — faithful port of the real OpenEvolve (open AlphaEvolve) defaults. # Sections mirror the six core components; only the components OpenEvolve tunes appear here. seed: 42 # OpenEvolve DatabaseConfig.random_seed default general: max_iterations: 100 max_solution_length: 10000 # OpenEvolve Config.max_code_length default (over-length children rejected) population: # MapElitesIslandsPopulation num_islands: 5 archive_size: 100 population_size: 1000 feature_dimensions: [complexity, diversity] feature_bins: 10 migration_interval: 50 # migrate every N island generations migration_rate: 0.1 # fraction of each island migrated to ring neighbours diversity_reference_size: 20 selection_policy: # OpenEvolveSelectionPolicy # (also reads population.num_islands + population.feature_dimensions) exploration_ratio: 0.2 # P(uniform-random parent from current island) exploitation_ratio: 0.7 # P(fitness-weighted parent from the archive) elite_selection_ratio: 0.1 # top fraction of island used as inspirations num_inspirations: 3 # prompt.num_top_programs (the PromptBuilder reuses this count) num_diverse: 2 # prompt.num_diverse_programs proposer: # OpenEvolve LLMConfig defaults (apply only to a model built from this preset) top_p: 0.95 max_tokens: 4096 timeout: 60 # OpenEvolve's default is a weighted 2-model ensemble; galapagos uses your injected model by default. # To replicate the upstream default, uncomment a `models:` list — build_model samples one model per # generate() by normalized weight (EnsembleModel). Provider/host/keys are yours to set: # models: # - {name: gemini-2.0-flash-lite, weight: 0.8, host: openrouter} # - {name: gemini-2.0-flash, weight: 0.2, host: openrouter} # NOTE: upstream `diff_based` / `allow_full_rewrite` / `max_code_length` are NOT exposed: # OpenEvolveProposer is hard-wired to whole-line SEARCH/REPLACE diffs (apply_diff), no full-rewrite # fallback — a response with no valid diff block is a no-op, as the reference discards it in diff mode. # Cascade evaluation is task-owned (runs evaluate_stageN when the task defines them); the scaffold # applies OpenEvolve's cascade_thresholds [0.5, 0.75, 0.9] unless the task card sets its own.