OpenEvolve
最先进的开源进化编码代理,将 LLM 转变为自主代码优化器,发现突破性算法。
- Star 数
- ★ 7.6k
- 最近更新
- 5 天前
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 40/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Claude Code · OpenAI API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 希望自动发现硬件特定优化的 GPU 内核开发者,例如在 Apple Silicon 上实现 2.8 倍加速。
- 不适合
- 只想用现成工具、不愿反复调试系统提示词的用户
- 预算敏感且需大量迭代、无法承担 o3 等高价模型费用的团队
这个 Agent 能做什么,适合哪些场景?
OpenEvolve 是一个开源库,通过进化算法自动改进代码。它实现了 MAP-Elites 质量-多样性算法和岛屿模型,结合多种 LLM(大型语言模型)生成新程序。主要组件包括进化引擎、评估器接口、基于数据库的种群管理和可视化工具。用户可通过 CLI 或 Python API 运行进化,提供可复现的种子设置和配置选项。支持多语言(Python, Rust, Metal shaders),并展示跨场景成果。
OpenEvolve 利用进化算法迭代改进代码。它从初始程序开始,通过 LLM 生成变体,使用评估器(evaluator)评分,并在数据库(database)中管理种群。它使用 MAP-Elites 算法按特征维度组织程序,通过岛屿迁移保持多样性。它通过 artifacts 反馈(如错误和警告)指导后续生成。使用者通过 run_evolution 或 evolve_function Python API 或 openevolve-run.py 命令行工具启动过程,配置支持多个 LLM 提供商(OpenAI 兼容 API,Claude Code CLI)。最终输出是改进的程序代码和性能指标。
- 希望自动发现硬件特定优化的 GPU 内核开发者,例如在 Apple Silicon 上实现 2.8 倍加速。
- 研究新的算法或数学结构(如圆形填充)的研究人员,达到最先进结果。
- 需要优化复杂排序或信号处理算法,但手动调优耗时的科学家。
- 希望探索多目标问题并获取 Pareto 最优解的竞争性程序员。
- 需要为特定领域(如 LLM 提示词)自动优化提示词的工程师。
- 希望在多语言(Python, Rust, Metal shaders)中实现算法自动发现的开发者。
如何安装或部署这个 Agent?
需要 Python 3.10+ 和 LLM API 密钥(例如 Google Gemini 或 OpenAI)。通过 pip 安装:pip install openevolve。设置环境变量 OPENAI_API_KEY(用于 Gemini 或其他)。可选:安装 Docker 以运行容器化版本(docker pull ghcr.io/algorithmicsuperintelligence/openevolve:latest),或使用 Claude Code CLI(npm install -g @anthropic-ai/claude-code)
如何使用这个 Agent?
快速开始:安装后,设置 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。或使用 Python API:from openevolve import run_evolution; result = run_evolution(initial_program='...', evaluator=lambda path: {'score': ...}, iterations=100)。配置 LLM 提供商可通过修改 config.yaml 的 llm.api_base 和 model 字段。
这个 Agent 有哪些优点和局限?
- 使用 MAP-Elites 和岛屿模型,避免过早收敛,保持多样性。
- 支持多种 LLM 提供商(OpenAI, Gemini, Claude Code, 本地模型),灵活集成。
- 提供完全可复现的种子设置(默认 seed=42),适合研究。
- 包含可视化器和检查点系统,支持实时监控和结果分析。
- 已验证成果:GPU 内核优化(2.8 倍加速)、圆形填充达到最先进结果。
- 成本取决于 LLM 提供商,高级模型每迭代可能花费 $0.15-0.60。
- 需要 LLM API 密钥,否则无法运行(除非使用 Claude Code CLI)。
- 系统消息设计对成功至关重要,需要迭代调优,不简单。
- 性能可能因问题复杂度和评估器质量而异,需要调整配置。
- 文档中的基准和成果来自示例,不保证应用于所有场景。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| OpenEvolve 当前 | 40 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 7.6k | 5 天前 | Python | Claude Code · OpenAI API |
| OpenAlpha Evolve | 41 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 1.1k | 1 年前 | Python | OpenAI API · Claude API |
| Hello-Agents 智能体教程 | 54 · 缺口较多 | 网页应用免费 + 模型费 | ★ 84k | 5 天前 | Python | OpenAI API |
| Lagent 轻量级智能体框架 | 43 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 2.3k | 6 个月前 | Python | OpenAI API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:仓库未提供权限模型、用户确认机制、数据流透明性、敏感数据处理、依赖安全审计、外部影响控制、回滚机制或来源归属。所有信任相关标准均未得到满足,因此全部评分为0。
证据显示:README和配置示例在功能描述上基本一致,但存在不一致之处,如README声称'完全确定性',但配置中允许随机模板和温度设置,且未提供确定性保证的详细说明。依赖可用性方面,pyproject.toml列出了依赖,但未提供版本锁定或完整性校验,且集成测试工作流中额外安装了math-verify,表明依赖管理不完整。失败消息方面,测试脚本提供了基本的错误输出,但未提供面向用户的故障排除指南。
证据显示:README明确了目标受众(性能优化、算法发现等)和多种使用场景,提供了多个示例。能力边界方面,README描述了可配置的约束(如系统消息中的'必须不改变'),但未提供全面的能力边界文档。触发精度方面,提供了配置示例和系统消息指导,但未提供详细的触发条件说明。环境适配方面,支持多种LLM提供商和本地模型,但未提供所有环境的详细配置指南。
证据显示:README提供了清晰的信息架构,包括快速开始、示例、配置等。安装说明详细,包括PyPI、开发安装和Docker。命名稳定性方面,项目名称和主要API在文档中一致。示例和FAQ方面,提供了多个示例,但缺少FAQ部分。已知限制方面,未明确列出。许可证为Apache-2.0,但未提供版权所有者信息。版本控制方面,pyproject.toml使用动态版本,但未提供CHANGELOG。维护责任方面,作者信息仅列出'codelion',未提供维护者联系方式或贡献指南。
证据显示:输出可用性方面,提供了库API和CLI,并展示了输出示例。边际价值方面,声称提供2-3倍加速和SOTA结果,但未提供独立验证。成本效益方面,提供了成本估算,但未提供实际基准测试数据。
证据显示:README中的性能声明(如2-3倍加速、SOTA)未提供可追溯的基准测试或论文引用。跨来源验证方面,仅依赖仓库内部证据,未提供外部验证。事实与推断分离方面,README将推断(如'突破性优化')与事实(如示例)混合,未明确区分。
- 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
- 性能声明(如2-3倍加速、SOTA)缺乏可验证的基准测试或论文引用,应谨慎对待。
- 依赖管理不完整,未锁定版本,且集成测试中额外安装math-verify,可能影响可复现性。
- 未提供明确的权限模型或安全审计,作为Agent框架使用时需自行评估风险。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
Highlights - Pluggable island selection and population strategies (#493): an optional island selector plus decision-returning hooks for admission, MAP-Elites cell replacement, archive membership, eviction and migration. ProgramDatabase validates the decisions and still owns every mutation. Default behaviour is unchanged. - LLM token usage tracking (#490): prompt_tokens, completion_tokens and total_tokens are captured from OpenAI-compatible responses, carried back from workers, stored in program metadata and prompt logs, and reported per iteration and as a run total. …在 GitHub 查看 ↗ -
发布说明摘录
Bug fixes Booleans in metrics are flags, not scores. bool is a subclass of int, so a naive isinstance(value, (int, float)) check silently treated True/False as 1.0/0.0. OpenEvolve's own evaluator emits timeout: True as a metric, so this was not a hypothetical input. - Fitness math (utils/metrics_utils.py) — the significant one. When an evaluation timed out, evaluator.py returns {"error": 0.0, "timeout": True}, which safe_numeric_average scored as 0.5 — handing a program that failed outright a mid-range fitness and letting it compete for survival in the …在 GitHub 查看 ↗ -
发布说明摘录
Bug fixes - llm.provider was silently dropped (#472): LLMConfig propagates shared settings to each per-model LLMModelConfig via a shared_config dict, but that dict omitted provider. Every model kept provider=None, so LLMEnsemble routed them all to the OpenAI backend regardless of the config — a config with provider: claude_code crashed with a missing-OPENAI_API_KEY error, making examples/claude_code_quickstart unusable. An explicit per-model provider still takes precedence. Features …在 GitHub 查看 ↗
常见问题
运行 OpenEvolve 的成本有多高?
是否必须使用特定 LLM?
如果进化陷入停滞怎么办?
num_diverse_programs 或更改迁移间隔。如何衡量进化是否成功?
combined_score 或指标平均值,或通过可视化器跟踪收敛情况、多样性覆盖度和效率。