Skip to main content

Introduction

SkyDiscover uses YAML configuration files to control all aspects of the evolutionary search process. Configuration files define LLM settings, search algorithms, evaluation parameters, prompts, and more.

Configuration Structure

A SkyDiscover configuration file consists of several top-level sections:

Loading Configuration

From File

Load a configuration file when running SkyDiscover:

Programmatic Loading

Configuration Hierarchy

SkyDiscover resolves configuration values in the following order (later sources override earlier ones):
1

Default Values

Built-in defaults from dataclass definitions in skydiscover/config.py:522-561
2

YAML File

Values specified in your configuration file override defaults
3

Environment Variables

Environment variables like OPENAI_API_KEY, OPENAI_API_BASE override file settings
4

CLI Arguments

Command-line flags like --model, --search override all previous settings

Environment Variable Expansion

Use ${VAR} syntax to reference environment variables in YAML:

General Settings

int
default:"100"
Maximum number of evolutionary iterations to run
int
default:"10"
Save checkpoint every N iterations
str
default:"INFO"
Logging verbosity: DEBUG, INFO, WARNING, ERROR
str
default:"None"
Directory for log files. If None, logs to console only
str
default:"None"
Programming language hint (e.g., python, javascript)
str
default:".py"
File extension for generated programs

Generation Settings

bool
default:"true"
Generate diffs instead of complete programs to improve LLM focus
int
default:"60000"
Maximum character length for generated solutions
int
default:"1"
Number of iterations to run concurrently. Set to >1 for parallel execution

Human-in-the-Loop Settings

bool
default:"false"
Enable human feedback integration
str
default:"None"
Path to file containing human feedback
str
default:"append"
How to handle feedback: append or replace

Configuration Files

SkyDiscover includes several preset configurations in configs/:

default.yaml

Basic top-k search configuration

adaevolve.yaml

Adaptive multi-island evolutionary search

openevolve_native.yaml

MAP-Elites quality-diversity search

llm_judge.yaml

LLM-as-a-judge evaluation

Example: Complete Configuration

configs/default.yaml

Next Steps

LLM Configuration

Configure models, API settings, and generation parameters

Search Configuration

Choose and configure search algorithms

Prompt Configuration

Customize system messages and prompts

Monitor Configuration

Set up the live monitoring dashboard