skydiscover-ai/skydiscover

GitHub: skydiscover-ai/skydiscover

SkyDiscover 是一个以 AI 驱动的模块化框架,利用大语言模型实现跨多领域的自动化算法发现与代码演化优化。

Stars: 578 | Forks: 82

  SkyDiscover logo    SkyDiscover

A Flexible Framework for AI-Driven Scientific and Algorithmic Discovery

  Blog AdaEvolve Paper EvoX Paper  

SkyDiscover architecture

**SkyDiscover** 是一个由 AI 驱动的科学与算法发现的模块化框架,提供了一个统一的接口,用于跨 200 多个优化任务实现、运行和公平比较发现算法。 SkyDiscover 引入了两种新的自适应优化算法: - **[AdaEvolve](https://arxiv.org/abs/2602.20133)**,根据观察到的进展动态调整其优化行为。 - **[EvoX](https://arxiv.org/abs/2602.23413)**,使用 LLM 实时动态演化优化(进化)策略本身。 SkyDiscover 还支持使用 OpenEvolve、ShinkaEvolve 和 GEPA,利用它们自己的源代码快速对这些算法进行基准测试。SkyDiscover 还通过模块化接口托管了 `openevolve_native` 和 `gepa_native` 算法下的 OpenEvolve 和 GEPA 原生版本。 SkyDiscover 原生支持 [Harbor](https://harborframework.com/)- 格式的基准测试,因此您可以直接开箱即用地运行外部基准测试套件,包括 [AlgoTune](https://github.com/oripress/AlgoTune)、[EvoEval](https://github.com/evo-eval/evoeval)、[HumanEvalFix](https://github.com/bigcode-project/octopack)、[BigCodeBench](https://github.com/bigcode-project/bigcodebench)、[LiveCodeBench](https://livecodebench.github.io/)、[USACO](https://usaco.org/)、[CRUSTBench](https://github.com/AInfinity/CRUSTBench) 和 [CodePDE](https://github.com/)。 ## 🏆 基准测试性能 在大约 200 个优化基准测试中,AdaEvolve 和 EvoX 取得了最强的开源成果:与 AlphaEvolve 和人类 SOTA 相当或超越它们,并在相同的生成预算下优于 OpenEvolve、GEPA 和 ShinkaEvolve。 - **Frontier-CS(172 个问题)**:与 OpenEvolve、GEPA 和 ShinkaEvolve 相比,中位得分提升了约 34% - **数学与系统优化(评估了 14 个任务)**:在 6/6 的系统任务和 6/8 的数学任务上与 AlphaEvolve 和人类设计的 SOTA 相当或超越它们 - **对现实世界系统的影响**:跨云传输成本降低了 41%,MoE 服务 的 GPU 负载均衡改善了 14%,通过 GPU 模型放置降低了 29% 的 KV-cache 压力

SkyDiscover benchmarks

📊 AdaEvolve 和 EvoX 的完整结果(100 次迭代)

Main results for systems and math problems

📈 AdaEvolve 和 EvoX 的扩展行为 AdaEvolve 和 EvoX 的扩展行为显示出**互补的交叉**。AdaEvolve 的每次迭代参数适应在低预算运行(T≤50)中产生了快速的早期收益,而 EvoX 的需求驱动策略演化在更长时间的运行(T≥50)中释放了阶梯式的性能提升。

Scaling behavior of AdaEvolve vs EvoX across 500 iterations
Best-so-far score vs. iteration for Signal Processing, Heilbronn Convex, Prism, and Cloudcast (500 iterations, GPT-5).

🔗 使用 EvoX 演化 AdaEvolve 的策略(即将推出) 这两种方法是**可组合的**:EvoX 可以将 AdaEvolve 作为其起始策略进行演化,在 4 个基准测试中的 3 个中取得了最佳结果(100 次迭代,GPT-5)。这种组合模式将在 SkyDiscover 中尽快推出。 | Benchmark | AdaEvolve | EvoX (随机初始化) | EvoX (AdaEvolve 初始化) | |:--|--:|--:|--:| | Signal Proc. (↑) | 0.718 | 0.721 | **0.760** | | Heilbronn Cvx. (↑) | 0.0290 | 0.0270 | **0.0291** | | Cloudcast (↓) | 640.5 | 637.1 | **623.4** | | Prism (↑) | 26.37 | **30.52** | 26.27 |
跨数学、系统和编程挑战的任务分解 | | Benchmark | 领域 | 任务数 | 描述 | |-|-----------|--------|------:|-------------| | 🔢 | [math/](benchmarks/math/) | 数学 | 14 | 圆形装箱、Erdos 问题、几何优化 | | 🖥️ | [ADRS/](benchmarks/ADRS/) | 系统 | 5 | 云调度、负载均衡、MoE 专家放置 | | ⚡ | [gpu_mode/](benchmarks/gpu_mode/) | 系统 | 4 | GPU 内核优化 | | 🔧 | [kernelbench/](benchmarks/kernelbench/) | 系统 | 250+ | [KernelBench](https://github.com/ScalingIntelligence/KernelBench) GPU 内核加速优化 | | 🧩 | [frontier-cs-eval/](benchmarks/frontier-cs-eval/) | 算法 | 172 | [Frontier-CS](https://frontier-cs.org/) 竞赛编程 | | 🧠 | [arc_benchmark/](benchmarks/arc_benchmark/) | 推理 | — | ARC-AGI 视觉推理 | | 💻 | [ale_bench/](benchmarks/ale_bench/) | 算法 | 10 | 算法编程竞赛 | | 🎨 | [image_gen/](benchmarks/image_gen/) | 创意 | 1 | AI 图像生成演化 | | 💬 | [prompt_optimization/](benchmarks/prompt_optimization/) | NLP | 1 | HotPotQA prompt 演化 | 请参阅 [依赖项扩展](#dependency-extras) 获取每个基准测试的安装命令。
## 🚀 快速开始 **前置条件:** Python >= 3.10,[uv](https://docs.astral.sh/uv/) ``` # 安装 uv sync export OPENAI_API_KEY="" # 尝试 circle packing benchmark uv sync --extra math uv run skydiscover-run benchmarks/math/circle_packing/initial_program.py \ benchmarks/math/circle_packing/evaluator.py \ --config benchmarks/math/circle_packing/config.yaml \ --search evox \ --iterations 100 uv run skydiscover-run benchmarks/math/circle_packing/initial_program.py \ benchmarks/math/circle_packing/evaluator.py \ --config benchmarks/math/circle_packing/config.yaml \ --search adaevolve \ --iterations 100 # 或在您自己的问题上运行 # algo 可以是 "evox", "adaevolve", "openevolve", "gepa", "shinkaevolve" uv run skydiscover-run initial_program.py evaluator.py \ --search \ --model gpt-5 \ --iterations 100 # initial_program 是可选的 — 省略它以让 LLM 从头开始 uv run skydiscover-run evaluator.py \ --search \ --model gpt-5 \ --iterations 100 # 运行 Harbor benchmark(例如 AlgoTune) — 不需要 seed program pip install harbor harbor datasets download algotune@1.0 -o /tmp/algotune uv run skydiscover-run /tmp/algotune//algotune-set-cover \ --model anthropic/claude-sonnet-4-6 \ --search best_of_n -i 10 ``` 或者使用 Python API: ``` from skydiscover import run_discovery result = run_discovery( initial_program="initial_program.py", evaluator="evaluator.py", search=[algo], # algo can be "adaevolve", "evox", "openevolve", "gepa", "shinkaevolve" model="gpt-5", iterations=100, ) print(result.best_score, result.best_solution) ``` ## ✏️ 您所编写的内容 ### 评分函数(必需) SkyDiscover 支持三种 evaluator 格式 — 根据您的使用场景选择合适的格式: | 格式 | 适用场景 | `evaluation_file` 指向的内容 | |:---|:---|:---| | **Python 函数** | 简单任务,无系统依赖 | `evaluator.py` | | **容器化** | 自定义依赖项、数据文件、隔离环境 | `evaluator/` 目录(必须包含 `Dockerfile` + `evaluate.sh`) | | **Harbor 任务** | 外部基准测试套件(AlgoTune、EvoEval、HumanEvalFix、BigCodeBench、LiveCodeBench、USACO、CRUSTBench、CodePDE 等) | 任务目录(必须包含 `instruction.md` + `tests/` + `environment/Dockerfile`) | SkyDiscover 会自动检测格式。有关完整的设置说明,请参阅 [`benchmarks/README.md`](benchmarks/README.md#adding-a-benchmark)。 **Python evaluator** — 一个包含 `evaluate(program_path)` 函数的文件: ``` def evaluate(program_path): score = run_and_grade(program_path) return { "combined_score": score, # primary optimization target (maximized) "artifacts": { # optional — stored with the solution for future context "feedback": "Off by one in the loop boundary", }, } ``` **容器化 evaluator** — 一个包含 `Dockerfile` 和 `evaluate.sh` 的目录,通过标准输出(stdout)写入 JSON。在 Docker 中运行,因此它可以具有任意的依赖项。 **Harbor 任务** — 一个遵循 [Harbor](https://harborframework.com/) 格式的目录(`instruction.md`、`environment/Dockerfile`、`tests/test.sh`)。开箱即用地支持 8 个以上经过测试的基准测试套件(完整列表请参见 [benchmarks/README.md](benchmarks/README.md#tested-harbor-datasets))。 - **combined_score** 驱动演化过程。如果省略,SkyDiscover 将计算 dict 中所有数值的平均值。 - **artifacts** 是可选的 — 其中的条目将作为上下文注入到下一个 LLM prompt 中。 对于 `search.type: adaevolve`,您还可以通过配置 `search.database.pareto_objectives` 并直接从 evaluator 返回这些目标指标来启用显式的 Pareto 优化。在这种模式下,`combined_score` 成为可选项,并且仅在配置时用作标量回退/代理。 ### 起始解决方案(可选) 初始程序是**可选的**。如果省略,LLM 将从头开始生成解决方案。如果提供,它将使用 EVOLVE-BLOCK 标记标记要进行变异(mutate)的区域。标记之外的所有内容都将保持不变。 ``` # EVOLVE-BLOCK-START def solve(input_data): return input_data # baseline — SkyDiscover will improve this # EVOLVE-BLOCK-END ``` 如果没有标记,则整个文件将被视为可变异的。 ## 🧬 选择算法 有关 AdaEvolve 和 EvoX 与其他算法的详细比较,请参见 [基准测试性能](#-benchmark-performance)。 | 算法 | 标志 | 描述 | |:---|:---|:---| | ⭐ **AdaEvolve** | `--search adaevolve` | 结合 UCB、迁移和范式突破的多岛自适应搜索 | | 🧠 **EvoX** | `--search evox` | 自演化范式,共同自适应解决方案生成与经验管理 | | 📊 **Top-K** | `--search topk` | 选择前 K 个解决方案进行优化 | | 🔍 **Beam Search** | `--search beam_search` | 对一组顶尖解决方案进行广度优先扩展 | | 🎲 **Best-of-N** | `--search best_of_n` | 每次迭代生成 N 个变体,并保留最好的一个 | | 🧪 **GEPA Native** | `--search gepa_native` | 具备反思性 prompt 和 LLM 中介合并的 Pareto 高效搜索 | | 🗺️ **OpenEvolve Native** | `--search openevolve_native` | MAP-Elites + 基于岛的演化搜索 | ### 外部后端 使用 `uv sync --extra external` 安装,然后使用相应的标志: | 后端 | 标志 | 来源 | |:---|:---|:---| | **OpenEvolve** | `--search openevolve` | [codelion/openevolve](https://github.com/codelion/openevolve) | | **GEPA** | `--search gepa` | [gepa-ai/gepa](https://github.com/gepa-ai/gepa) | | **ShinkaEvolve** | `--search shinkaevolve` | [SakanaAI/ShinkaEvolve](https://github.com/SakanaAI/ShinkaEvolve)(手动安装) |
ShinkaEvolve 手动安装 ``` git clone --depth 1 https://github.com/SakanaAI/ShinkaEvolve.git external_repos/ShinkaEvolve uv pip install -e external_repos/ShinkaEvolve ```
## ⚙️ 配置 使用 `-c` 传入 YAML 配置文件。完整的注释模板请参见 [configs/](configs/)。 ``` max_iterations: 100 llm: models: [{ name: "gemini/gemini-3-pro-preview", weight: 1.0 }] search: type: "adaevolve" # or "evox", "topk", "beam_search", "best_of_n" prompt: system_message: | You are an expert at optimizing algorithms. ``` API 密钥(OPENAI_API_KEY、GEMINI_API_KEY 等)会自动从环境变量中解析。 ### 📊 实时监控与人类反馈 在您的配置中添加 `monitor: { enabled: true }`。仪表盘 URL 将在运行开始时打印出来 — 包含所有程序的散点图、代码差异、指标和 AI 摘要。**人类反馈**面板可让您实时引导演化过程。 重播已完成的运行: ``` uv run skydiscover-viewer /path/to/checkpoints/checkpoint_100 ``` ## 📖 参考
CLI 标志 ``` uv run skydiscover-run [INITIAL_PROGRAM] EVALUATOR [options] ``` | 标志 | 描述 | |:---|:---| | `-c, --config FILE` | 配置 YAML | | `-i, --iterations N` | 迭代次数 | | `-m, --model MODEL` | LLM 模型(覆盖配置) | | `-s, --search TYPE` | 搜索算法 | | `-o, --output DIR` | 输出目录 | | `--api-base URL` | 覆盖 LLM API endpoint | | `--checkpoint DIR` | 从 checkpoint 恢复 | | `--agentic` | 启用 agentic 模式(LLM 可以读取您的文件) | | `-l, --log-level LEVEL` | DEBUG、INFO、WARNING 或 ERROR |
Python API — discover_solution()(便捷封装) `discover_solution()` 是 `run_discovery()`(如[快速开始](#-quick-start)所示)的一个便捷封装,用于内联字符串解决方案和可调用的 evaluator: ``` from skydiscover import discover_solution result = discover_solution( initial_solution="def solve(x): return x", # optional — omit to start from scratch evaluator=lambda path: {"combined_score": run_tests(path)}, iterations=50, search="evox", ) ```
模型提供商 任何兼容 [LiteLLM](https://docs.litellm.ai/) 的模型都可以使用 `provider/model` 格式运行: ``` --model gpt-5 # OpenAI (default) --model gemini/gemini-3-pro-preview # Gemini --model anthropic/claude-sonnet-4-20250514 # Anthropic --model ollama/llama3 --api-base http://localhost:11434/v1 # Local (Ollama, vLLM, etc.) ``` 配置中支持带有加权采样的多模型池: ``` llm: models: - name: "gpt-5-mini" weight: 0.7 - name: "gemini/gemini-2.0-flash" weight: 0.3 ```
基准测试依赖项扩展 ``` uv sync # Base install uv sync --extra math # Math benchmarks (SciPy, JAX, PyWavelets, …) uv sync --extra adrs # ADRS systems benchmarks uv sync --extra frontier-cs # Frontier-CS benchmark tooling uv sync --extra external # OpenEvolve / GEPA / ShinkaEvolve backends uv sync --extra prompt-optimization # HotPotQA prompt optimization ``` 根据需要组合扩展:`uv sync --extra external --extra math` 如果某个基准测试自带 `requirements.txt`,还需运行:`uv pip install -r path/to/requirements.txt`
## 🛠️ 扩展 SkyDiscover - **新基准测试** → [`benchmarks/README.md`](benchmarks/README.md#adding-a-benchmark) - **新搜索算法** → [`skydiscover/search/README.md`](skydiscover/search/README.md) - **新上下文构建器** → [`skydiscover/context_builder/README.mdskydiscover/context_builder/README.md) ## 🔗 相关工作 SkyDiscover 的灵感来源于 [AlphaEvolve](https://deepmind.google/discover/blog/alphaevolve-a-gemini-powered-coding-agent-for-designing-advanced-algorithms/),并整合了来自 [OpenEvolve](https://github.com/codelion/openevolve) 等开源项目的实用代码组件。其接口与 [optimize_anything](https://gepa-ai.github.io/gepa/blog/2026/02/18/introducing-optimize-anything/) API 兼容。 ## ✍️ 引用 ``` @inproceedings{liu2026skydiscover, author = {Liu, Shu and Cemri, Mert and Agarwal, Shubham and Krentsel, Alexander and Naren, Ashwin and Mang, Qiuyang and Li, Zhifei and Gupta, Akshat and Maheswaran, Monishwaran and Cheng, Audrey and Pan, Melissa and Boneh, Ethan and Ramchandran, Kannan and Sen, Koushik and Zaharia, Matei and Dimakis, Alexandros G. and Stoica, Ion}, title = {SkyDiscover: A Flexible, Adaptive Framework for AI-Driven Scientific and Algorithmic Discovery}, booktitle = {Proceedings of the ACM Conference on AI and Agentic Systems}, series = {CAIS '26}, year = {2026}, pages = {1223--1227}, publisher = {Association for Computing Machinery}, doi = {10.1145/3786335.3813221}, url = {https://doi.org/10.1145/3786335.3813221} } ``` ## 📬 联系我们 如有任何问题或反馈,请通过以下方式联系我们: [lshu@berkeley.edu](mailto:lshu@berkeley.edu) · [mert_cemri@berkeley.edu](mailto:mert_cemri@berkeley.edu) · [shubham3@berkeley.edu](mailto:shubham3@berkeley.edu)
标签:DLL 劫持, Petitpotam, 人工智能, 优化算法, 大语言模型, 用户模式Hook绕过, 算法发现, 请求拦截, 进化计算, 逆向工具