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.
Configuration File Structure
SkyDiscover uses YAML files to configure all aspects of the discovery process:
# General settings
max_iterations : 100
checkpoint_interval : 10
log_level : "INFO"
# LLM configuration
llm :
models :
- name : "gpt-5"
weight : 1.0
temperature : 0.7
max_tokens : 32000
# Search algorithm
search :
type : "adaevolve"
num_context_programs : 4
database :
population_size : 20
num_islands : 2
# Prompt configuration
prompt :
system_message : "You are an expert to help find the best solution."
# Evaluator configuration
evaluator :
timeout : 360
cascade_evaluation : true
General Settings
Maximum number of discovery iterations
Save checkpoint every N iterations
Logging level: DEBUG, INFO, WARNING, ERROR, CRITICAL
Custom directory for log files (default: output_dir/logs)
Target language: python for code, text for prompts
File extension for generated programs (.py, .txt, .cpp, etc.)
Generate diffs instead of full programs (faster, more focused)
Maximum characters in generated solutions
Number of iterations to run concurrently (1 = sequential)
LLM Configuration
Basic Model Setup
llm :
models :
- name : "gpt-5"
weight : 1.0
api_base : "https://api.openai.com/v1"
temperature : 0.7
top_p : 0.95
max_tokens : 32000
timeout : 600
retries : 3
retry_delay : 5
Multiple Models
SkyDiscover samples from multiple models based on weights:
llm :
models :
- name : "gpt-5"
weight : 0.5
- name : "gemini/gemini-3-pro"
weight : 0.3
- name : "claude-3-7-sonnet"
weight : 0.2
temperature : 0.7
max_tokens : 32000
Per-Model Configuration
llm :
models :
- name : "gpt-5"
weight : 0.7
temperature : 0.8
max_tokens : 40000
- name : "gemini/gemini-3-pro"
weight : 0.3
temperature : 0.6
max_tokens : 30000
api_key : ${GEMINI_API_KEY} # Model-specific key
# Defaults for models without explicit values
temperature : 0.7
max_tokens : 32000
Evaluator and Guide Models
llm :
# Main models for solution generation
models :
- name : "gpt-5"
weight : 1.0
# Models for LLM-as-judge evaluation
evaluator_models :
- name : "gpt-4o-mini"
weight : 1.0
# Models for high-level strategy (paradigm breakthrough)
guide_models :
- name : "o1"
reasoning_effort : "high"
weight : 1.0
If evaluator_models or guide_models are not specified, they default to the same models as the main models list.
LLM Parameters
llm.api_base
string
default: "https://api.openai.com/v1"
Base URL for API requests
API key (defaults to environment variable)
Sampling temperature (0.0 = deterministic, 2.0 = very random)
Nucleus sampling threshold
Maximum tokens per generation
Request timeout in seconds
Number of retry attempts on failure
Seconds to wait between retries
Reasoning effort for o1/o3 models: low, medium, high
Search Configuration
Top-K (Simple)
search :
type : "topk"
num_context_programs : 4
database :
db_path : "database.db"
log_prompts : true
AdaEvolve (Adaptive Multi-Island)
search :
type : "adaevolve"
num_context_programs : 4
database :
# Population
population_size : 20
num_islands : 2
# Adaptive intensity
decay : 0.9
intensity_min : 0.15
intensity_max : 0.5
use_adaptive_search : true
# Island selection
use_ucb_selection : true
# Migration
use_migration : true
migration_interval : 15
migration_count : 5
# Archive
use_unified_archive : true
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_num_to_generate : 3
AdaEvolve Parameters Explained
Adaptive Intensity:
decay: EMA weight (0.9 = slow adaptation)
intensity_min: Min search intensity (exploitation)
intensity_max: Max search intensity (exploration)
Migration:
Every migration_interval iterations, top migration_count programs migrate to neighboring islands
Diversity Strategy:
code: Edit distance between solutions
metric: Euclidean distance in metric space
hybrid: Weighted combination
Paradigm Breakthrough:
Triggered when improvement rate drops below threshold
Generates high-level strategy ideas to escape local optima
Beam Search
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
Best-of-N
search :
type : "best_of_n"
num_context_programs : 4
database :
best_of_n : 5
EvoX (Co-Evolution)
search :
type : "evox"
num_context_programs : 4
database :
database_file_path : null # Uses default search strategy
evaluation_file : null # Uses default evaluator
config_path : null # Uses default config
auto_generate_variation_operators : true
OpenEvolve Native (MAP-Elites)
search :
type : "openevolve_native"
num_context_programs : 4
database :
num_islands : 5
population_size : 40
archive_size : 100
exploration_ratio : 0.2
exploitation_ratio : 0.7
elite_selection_ratio : 0.1
feature_dimensions : [ "complexity" , "diversity" ]
feature_bins : 10
migration_interval : 10
migration_rate : 0.1
GEPA Native
search :
type : "gepa_native"
num_context_programs : 4
database :
population_size : 40
candidate_selection_strategy : "epsilon_greedy" # "best", "pareto"
epsilon : 0.1
acceptance_gating : true
use_merge : true
merge_after_stagnation : 15
Prompt Configuration
System Message
prompt :
system_message : |
You are an expert mathematician specializing in circle packing.
Your task is to improve a function that arranges N circles in a unit
square to maximize the sum of their radii.
Key insights:
- Hexagonal patterns achieve densest packing
- Edge effects make square containers harder
- Consider layered/shell arrangements
External File
prompt :
system_message : "system_prompt.txt" # Load from file
Template Selection
prompt :
template : "default" # "default" or "evox"
template_dir : null # Custom template directory
system_message : "system_message"
evaluator_system_message : "evaluator_system_message" # For LLM judge
Simplification Suggestion
prompt :
suggest_simplification_after_chars : 500 # Suggest simplifying if solution > 500 chars
Evaluator Configuration
evaluator :
timeout : 360 # Evaluation timeout (seconds)
max_retries : 3 # Retry on failure
# Cascade evaluation
cascade_evaluation : true
cascade_thresholds : [ 0.3 , 0.6 ]
# LLM-as-a-judge
llm_as_judge : false
Maximum seconds for evaluation
Retry failed evaluations N times
evaluator.cascade_evaluation
Enable multi-stage evaluation (requires evaluate_stage1() and evaluate_stage2() in evaluator)
evaluator.cascade_thresholds
array
default: "[0.3, 0.6]"
Score thresholds for cascade stages
Enable LLM judge for qualitative feedback
Agentic Configuration
Enable codebase-aware solution generation:
agentic :
enabled : false
codebase_root : null # Auto-detected from initial_program location
# Agent loop limits
max_steps : 5
per_step_timeout : 60.0
overall_timeout : 300.0
# Context management
max_context_chars : 400000
max_file_chars : 50000
max_search_results : 50
max_files_read : 20
# Regex safety
regex_timeout : 2.0
max_regex_length : 200
# Repo map
repo_map_max_depth : 4
# File access
allowed_extensions :
- ".py"
- ".txt"
- ".md"
- ".json"
- ".yaml"
excluded_dirs :
- ".git"
- "__pycache__"
- "node_modules"
- ".venv"
Monitor Configuration
Enable live dashboard:
monitor :
enabled : true
host : "127.0.0.1"
port : 8765
max_solution_length : 10000
# AI summary settings
summary_model : "gpt-5-mini"
summary_api_key : null # Defaults to OPENAI_API_KEY
summary_api_base : "https://api.openai.com/v1"
summary_top_k : 3 # Summarize top-K programs
summary_interval : 0 # Auto-generate every N programs (0 = manual only)
See the Monitoring guide for details.
Human Feedback Configuration
human_feedback_enabled : true
human_feedback_file : "human_feedback.md"
human_feedback_mode : "append" # "append" or "replace"
Write feedback in Markdown:
# Iteration 15
The packing is too dense in the center. Try spreading circles more evenly.
# Iteration 22
Good improvement! Now focus on optimizing corner utilization.
Environment Variable Expansion
Use ${VAR} syntax to reference environment variables:
llm :
api_key : ${OPENAI_API_KEY}
models :
- name : "gemini/gemini-3-pro"
api_key : ${GEMINI_API_KEY}
Example Configurations
Default (Top-K)
AdaEvolve
Multi-Model
LLM Judge
max_iterations : 100
checkpoint_interval : 10
log_level : "INFO"
llm :
models :
- name : "gpt-5"
weight : 1.0
temperature : 0.7
max_tokens : 32000
search :
type : "topk"
num_context_programs : 4
prompt :
system_message : "You are an expert to help find the best solution."
evaluator :
timeout : 360
cascade_evaluation : false
diff_based_generation : true
Next Steps
Model Providers Set up different LLM providers
Writing Evaluators Create effective scoring functions
Monitoring Enable the live dashboard
Benchmarks See real configuration examples