Overview
EvoX is a meta-evolution algorithm that dynamically evolves the optimization strategy itself using LLMs. Unlike traditional algorithms with fixed search strategies, EvoX treats the search algorithm as a program that can be evolved alongside the solutions.Research Paper
Read the full EvoX paper on ArXiv
Key Concept
EvoX implements co-evolution: it simultaneously evolves two things:- Solution programs: The actual solutions to your optimization problem
- Search algorithms: The strategy used to generate and select solution programs
Self-Adaptation
The search strategy adapts itself based on what works for your specific problem
Meta-Learning
Learns optimal exploration/exploitation balance automatically
Variation Operators
Auto-generates problem-specific diverge and refine prompts
Stagnation-Driven
Evolves search strategy when solution progress stagnates
How It Works
Co-Evolution Loop
- Solution Evolution: Use current search algorithm to evolve solutions
- Stagnation Detection: Track solution improvement over a window
- Search Evolution: When stagnant, evolve the search algorithm
- Strategy Switch: Load new search algorithm and continue
Search Algorithm Scoring
Each search algorithm is evaluated based on:Variation Operators
EvoX auto-generates two types of mutation operators:- Diverge: Encourages exploration of new solution spaces
- Refine: Encourages exploitation of known good solutions
Configuration
Basic Usage
Configuration File
EvoX requires a special configuration that points to:- Your solution problem (the main optimization task)
- An initial search algorithm (starting strategy)
- A search algorithm evaluator (how to score search strategies)
Configuration Options
string
required
Path to initial search algorithm Python file (must define a Database class)
string
required
Path to search algorithm evaluator (scores search strategies)
string
Optional config file for search algorithm evolution
bool
default:"true"
Auto-generate diverge/refine prompts based on problem description
float
default:"0.10"
Fraction of iterations to wait before considering search evolution (stagnation threshold)
float
default:"0.01"
Minimum improvement to reset stagnation counter
Initial Search Algorithm
Your initial search algorithm should be a Python file defining a Database class:Search Algorithm Evaluator
The evaluator scores how well a search algorithm performs:The search evaluator is typically simple because EvoX automatically computes improvement metrics. The evaluator mainly exists for consistency with the framework.
When to Use EvoX
Best For
Best For
- Problems where the optimal search strategy is unknown
- Long discovery runs where search adaptation provides value
- Problems with complex fitness landscapes
- Research on meta-learning and algorithm design
Avoid When
Avoid When
- Short runs (< 50 iterations) - not enough time for meta-evolution
- Well-understood problems with known optimal strategies
- Limited LLM budget (meta-evolution uses extra LLM calls)
- Need for deterministic/reproducible search behavior
Performance
EvoX achieves state-of-the-art results on multiple benchmarks:- Frontier-CS: ~34% median improvement over baseline algorithms
- Adaptive to problem: Learns problem-specific search strategies
- Meta-optimization: Discovers novel search patterns not in initial algorithm
Example: Custom Problem
Advanced Features
Fallback Mechanism
If a newly evolved search algorithm causes errors, EvoX automatically:- Reverts to the previous working algorithm
- Migrates any successful solutions found during the failed attempt
- Continues evolution with the stable algorithm
Migration Between Algorithms
When switching to a new search algorithm, EvoX:- Copies all existing solutions to the new database
- Preserves prompt history and metadata
- Recalculates best program tracking
Comprehensive Logging
EvoX logs each evolved search algorithm to the output directory with:- Full source code
- Performance metrics
- Variation operators used
- Database statistics before and after
Related Algorithms
- AdaEvolve - Fixed adaptive search with island architecture
- GEPA Native - Pareto-efficient search with reflective prompting
- Top-K - Simple baseline to start EvoX with