**🧬 最先进的开源进化编码智能体**
*将你的大语言模型转变为能发现突破性算法的自主代码优化器*
[🚀 **快速开始**](#快速开始) • [**示例**](#示例画廊) • [**系统消息**](#编写有效的系统消息) • [**讨论**](https://github.com/algorithmicsuperintelligence/openevolve/discussions)
*从随机搜索到最先进水平:实时观看你的代码进化*
| ### **自主发现** 大语言模型不仅仅是优化——它们能**发现**全新的算法。无需人工指导。 | ### **已验证的成果** 在真实硬件上实现 **2-3 倍加速**。**最先进**的圆填充方案。**突破性**的优化。 | ### **研究级品质** 内置完整的可复现性、广泛的评估流程和科学严谨性。 |
OpenEvolve 与手动优化对比:
| 方面 | 手动优化 | OpenEvolve |
|---|---|---|
| 解决方案耗时 | 数天到数周 | 数小时 |
| 探索广度 | 受限于人类创造力 | 无限的大语言模型创造力 |
| 可复现性 | 难以复现 | 完全确定性 |
| 多目标优化 | 复杂的权衡 | 自动帕累托优化 |
| 扩展性 | 无法扩展 | 跨岛屿并行进化 |
30 秒内从零开始进化代码:
# 安装 OpenEvolve
pip install openevolve
# 示例默认使用 Google Gemini(有免费层级)
# 从以下地址获取你的 API 密钥:https://aistudio.google.com/apikey
export OPENAI_API_KEY="your-gemini-api-key" # 是的,使用 OPENAI_API_KEY 环境变量
# 运行你的第一次进化!
python openevolve-run.py examples/function_minimization/initial_program.py \
examples/function_minimization/evaluator.py \
--config examples/function_minimization/config.yaml \
--iterations 50
注意: 示例配置默认使用 Gemini,但你可以通过修改 config.yaml 来使用任何 OpenAI 兼容的提供商。查看 配置 了解完整的配置选项。
OpenEvolve 可以作为库使用,无需任何外部文件:
from openevolve import run_evolution, evolve_function
# 内联代码进化(无需文件!)
result = run_evolution(
initial_program='''
def fibonacci(n):
if n <= 1: return n
return fibonacci(n-1) + fibonacci(n-2)
''',
evaluator=lambda path: {"score": benchmark_fib(path)},
iterations=100
)
# 直接进化 Python 函数
def bubble_sort(arr):
for i in range(len(arr)):
for j in range(len(arr)-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
result = evolve_function(
bubble_sort,
test_cases=[([3,1,2], [1,2,3]), ([5,2,8], [2,5,8])],
iterations=50
)
print(f"进化后的排序算法:{result.best_code}")
更喜欢 Docker? 查看 安装与设置 部分了解 Docker 选项。
// 标准注意力实现
kernel void attention_baseline(/* ... */) {
// 通用矩阵乘法
float sum = 0.0;
for (int i = 0; i < seq_len; i++) {
sum += query[tid] * key[i];
}
}
**进化后(快 2.8 倍)**:
// OpenEvolve 发现的优化
kernel void attention_evolved(/* ... */) {
// 硬件感知的平铺 + 统一内存优化
threadgroup float shared_mem[256];
// ... 利用 Apple Silicon 架构的进化算法
}
**性能影响**:在 Apple M1 Pro 上实现 2.8 倍加速,同时保持数值精度。
OpenEvolve 实现了一个复杂的进化编码管道,远超简单的优化:

| 使用场景 | OpenEvolve 的优势 |
|---|---|
| 性能优化 | 发现人类可能忽略的硬件特定优化 |
| 算法发现 | 为经典问题找到新颖的解决方法 |
| 科学计算 | 自动化繁琐的手动调优过程 |
| 竞技编程 | 生成多种解决方案策略 |
| 多目标问题 | 跨维度的帕累托最优解 |
pip install openevolve
git clone https://github.com/algorithmicsuperintelligence/openevolve.git
cd openevolve
pip install -e ".[dev]"
# 拉取镜像
docker pull ghcr.io/algorithmicsuperintelligence/openevolve:latest
# 运行示例
docker run --rm -v $(pwd):/app ghcr.io/algorithmicsuperintelligence/openevolve:latest \
examples/function_minimization/initial_program.py \
examples/function_minimization/evaluator.py --iterations 100
成本取决于你的大语言模型提供商和迭代次数:
节省成本的技巧:
- 从较少的迭代次数开始(100-200)
- 使用 o3-mini、Gemini-2.5-Flash 或本地模型进行探索
- 使用级联评估来早期过滤不良程序
- 初始配置较小的种群规模
OpenEvolve 适用于任何 OpenAI 兼容的 API:
export OPENAI_API_KEY="sk-..."
# 默认使用 OpenAI 端点
# config.yaml
llm:
api_base: "https://generativelanguage.googleapis.com/v1beta/openai/"
model: "gemini-2.5-pro"
export OPENAI_API_KEY="your-gemini-api-key"
# config.yaml
llm:
api_base: "http://localhost:11434/v1" # Ollama
model: "codellama:7b"
# 安装 OptiLLM
pip install optillm
# 启动 OptiLLM 代理
optillm --port 8000
# 将 OpenEvolve 指向 OptiLLM
export OPENAI_API_KEY="your-actual-key"
llm:
api_base: "http://localhost:8000/v1"
model: "moa&readurls-o3" # 测试时计算 + 网络访问
观看 OpenEvolve 从随机搜索进化为复杂的优化算法:
# 初始程序(随机搜索)
def minimize_function(func, bounds, max_evals=1000):
best_x, best_val = None, float('inf')
for _ in range(max_evals):
x = random_point_in_bounds(bounds)
val = func(x)
if val < best_val:
best_x, best_val = x, val
return best_x, best_val
进化过程
# 进化后的程序(模拟退火 + 自适应冷却)
def minimize_function(func, bounds, max_evals=1000):
x = random_point_in_bounds(bounds)
temp = adaptive_initial_temperature(func, bounds)
for i in range(max_evals):
neighbor = generate_neighbor(x, temp, bounds)
delta = func(neighbor) - func(x)
if delta < 0 or random.random() < exp(-delta/temp):
x = neighbor
temp *= adaptive_cooling_rate(i, max_evals) # 动态冷却
return x, func(x)
性能:收敛速度提升 100 倍!
# 问题:寻找最大子数组和
# OpenEvolve 发现多种方法:
# 进化路径 1:暴力法 → Kadane 算法
# 进化路径 2:分治法 → 优化的 Kadane 算法
# 进化路径 3:动态规划 → 空间优化的动态规划
[在线判题系统集成](examples/online_judge_programming/)
OpenEvolve 为高级用户提供广泛的配置选项:
# 高级配置示例
max_iterations: 1000
random_seed: 42 # 完全可复现性
llm:
# 集成配置
models:
- name: "gemini-2.5-pro"
weight: 0.6
- name: "gemini-2.5-flash"
weight: 0.4
temperature: 0.7
database:
# MAP-Elites 质量-多样性
population_size: 500
num_islands: 5 # 并行进化
migration_interval: 20
feature_dimensions: ["complexity", "diversity", "performance"]
evaluator:
enable_artifacts: true # 向大语言模型提供错误反馈
cascade_evaluation: true # 多阶段测试
use_llm_feedback: true # AI 代码质量评估
prompt:
# 复杂的灵感系统
num_top_programs: 3 # 最佳表现者
num_diverse_programs: 2 # 创造性探索
include_artifacts: true # 执行反馈
# 自定义模板
template_dir: "custom_prompts/"
use_template_stochasticity: true # 随机化提示词