[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-72053":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":44,"readmeContent":45,"aiSummary":46,"trendingCount":16,"starSnapshotCount":16,"syncStatus":47,"lastSyncTime":48,"discoverSource":49},72053,"openevolve","algorithmicsuperintelligence\u002Fopenevolve","algorithmicsuperintelligence","Open-source implementation of AlphaEvolve","",null,"Python",6524,1042,57,75,0,32,70,275,96,115.05,"Apache License 2.0",false,"main",[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,5,43],"alpha-evolve","alphacode","alphaevolve","coding-agent","deepmind","deepmind-lab","discovery","distributed-evolutionary-algorithms","evolutionary-algorithms","evolutionary-computation","genetic-algorithm","genetic-algorithms","iterative-methods","iterative-refinement","llm-engineering","llm-ensemble","llm-inference","optimize","2026-06-12 04:01:03","# OpenEvolve\n\n\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"openevolve-logo.png\" alt=\"OpenEvolve Logo\" width=\"400\">\n\n**🧬 The most advanced open-source evolutionary coding agent**\n\n*Turn your LLMs into autonomous code optimizers that discover breakthrough algorithms*\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Falgorithmicsuperintelligence\u002Fopenevolve\u002Fstargazers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Falgorithmicsuperintelligence\u002Fopenevolve?style=social\" alt=\"GitHub stars\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fopenevolve\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fopenevolve\" alt=\"PyPI version\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fopenevolve\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fopenevolve\" alt=\"PyPI downloads\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Falgorithmicsuperintelligence\u002Fopenevolve\u002Fblob\u002Fmain\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Falgorithmicsuperintelligence\u002Fopenevolve\" alt=\"License\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n[🚀 **Quick Start**](#quick-start) • [**Examples**](#examples-gallery) • [**System Messages**](#crafting-effective-system-messages) • [**Discussions**](https:\u002F\u002Fgithub.com\u002Falgorithmicsuperintelligence\u002Fopenevolve\u002Fdiscussions)\n\n*From random search to state-of-the-art: Watch your code evolve in real-time*\n\n\u003C\u002Fdiv>\n\n---\n\n## Why OpenEvolve?\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"33%\">\n\n### **Autonomous Discovery**\nLLMs don't just optimize—they **discover** entirely new algorithms. No human guidance needed.\n\n\u003C\u002Ftd>\n\u003Ctd width=\"33%\">\n\n### **Proven Results**\n**2-3x speedups** on real hardware. **State-of-the-art** circle packing. **Breakthrough** optimizations.\n\n\u003C\u002Ftd>\n\u003Ctd width=\"33%\">\n\n### **Research Grade**\nFull reproducibility, extensive evaluation pipelines, and scientific rigor built-in.\n\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n**OpenEvolve vs Manual Optimization:**\n\n| Aspect | Manual Optimization | OpenEvolve |\n|--------|-------------------|------------|\n| **Time to Solution** | Days to weeks | Hours |\n| **Exploration Breadth** | Limited by human creativity | Unlimited LLM creativity |\n| **Reproducibility** | Hard to replicate | Fully deterministic |\n| **Multi-objective** | Complex tradeoffs | Automatic Pareto optimization |\n| **Scaling** | Doesn't scale | Parallel evolution across islands |\n\n## Proven Achievements\n\n\u003Cdiv align=\"center\">\n\n| **Domain** | **Achievement** | **Example** |\n|---------------|-------------------|----------------|\n| **GPU Optimization** | Hardware-optimized kernel discovery | [MLX Metal Kernels](examples\u002Fmlx_metal_kernel_opt\u002F) |\n| **Mathematical** | State-of-the-art circle packing (n=26) | [Circle Packing](examples\u002Fcircle_packing\u002F) |\n| **Algorithm Design** | Adaptive sorting algorithms | [Rust Adaptive Sort](examples\u002Frust_adaptive_sort\u002F) |\n| **Scientific Computing** | Automated filter design | [Signal Processing](examples\u002Fsignal_processing\u002F) |\n| **Multi-Language** | Python, Rust, R, Metal shaders | [All Examples](examples\u002F) |\n\n\u003C\u002Fdiv>\n\n## 🚀 Quick Start\n\nGet from zero to evolving code in **30 seconds**:\n\n```bash\n# Install OpenEvolve\npip install openevolve\n\n# The example uses Google Gemini by default (free tier available)\n# Get your API key from: https:\u002F\u002Faistudio.google.com\u002Fapikey\nexport OPENAI_API_KEY=\"your-gemini-api-key\"  # Yes, use OPENAI_API_KEY env var\n\n# Run your first evolution!\npython openevolve-run.py examples\u002Ffunction_minimization\u002Finitial_program.py \\\n  examples\u002Ffunction_minimization\u002Fevaluator.py \\\n  --config examples\u002Ffunction_minimization\u002Fconfig.yaml \\\n  --iterations 50\n```\n\n**Note:** The example config uses Gemini by default, but you can use any OpenAI-compatible provider by modifying the `config.yaml`. See the [configs](configs\u002F) for full configuration options.\n\n### **Library Usage**\n\nOpenEvolve can be used as a library without any external files:\n\n```python\nfrom openevolve import run_evolution, evolve_function\n\n# Evolution with inline code (no files needed!)\nresult = run_evolution(\n    initial_program='''\n    def fibonacci(n):\n        if n \u003C= 1: return n\n        return fibonacci(n-1) + fibonacci(n-2)\n    ''',\n    evaluator=lambda path: {\"score\": benchmark_fib(path)},\n    iterations=100\n)\n\n# Evolve Python functions directly\ndef bubble_sort(arr):\n    for i in range(len(arr)):\n        for j in range(len(arr)-1):\n            if arr[j] > arr[j+1]:\n                arr[j], arr[j+1] = arr[j+1], arr[j] \n    return arr\n\nresult = evolve_function(\n    bubble_sort,\n    test_cases=[([3,1,2], [1,2,3]), ([5,2,8], [2,5,8])],\n    iterations=50\n)\nprint(f\"Evolved sorting algorithm: {result.best_code}\")\n```\n\n**Prefer Docker?** See the [Installation & Setup](#installation--setup) section for Docker options.\n\n## See It In Action\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Circle Packing: From Random to State-of-the-Art\u003C\u002Fb>\u003C\u002Fsummary>\n\n**Watch OpenEvolve discover optimal circle packing in real-time:**\n\n| Generation 1 | Generation 190 | Generation 460 (Final) |\n|--------------|----------------|----------------------|\n| ![Initial](examples\u002Fcircle_packing\u002Fcircle_packing_1.png) | ![Progress](examples\u002Fcircle_packing\u002Fcircle_packing_190.png) | ![Final](examples\u002Fcircle_packing\u002Fcircle_packing_460.png) |\n| Random placement | Learning structure | **State-of-the-art result** |\n\n**Result**: Matches published benchmarks for n=26 circle packing problem.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>GPU Kernel Evolution\u003C\u002Fb>\u003C\u002Fsummary>\n\n**Before (Baseline)**:\n```metal\n\u002F\u002F Standard attention implementation\nkernel void attention_baseline(\u002F* ... *\u002F) {\n    \u002F\u002F Generic matrix multiplication\n    float sum = 0.0;\n    for (int i = 0; i \u003C seq_len; i++) {\n        sum += query[tid] * key[i];\n    }\n}\n```\n\n**After Evolution (2.8x faster)**:\n```metal\n\u002F\u002F OpenEvolve discovered optimization\nkernel void attention_evolved(\u002F* ... *\u002F) {\n    \u002F\u002F Hardware-aware tiling + unified memory optimization\n    threadgroup float shared_mem[256];\n    \u002F\u002F ... evolved algorithm exploiting Apple Silicon architecture\n}\n```\n\n**Performance Impact**: 2.8x speedup on Apple M1 Pro, maintaining numerical accuracy.\n\n\u003C\u002Fdetails>\n\n## How OpenEvolve Works\n\nOpenEvolve implements a sophisticated **evolutionary coding pipeline** that goes far beyond simple optimization:\n\n![OpenEvolve Architecture](openevolve-architecture.png)\n\n### **Core Innovation**: MAP-Elites + LLMs\n\n- **Quality-Diversity Evolution**: Maintains diverse populations across feature dimensions\n- **Island-Based Architecture**: Multiple populations prevent premature convergence\n- **LLM Ensemble**: Multiple models with intelligent fallback strategies\n- **Artifact Side-Channel**: Error feedback improves subsequent generations\n\n### **Advanced Features**\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Scientific Reproducibility\u003C\u002Fb>\u003C\u002Fsummary>\n\n- **Comprehensive Seeding**: Every component (LLM, database, evaluation) is seeded\n- **Default Seed=42**: Immediate reproducible results out of the box\n- **Deterministic Evolution**: Exact reproduction of runs across machines\n- **Component Isolation**: Hash-based isolation prevents cross-contamination\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Advanced LLM Integration\u003C\u002Fb>\u003C\u002Fsummary>\n\n- **Universal API**: Works with OpenAI, Google, local models, and proxies\n- **Intelligent Ensembles**: Weighted combinations with sophisticated fallback\n- **Test-Time Compute**: Enhanced reasoning through proxy systems (see [OptiLLM setup](#llm-provider-setup))\n- **Plugin Ecosystem**: Support for advanced reasoning plugins\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Evolution Algorithm Innovations\u003C\u002Fb>\u003C\u002Fsummary>\n\n- **Double Selection**: Different programs for performance vs inspiration\n- **Adaptive Feature Dimensions**: Custom quality-diversity metrics\n- **Migration Patterns**: Ring topology with controlled gene flow\n- **Multi-Strategy Sampling**: Elite, diverse, and exploratory selection\n\n\u003C\u002Fdetails>\n\n## Perfect For\n\n| **Use Case** | **Why OpenEvolve Excels** |\n|--------------|---------------------------|\n| **Performance Optimization** | Discovers hardware-specific optimizations humans miss |\n| **Algorithm Discovery** | Finds novel approaches to classic problems |\n| **Scientific Computing** | Automates tedious manual tuning processes |\n| **Competitive Programming** | Generates multiple solution strategies |\n| **Multi-Objective Problems** | Pareto-optimal solutions across dimensions |\n\n## 🛠 Installation & Setup\n\n### Requirements\n- **Python**: 3.10+ \n- **LLM Access**: Any OpenAI-compatible API\n- **Optional**: Docker for containerized runs\n\n### Installation Options\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>📦 PyPI (Recommended)\u003C\u002Fb>\u003C\u002Fsummary>\n\n```bash\npip install openevolve\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🔧 Development Install\u003C\u002Fb>\u003C\u002Fsummary>\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Falgorithmicsuperintelligence\u002Fopenevolve.git\ncd openevolve\npip install -e \".[dev]\"\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🐳 Docker\u003C\u002Fb>\u003C\u002Fsummary>\n\n```bash\n# Pull the image\ndocker pull ghcr.io\u002Falgorithmicsuperintelligence\u002Fopenevolve:latest\n\n# Run an example\ndocker run --rm -v $(pwd):\u002Fapp ghcr.io\u002Falgorithmicsuperintelligence\u002Fopenevolve:latest \\\n  examples\u002Ffunction_minimization\u002Finitial_program.py \\\n  examples\u002Ffunction_minimization\u002Fevaluator.py --iterations 100\n```\n\n\u003C\u002Fdetails>\n\n### Cost Estimation\n\n**Cost depends on your LLM provider and iterations:**\n\n- **o3**: ~$0.15-0.60 per iteration (depending on code size)\n- **o3-mini**: ~$0.03-0.12 per iteration (more cost-effective)\n- **Gemini-2.5-Pro**: ~$0.08-0.30 per iteration\n- **Gemini-2.5-Flash**: ~$0.01-0.05 per iteration (fastest and cheapest)\n- **Local models**: Nearly free after setup\n- **OptiLLM**: Use cheaper models with test-time compute for better results\n\n**Cost-saving tips:**\n- Start with fewer iterations (100-200)\n- Use o3-mini, Gemini-2.5-Flash or local models for exploration\n- Use cascade evaluation to filter bad programs early\n- Configure smaller population sizes initially\n\n### LLM Provider Setup\n\nOpenEvolve works with **any OpenAI-compatible API**:\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🔥 OpenAI (Direct)\u003C\u002Fb>\u003C\u002Fsummary>\n\n```bash\nexport OPENAI_API_KEY=\"sk-...\"\n# Uses OpenAI endpoints by default\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🤖 Google Gemini\u003C\u002Fb>\u003C\u002Fsummary>\n\n```yaml\n# config.yaml\nllm:\n  api_base: \"https:\u002F\u002Fgenerativelanguage.googleapis.com\u002Fv1beta\u002Fopenai\u002F\"\n  model: \"gemini-2.5-pro\"\n```\n\n```bash\nexport OPENAI_API_KEY=\"your-gemini-api-key\"\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🏠 Local Models (Ollama\u002FvLLM)\u003C\u002Fb>\u003C\u002Fsummary>\n\n```yaml\n# config.yaml\nllm:\n  api_base: \"http:\u002F\u002Flocalhost:11434\u002Fv1\"  # Ollama\n  model: \"codellama:7b\"\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>⚡ OptiLLM (Advanced)\u003C\u002Fb>\u003C\u002Fsummary>\n\nFor maximum flexibility with rate limiting, model routing, and test-time compute:\n\n```bash\n# Install OptiLLM\npip install optillm\n\n# Start OptiLLM proxy\noptillm --port 8000\n\n# Point OpenEvolve to OptiLLM\nexport OPENAI_API_KEY=\"your-actual-key\"\n```\n\n```yaml\nllm:\n  api_base: \"http:\u002F\u002Flocalhost:8000\u002Fv1\"\n  model: \"moa&readurls-o3\"  # Test-time compute + web access\n```\n\n\u003C\u002Fdetails>\n\n## Examples Gallery\n\n\u003Cdiv align=\"center\">\n\n### **Showcase Projects**\n\n| Project | Domain | Achievement | Demo |\n|---------|--------|-------------|------|\n| [**Function Minimization**](examples\u002Ffunction_minimization\u002F) | Optimization | Random → Simulated Annealing | [View Results](examples\u002Ffunction_minimization\u002Fopenevolve_output\u002F) |\n| [**MLX GPU Kernels**](examples\u002Fmlx_metal_kernel_opt\u002F) | Hardware | Apple Silicon optimization | [Benchmarks](examples\u002Fmlx_metal_kernel_opt\u002FREADME.md) |\n| [**Rust Adaptive Sort**](examples\u002Frust_adaptive_sort\u002F) | Algorithms | Data-aware sorting | [Code Evolution](examples\u002Frust_adaptive_sort\u002F) |\n| [**Symbolic Regression**](examples\u002Fsymbolic_regression\u002F) | Science | Automated equation discovery | [LLM-SRBench](examples\u002Fsymbolic_regression\u002F) |\n| [**Web Scraper + OptiLLM**](examples\u002Fweb_scraper_optillm\u002F) | AI Integration | Test-time compute optimization | [Smart Scraping](examples\u002Fweb_scraper_optillm\u002F) |\n\n\u003C\u002Fdiv>\n\n### **Quick Example**: Function Minimization\n\n**Watch OpenEvolve evolve from random search to sophisticated optimization:**\n\n```python\n# Initial Program (Random Search)\ndef minimize_function(func, bounds, max_evals=1000):\n    best_x, best_val = None, float('inf')\n    for _ in range(max_evals):\n        x = random_point_in_bounds(bounds)\n        val = func(x)\n        if val \u003C best_val:\n            best_x, best_val = x, val\n    return best_x, best_val\n```\n\n**Evolution Process**\n\n```python\n# Evolved Program (Simulated Annealing + Adaptive Cooling)\ndef minimize_function(func, bounds, max_evals=1000):\n    x = random_point_in_bounds(bounds)\n    temp = adaptive_initial_temperature(func, bounds)\n    \n    for i in range(max_evals):\n        neighbor = generate_neighbor(x, temp, bounds)\n        delta = func(neighbor) - func(x)\n        \n        if delta \u003C 0 or random.random() \u003C exp(-delta\u002Ftemp):\n            x = neighbor\n            \n        temp *= adaptive_cooling_rate(i, max_evals)  # Dynamic cooling\n    \n    return x, func(x)\n```\n\n**Performance**: 100x improvement in convergence speed!\n\n### **Advanced Examples**\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Prompt Evolution\u003C\u002Fb>\u003C\u002Fsummary>\n\n**Evolve prompts instead of code** for better LLM performance. See the [LLM Prompt Optimization example](examples\u002Fllm_prompt_optimization\u002F) for a complete case study with HotpotQA achieving +23% accuracy improvement.\n\n[Full Example](examples\u002Fllm_prompt_optimization\u002F)\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🏁 Competitive Programming\u003C\u002Fb>\u003C\u002Fsummary>\n\n**Automatic solution generation** for programming contests:\n\n```python\n# Problem: Find maximum subarray sum\n# OpenEvolve discovers multiple approaches:\n\n# Evolution Path 1: Brute Force → Kadane's Algorithm\n# Evolution Path 2: Divide & Conquer → Optimized Kadane's\n# Evolution Path 3: Dynamic Programming → Space-Optimized DP\n```\n\n[Online Judge Integration](examples\u002Fonline_judge_programming\u002F)\n\n\u003C\u002Fdetails>\n\n## Configuration\n\nOpenEvolve offers extensive configuration for advanced users:\n\n```yaml\n# Advanced Configuration Example\nmax_iterations: 1000\nrandom_seed: 42  # Full reproducibility\n\nllm:\n  # Ensemble configuration\n  models:\n    - name: \"gemini-2.5-pro\"\n      weight: 0.6\n    - name: \"gemini-2.5-flash\"\n      weight: 0.4\n  temperature: 0.7\n\ndatabase:\n  # MAP-Elites quality-diversity\n  population_size: 500\n  num_islands: 5  # Parallel evolution\n  migration_interval: 20\n  feature_dimensions: [\"complexity\", \"diversity\", \"performance\"]\n\nevaluator:\n  enable_artifacts: true      # Error feedback to LLM\n  cascade_evaluation: true    # Multi-stage testing\n  use_llm_feedback: true      # AI code quality assessment\n\nprompt:\n  # Sophisticated inspiration system\n  num_top_programs: 3         # Best performers\n  num_diverse_programs: 2     # Creative exploration\n  include_artifacts: true     # Execution feedback\n  \n  # Custom templates\n  template_dir: \"custom_prompts\u002F\"\n  use_template_stochasticity: true  # Randomized prompts\n```\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🎯 Feature Engineering\u003C\u002Fb>\u003C\u002Fsummary>\n\n**Control how programs are organized in the quality-diversity grid:**\n\n```yaml\ndatabase:\n  feature_dimensions: \n    - \"complexity\"      # Built-in: code length\n    - \"diversity\"       # Built-in: structural diversity\n    - \"performance\"     # Custom: from your evaluator\n    - \"memory_usage\"    # Custom: from your evaluator\n    \n  feature_bins:\n    complexity: 10      # 10 complexity levels\n    performance: 20     # 20 performance buckets\n    memory_usage: 15    # 15 memory usage categories\n```\n\n**Important**: Return raw values from evaluator, OpenEvolve handles binning automatically.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🎨 Custom Prompt Templates\u003C\u002Fb>\u003C\u002Fsummary>\n\n**Advanced prompt engineering** with custom templates:\n\n```yaml\nprompt:\n  template_dir: \"custom_templates\u002F\"\n  use_template_stochasticity: true\n  template_variations:\n    greeting:\n      - \"Let's enhance this code:\"\n      - \"Time to optimize:\"\n      - \"Improving the algorithm:\"\n    improvement_suggestion:\n      - \"Here's how we could improve this code:\"\n      - \"I suggest the following improvements:\"\n      - \"We can enhance this code by:\"\n```\n\n**How it works:** Place `{greeting}` or `{improvement_suggestion}` placeholders in your templates, and OpenEvolve will randomly choose from the variations for each generation, adding diversity to prompts.\n\nSee [prompt examples](examples\u002Fllm_prompt_optimization\u002Ftemplates\u002F) for complete template customization.\n\n\u003C\u002Fdetails>\n\n## Crafting Effective System Messages\n\n**System messages are the secret to successful evolution.** They guide the LLM's understanding of your domain, constraints, and optimization goals. A well-crafted system message can be the difference between random mutations and targeted improvements.\n\n### Why System Messages Matter\n\nThe system message in your config.yaml is arguably the most important component for evolution success:\n\n- **Domain Expertise**: Provides LLM with specific knowledge about your problem space\n- **Constraint Awareness**: Defines what can and cannot be changed during evolution\n- **Optimization Focus**: Guides the LLM toward meaningful improvements\n- **Error Prevention**: Helps avoid common pitfalls and compilation errors\n\n### The Iterative Creation Process\n\nBased on successful OpenEvolve implementations, system messages are best created through iteration:\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🔄 Step-by-Step Process\u003C\u002Fb>\u003C\u002Fsummary>\n\n**Phase 1: Initial Draft**\n\n1. Start with a basic system message describing your goal\n2. Run 20-50 evolution iterations to observe behavior\n3. Note where the system gets \"stuck\" or makes poor choices\n\n**Phase 2: Refinement**\n\n4. Add specific guidance based on observed issues\n5. Include domain-specific terminology and concepts\n6. Define clear constraints and optimization targets\n7. Run another batch of iterations\n\n**Phase 3: Specialization**\n\n8. Add detailed examples of good vs bad approaches\n9. Include specific library\u002Fframework guidance\n10. Add error avoidance patterns you've observed\n11. Fine-tune based on artifact feedback\n\n**Phase 4: Optimization**\n\n12. Consider using OpenEvolve itself to optimize your prompt\n13. Measure improvements using combined score metrics\n\n\u003C\u002Fdetails>\n\n### Examples by Complexity\n\n#### **Simple: General Optimization**\n```yaml\nprompt:\n  system_message: |\n    You are an expert programmer specializing in optimization algorithms.\n    Your task is to improve a function minimization algorithm to find the\n    global minimum reliably, escaping local minima that might trap simple algorithms.\n```\n\n#### **Intermediate: Domain-Specific Guidance**\n```yaml\nprompt:\n  system_message: |\n    You are an expert prompt engineer. Your task is to revise prompts for LLMs.\n\n    Your improvements should:\n    * Clarify vague instructions and eliminate ambiguity\n    * Strengthen alignment between prompt and desired task outcome\n    * Improve robustness against edge cases\n    * Include formatting instructions and examples where helpful\n    * Avoid unnecessary verbosity\n\n    Return only the improved prompt text without explanations.\n```\n\n#### ⚡ **Advanced: Hardware-Specific Optimization**\n```yaml\nprompt:\n  system_message: |\n    You are an expert Metal GPU programmer specializing in custom attention\n    kernels for Apple Silicon.\n\n    # TARGET: Optimize Metal Kernel for Grouped Query Attention (GQA)\n    # HARDWARE: Apple M-series GPUs with unified memory architecture\n    # GOAL: 5-15% performance improvement\n\n    # OPTIMIZATION OPPORTUNITIES:\n    **1. Memory Access Pattern Optimization:**\n    - Coalesced access patterns for Apple Silicon\n    - Vectorized loading using SIMD\n    - Pre-compute frequently used indices\n\n    **2. Algorithm Fusion:**\n    - Combine max finding with score computation\n    - Reduce number of passes through data\n\n    # CONSTRAINTS - CRITICAL SAFETY RULES:\n    **MUST NOT CHANGE:**\n    ❌ Kernel function signature\n    ❌ Template parameter names or types\n    ❌ Overall algorithm correctness\n\n    **ALLOWED TO OPTIMIZE:**\n    ✅ Memory access patterns and indexing\n    ✅ Computation order and efficiency\n    ✅ Vectorization and SIMD utilization\n    ✅ Apple Silicon specific optimizations\n```\n\n### Best Practices\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🎨 Prompt Engineering Patterns\u003C\u002Fb>\u003C\u002Fsummary>\n\n**Structure Your Message:** Start with role definition → Define task\u002Fcontext → List optimization opportunities → Set constraints → Success criteria\n\n**Use Specific Examples:**\n```yaml\n# Good: \"Focus on reducing memory allocations. Example: Replace `new Vector()` with pre-allocated arrays.\"\n# Avoid: \"Make the code faster\"\n```\n\n**Include Domain Knowledge:**\n```yaml\n# Good: \"For GPU kernels: 1) Memory coalescing 2) Occupancy 3) Shared memory usage\"\n# Avoid: \"Optimize the algorithm\"\n```\n\n**Set Clear Boundaries:**\n```yaml\nsystem_message: |\n  MUST NOT CHANGE: ❌ Function signatures ❌ Algorithm correctness ❌ External API\n  ALLOWED: ✅ Internal implementation ✅ Data structures ✅ Performance optimizations\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🔬 Advanced Techniques\u003C\u002Fb>\u003C\u002Fsummary>\n\n**Artifact-Driven Iteration:** Enable artifacts in config → Include common error patterns in system message → Add guidance based on stderr\u002Fwarning patterns\n\n**Multi-Phase Evolution:** Start broad (\"Explore different algorithmic approaches\"), then focus (\"Given successful simulated annealing, focus on parameter tuning\")\n\n**Template Stochasticity:** See the [Configuration section](#configuration) for complete template variation examples.\n\n\u003C\u002Fdetails>\n\n### Meta-Evolution: Using OpenEvolve to Optimize Prompts\n\n**You can use OpenEvolve to evolve your system messages themselves!** This powerful technique lets you optimize prompts for better LLM performance automatically.\n\nSee the [LLM Prompt Optimization example](examples\u002Fllm_prompt_optimization\u002F) for a complete implementation, including the HotpotQA case study with +23% accuracy improvement.\n\n### Common Pitfalls to Avoid\n\n- **Too Vague**: \"Make the code better\" → Specify exactly what \"better\" means\n- **Too Restrictive**: Over-constraining can prevent useful optimizations\n- **Missing Context**: Include relevant domain knowledge and terminology\n- **No Examples**: Concrete examples guide LLM better than abstract descriptions\n- **Ignoring Artifacts**: Don't refine prompts based on error feedback\n\n## Artifacts & Debugging\n\n**Artifacts side-channel** provides rich feedback to accelerate evolution:\n\n```python\n# Evaluator can return execution context\nfrom openevolve.evaluation_result import EvaluationResult\n\nreturn EvaluationResult(\n    metrics={\"performance\": 0.85, \"correctness\": 1.0},\n    artifacts={\n        \"stderr\": \"Warning: suboptimal memory access pattern\",\n        \"profiling_data\": {...},\n        \"llm_feedback\": \"Code is correct but could use better variable names\",\n        \"build_warnings\": [\"unused variable x\"]\n    }\n)\n```\n\n**Next generation prompt automatically includes:**\n\n```markdown\n## Previous Execution Feedback\n⚠️ Warning: suboptimal memory access pattern\n💡 LLM Feedback: Code is correct but could use better variable names\n🔧 Build Warnings: unused variable x\n```\n\nThis creates a **feedback loop** where each generation learns from previous mistakes!\n\n## Visualization\n\n**Real-time evolution tracking** with interactive web interface:\n\n```bash\n# Install visualization dependencies\npip install -r scripts\u002Frequirements.txt\n\n# Launch interactive visualizer\npython scripts\u002Fvisualizer.py\n\n# Or visualize specific checkpoint\npython scripts\u002Fvisualizer.py --path examples\u002Ffunction_minimization\u002Fopenevolve_output\u002Fcheckpoints\u002Fcheckpoint_100\u002F\n```\n\n**Features:**\n\n- 🌳 **Evolution tree** with parent-child relationships\n- 📈 **Performance tracking** across generations\n- 🔍 **Code diff viewer** showing mutations\n- 📊 **MAP-Elites grid** visualization\n- 🎯 **Multi-metric analysis** with custom dimensions\n\n![OpenEvolve Visualizer](openevolve-visualizer.png)\n\n## Roadmap\n\n### **🔥 Upcoming Features**\n\n- [ ] **Multi-Modal Evolution**: Images, audio, and text simultaneously\n- [ ] **Federated Learning**: Distributed evolution across multiple machines  \n- [ ] **AutoML Integration**: Hyperparameter and architecture evolution\n- [ ] **Benchmark Suite**: Standardized evaluation across domains\n\n### **🌟 Research Directions**\n\n- [ ] **Self-Modifying Prompts**: Evolution modifies its own prompting strategy\n- [ ] **Cross-Language Evolution**: Python → Rust → C++ optimization chains\n- [ ] **Neurosymbolic Reasoning**: Combine neural and symbolic approaches\n- [ ] **Human-AI Collaboration**: Interactive evolution with human feedback\n\nWant to contribute? Check out our [roadmap discussions](https:\u002F\u002Fgithub.com\u002Falgorithmicsuperintelligence\u002Fopenevolve\u002Fdiscussions\u002Fcategories\u002Froadmap)!\n\n## FAQ\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>💰 How much does it cost to run?\u003C\u002Fb>\u003C\u002Fsummary>\n\nSee the [Cost Estimation](#cost-estimation) section in Installation & Setup for detailed pricing information and cost-saving tips.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🆚 How does this compare to manual optimization?\u003C\u002Fb>\u003C\u002Fsummary>\n\n| Aspect | Manual | OpenEvolve |\n|--------|--------|------------|\n| **Initial Learning** | Weeks to understand domain | Minutes to start |\n| **Solution Quality** | Depends on expertise | Consistently explores novel approaches |\n| **Time Investment** | Days-weeks per optimization | Hours for complete evolution |\n| **Reproducibility** | Hard to replicate exact process | Perfect reproduction with seeds |\n| **Scaling** | Doesn't scale beyond human capacity | Parallel evolution across islands |\n\n**OpenEvolve shines** when you need to explore large solution spaces or optimize for multiple objectives simultaneously.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🔧 Can I use my own LLM?\u003C\u002Fb>\u003C\u002Fsummary>\n\n**Yes!** OpenEvolve supports any OpenAI-compatible API:\n\n- **Commercial**: OpenAI, Google, Cohere\n- **Local**: Ollama, vLLM, LM Studio, text-generation-webui\n- **Advanced**: OptiLLM for routing and test-time compute\n\nJust set the `api_base` in your config to point to your endpoint.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🚨 What if evolution gets stuck?\u003C\u002Fb>\u003C\u002Fsummary>\n\n**Built-in mechanisms prevent stagnation:**\n\n- **Island migration**: Fresh genes from other populations\n- **Temperature control**: Exploration vs exploitation balance\n- **Diversity maintenance**: MAP-Elites prevents convergence\n- **Artifact feedback**: Error messages guide improvements\n- **Template stochasticity**: Randomized prompts break patterns\n\n**Manual interventions:**\n- Increase `num_diverse_programs` for more exploration\n- Add custom feature dimensions to diversify search\n- Use template variations to randomize prompts\n- Adjust migration intervals for more cross-pollination\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>📈 How do I measure success?\u003C\u002Fb>\u003C\u002Fsummary>\n\n**Multiple success metrics:**\n\n1. **Primary Metric**: Your evaluator's `combined_score` or metric average\n2. **Convergence**: Best score improvement over time\n3. **Diversity**: MAP-Elites grid coverage\n4. **Efficiency**: Iterations to reach target performance\n5. **Robustness**: Performance across different test cases\n\n**Use the visualizer** to track all metrics in real-time and identify when evolution has converged.\n\n\u003C\u002Fdetails>\n\n### **Contributors**\n\nThanks to all our amazing contributors who make OpenEvolve possible!\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Falgorithmicsuperintelligence\u002Fopenevolve\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=algorithmicsuperintelligence\u002Fopenevolve\" \u002F>\n\u003C\u002Fa>\n\n### **Contributing**\n\nWe welcome contributions! Here's how to get started:\n\n1. 🍴 **Fork** the repository\n2. 🌿 **Create** your feature branch: `git checkout -b feat-amazing-feature`\n3. ✨ **Add** your changes and tests\n4. ✅ **Test** everything: `python -m unittest discover tests`\n5. 📝 **Commit** with a clear message\n6. 🚀 **Push** and create a Pull Request\n\n**New to open source?** Check out our [Contributing Guide](CONTRIBUTING.md) and look for [`good-first-issue`](https:\u002F\u002Fgithub.com\u002Falgorithmicsuperintelligence\u002Fopenevolve\u002Fissues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) labels!\n\n### **Academic & Research**\n\n**Articles & Blog Posts About OpenEvolve**:\n- [Towards Open Evolutionary Agents](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Fdriaforall\u002Ftowards-open-evolutionary-agents) - Evolution of coding agents and the open-source movement\n- [OpenEvolve: GPU Kernel Discovery](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Fcodelion\u002Fopenevolve-gpu-kernel-discovery) - Automated discovery of optimized GPU kernels\n- [OpenEvolve: Evolutionary Coding with LLMs](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Fcodelion\u002Fopenevolve) - Introduction to evolutionary algorithm discovery using large language models\n\n## Citation\n\nIf you use OpenEvolve in your research, please cite:\n\n```bibtex\n@software{openevolve,\n  title = {OpenEvolve: an open-source evolutionary coding agent},\n  author = {Asankhaya Sharma},\n  year = {2025},\n  publisher = {GitHub},\n  url = {https:\u002F\u002Fgithub.com\u002Falgorithmicsuperintelligence\u002Fopenevolve}\n}\n```\n---\n\n\u003Cdiv align=\"center\">\n\n### **🚀 Ready to evolve your code?**\n\n**Maintained by the OpenEvolve community**\n\n*If OpenEvolve helps you discover breakthrough algorithms, please consider starring this repository.*\n\n\u003C\u002Fdiv>\n","OpenEvolve 是一个开源的 AlphaEvolve 实现，旨在将大型语言模型转变为自主代码优化器以发现突破性算法。其核心功能包括通过进化算法自动发现新算法、实现2-3倍的速度提升以及在多目标优化中自动进行帕累托优化。技术特点上，该项目支持广泛的编程语言如Python、Rust等，并且具有高度可扩展性和研究级的可重复性。适用于需要高效算法优化和创新的应用场景，比如GPU优化、数学问题求解、科学计算等领域。",2,"2026-06-11 03:40:07","high_star"]