# GEPA — faithful port of the reference implementation's defaults (github.com/gepa-ai/gepa). # Sections mirror the six core components; only the components GEPA tunes appear here. seed: 0 # EngineConfig.seed default (the Pareto sampler's RNG) general: max_iterations: 100 # GEPA is not a diff method: the reflection LM returns a complete drop-in replacement, extracted # from the ``` block by GEPA's own outer-fence extractor (proposer.py). Naming it here keeps the # run's recorded config honest instead of inheriting the framework's diff default. mutation_approach: reflective_rewrite inner_retry_times: 1 # upstream proposes once per iteration; a failed proposal is # logged and the loop moves on (GEPAEngine.run exception path) population: # GepaCandidatePool acceptance_criterion: strict_improvement # StrictImprovementAcceptance (EngineConfig default); # "improvement_or_equal" allows lateral moves selection_policy: # ParetoCandidateSelector frontier_type: hybrid # EngineConfig.frontier_type default — instance keys UNION # objective keys. Also: instance | objective | cartesian. proposer: # ReflectionConfig (gepa.lm.LM sends no sampling params, so the temperature: 1.0 # provider default applies — 1.0 for the OpenAI-compatible APIs) retries: 3 # LM(num_retries=3) # NOT exposed, because each is structurally inert on galapagos's single-artifact candidate: # merge / max_merge_invocations — system-aware merge needs two candidates that changed DIFFERENT # components of a common ancestor (upstream default: disabled). # module_selector — round-robin over one component. # reflection_minibatch_size — single-instance mode pins it to 1 (upstream does the same). # max_metric_calls — galapagos's only stop condition is general.max_iterations. # num_parallel_proposals / parallel — the galapagos loop is strictly sequential by design.