Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/skydiscover-ai/skydiscover/llms.txt

Use this file to discover all available pages before exploring further.

Overview

The search section controls the evolutionary search algorithm, database backend, and context program selection strategy.

Basic Configuration

search:
  type: "topk"              # Search algorithm type
  num_context_programs: 4   # Number of examples in prompt
  output_dir: null          # Override output directory
  database:                 # Algorithm-specific settings
    db_path: null
    log_prompts: true

Search Types

SkyDiscover supports multiple search algorithms, each with different strategies for exploring the solution space. Simple best-first search that maintains the top-k programs by fitness.
search:
  type: "topk"
  num_context_programs: 4
  database:
    db_path: "outputs/database.db"
    log_prompts: true
db_path
str
default:"None"
Path to SQLite database for storing results
log_prompts
bool
default:"true"
Whether to log prompts to the database

AdaEvolve (Adaptive Multi-Island)

Adaptive evolutionary algorithm with multiple islands that adjust search intensity based on improvement history.
configs/adaevolve.yaml
search:
  type: "adaevolve"
  num_context_programs: 4
  database:
    # Population settings
    population_size: 20
    num_islands: 2
    
    # Adaptive search intensity
    decay: 0.9
    intensity_min: 0.15
    intensity_max: 0.5
    
    # Feature flags
    use_adaptive_search: true
    use_ucb_selection: true
    use_migration: true
    use_unified_archive: true
    
    # Migration
    migration_interval: 15
    migration_count: 5
    
    # Archive settings
    fitness_weight: 1.0
    novelty_weight: 0.0
    diversity_strategy: "code"  # code, metric, or hybrid
    
    # Dynamic islands
    use_dynamic_islands: true
    max_islands: 5
    spawn_productivity_threshold: 0.015
    spawn_cooldown_iterations: 30
    
    # Paradigm breakthrough
    use_paradigm_breakthrough: true
    paradigm_window_size: 10
    paradigm_improvement_threshold: 0.12
    paradigm_max_uses: 2
    paradigm_max_tried: 10
    paradigm_num_to_generate: 3
Defined in skydiscover/config.py:380-432
population_size
int
default:"20"
Number of programs per island
num_islands
int
default:"2"
Initial number of islands
archive_size
int
default:"100"
Maximum size of the unified archive
use_ucb_selection
bool
default:"true"
Use UCB (Upper Confidence Bound) for island selection
use_migration
bool
default:"true"
Enable inter-island migration
migration_interval
int
default:"15"
Migrate every N iterations
migration_count
int
default:"5"
Number of top programs to migrate
use_unified_archive
bool
default:"true"
Use quality-diversity archive
fitness_weight
float
default:"1.0"
Weight for fitness rank in elite score
novelty_weight
float
default:"0.0"
Weight for novelty rank in elite score
diversity_strategy
str
default:"code"
Diversity metric: code, metric, or hybrid
k_neighbors
int
default:"5"
Number of neighbors for novelty calculation
use_dynamic_islands
bool
default:"true"
Enable dynamic island spawning
max_islands
int
default:"5"
Maximum number of islands
spawn_productivity_threshold
float
default:"0.015"
Spawn new island if productivity drops below this
spawn_cooldown_iterations
int
default:"30"
Wait N iterations between island spawns
use_paradigm_breakthrough
bool
default:"true"
Generate new high-level strategies during stagnation
paradigm_window_size
int
default:"10"
Window for improvement rate calculation
paradigm_improvement_threshold
float
default:"0.12"
Trigger paradigm breakthrough below this improvement rate
paradigm_max_uses
int
default:"2"
Maximum uses per paradigm
paradigm_num_to_generate
int
default:"3"
Number of paradigms to generate per trigger
paradigm_max_tried
int
default:"10"
Maximum tried paradigms to track

OpenEvolve Native (MAP-Elites)

Quality-diversity search using MAP-Elites grids with island-based populations.
configs/openevolve_native.yaml
search:
  type: "openevolve_native"
  num_context_programs: 5
  database:
    num_islands: 5
    population_size: 40
    archive_size: 100
    
    # Selection strategies
    exploration_ratio: 0.2    # P(explore) - random from island
    exploitation_ratio: 0.7   # P(exploit) - archive elite
    # remaining 0.1 = P(random)
    
    elite_selection_ratio: 0.1
    
    # MAP-Elites features
    feature_dimensions: ["complexity", "diversity"]
    feature_bins: 10
    diversity_reference_size: 20
    
    # Migration
    migration_interval: 10
    migration_rate: 0.1
    
    random_seed: 42
Defined in skydiscover/config.py:435-450
num_islands
int
default:"5"
Number of islands in the population
population_size
int
default:"40"
Total population size across all islands
archive_size
int
default:"100"
Size of the MAP-Elites archive
exploration_ratio
float
default:"0.2"
Probability of exploration (random parent from current island)
exploitation_ratio
float
default:"0.7"
Probability of exploitation (elite from archive)
elite_selection_ratio
float
default:"0.1"
Fraction of context programs from top elites
feature_dimensions
List[str]
default:"[\"complexity\", \"diversity\"]"
Behavioral dimensions for MAP-Elites grid
feature_bins
int
default:"10"
Number of bins per feature dimension

GEPA Native

Guided Evolution for Program Adaptation with elite pool, epsilon-greedy selection, and LLM-mediated merge.
search:
  type: "gepa_native"
  num_context_programs: 4
  database:
    population_size: 40
    
    # Selection
    candidate_selection_strategy: "epsilon_greedy"  # epsilon_greedy, best, pareto
    epsilon: 0.1
    max_rejection_history: 20
    
    # Controller settings
    acceptance_gating: true
    use_merge: true
    merge_after_stagnation: 15
    max_merge_attempts: 10
    max_recent_failures: 5
    
    random_seed: 42
Defined in skydiscover/config.py:453-472 Beam search with diversity weighting.
search:
  type: "beam_search"
  num_context_programs: 4
  database:
    beam_width: 5
    beam_selection_strategy: "diversity_weighted"
    beam_diversity_weight: 0.3
    beam_temperature: 1.0
    beam_depth_penalty: 0.0
Defined in skydiscover/config.py:362-370

Best-of-N

Generate N candidates and select the best one.
search:
  type: "best_of_n"
  num_context_programs: 4
  database:
    best_of_n: 5
Defined in skydiscover/config.py:373-377

EvoX (Co-Evolution)

Label-guided co-evolutionary search.
configs/evox.yaml
search:
  type: "evox"
  database:
    database_file_path: null  # Auto-configured
    evaluation_file: null     # Auto-configured
    config_path: null         # Auto-configured
    auto_generate_variation_operators: true
Defined in skydiscover/config.py:339-359

SearchConfig Parameters

Defined in skydiscover/config.py:485-493
type
str
default:"topk"
Search algorithm: topk, adaevolve, openevolve_native, gepa_native, beam_search, best_of_n, or evox
num_context_programs
int
default:"4"
Number of example programs to include in generation prompts
output_dir
str
default:"None"
Override output directory. If None, auto-generates based on search type and timestamp
database
DatabaseConfig
default:"DatabaseConfig()"
Algorithm-specific database configuration

CLI Overrides

Override search type from command line:
# Use AdaEvolve
skydiscover-run program.py evaluator.py -s adaevolve

# Use OpenEvolve Native
skydiscover-run program.py evaluator.py -s openevolve_native

# Use beam search
skydiscover-run program.py evaluator.py -s beam_search

Choosing a Search Algorithm

Top-K

Best for: Quick experiments, simple optimizationPros: Fast, simple, low overheadCons: Limited exploration

AdaEvolve

Best for: Complex optimization, long runsPros: Adaptive, robust, handles stagnationCons: More computational overhead

OpenEvolve Native

Best for: Quality-diversity, exploring trade-offsPros: Diverse solutions, explores full spaceCons: Requires good feature dimensions

GEPA

Best for: Merging diverse solutionsPros: LLM-mediated combination, smart gatingCons: Higher LLM token usage

Next Steps

LLM Configuration

Configure models for search

Evaluator Configuration

Set up program evaluation

Build docs developers (and LLMs) love