# 引擎

> GEPA、Best-of-N、Meta-Harness、AutoResearch、AutoSaddler、ShinkaEvolve 和 Auto。

引擎是为你的产物提出新版本的搜索方法。Skynet 为提示词、代码和文本产物提供六个原生引擎，为 DSPy 程序提供三个 DSPy 优化器，另外还有 **Auto**。本页说明每个引擎的作用、何时选用以及它有哪些设置。

如果你不知道哪些引擎适合你的产物，请先阅读[优化的工作原理](/docs/zh-Hans/concepts/optimization)。

## 快速对比

| 引擎                  | 产物类型             | 编程智能体设置                  | 最大迭代次数设置 |
| --------------------- | -------------------- | ------------------------------- | ---------------- |
| Auto                  | 全部                 | 有，适用于提示词、代码和文本    | 无               |
| GEPA                  | 提示词、代码、文本   | 无                              | 无               |
| Best-of-N             | 提示词、代码、文本   | 无                              | 无               |
| AutoResearch          | 提示词、代码、文本   | 有                              | 无               |
| Meta-Harness          | 提示词、代码、文本   | 有                              | 有               |
| AutoSaddler           | 提示词、代码、文本   | 有                              | 有               |
| ShinkaEvolve          | 提示词、代码、文本   | 无。它有自己的编辑器设置。      | 有               |
| DSPy GEPA             | DSPy 程序            | 无                              | 无               |
| DSPy MIPROv2          | DSPy 程序            | 无                              | 无               |
| DSPy BootstrapFewShot | DSPy 程序            | 无                              | 无               |

向导会把 GEPA、DSPy GEPA 和 Auto 标记为使用指标反馈文本的优化器。

## Auto

Auto 是默认选项。它运行什么取决于产物类型：

- **DSPy 程序**：Auto 运行 DSPy GEPA。
- **提示词、代码或文本**：Auto 同时用五个引擎进行探索：GEPA、AutoResearch、Meta-Harness、AutoSaddler 和 ShinkaEvolve。每个引擎平均分得评分器运行次数：预算除以 6。然后 GEPA 从最佳版本出发，用剩余预算继续优化。

Auto 不使用 Best-of-N。

> [!WARNING]
> 对于提示词、代码或文本产物，Auto 至少需要 6 次评分器运行：5 条探索通道和一次继续优化。五个引擎必须全部可用。如果有一个不可用，请选择单个引擎。

**适合在以下情况选用：** 你不知道哪个引擎适合。这是最好的起点。

## GEPA

“基于反思的演化，维护一个由多个版本组成的 Pareto 前沿。”反思模型读取每个用例的分数和反馈，并写出更好的版本。GEPA 维护一个版本前沿，其中每个版本都在某些用例上表现最好。

**适合在以下情况选用：** 你的指标能给出具体的反馈，并且你想要一个强大的单一引擎。

## Best-of-N

“由反思模型给出相互独立的提议，保留最好的一个。”每个提议都独立于其他提议。Skynet 会在验证用例上为排名靠前的提议重新打分。

**适合在以下情况选用：** 你想要一个简单的基线，用来与其他引擎比较。

## AutoResearch

编程智能体执行多轮研究。它不断编辑、打分并保留有帮助的改动，直到预算用完。

**适合在以下情况选用：** 一个好的改动需要经过多步调查，例如在代码产物上。

## Meta-Harness

编程智能体在每次迭代中提出一批候选。它会利用所有候选及其分数的完整历史。

**适合在以下情况选用：** 你想要一个能从所有过往尝试的历史中学习的智能体。使用 **每轮候选数** 来设置批次大小。

## AutoSaddler

编程智能体读取你的指标给出的反馈，并对版本打补丁。Skynet 只保留经过新一次评分器运行确认的补丁。

**适合在以下情况选用：** 你的指标反馈能指出明确的、局部的缺陷。

## ShinkaEvolve

“在多个并行岛屿中演化大量版本，并学习哪些模型对它们的改进最大。”它是一种针对候选种群的演化搜索，其中的变异和交叉由模型编写。

**适合在以下情况选用：** 你想要广泛探索，并且预算较大。

## DSPy 优化器

| 优化器                | 作用                                                                             |
| --------------------- | -------------------------------------------------------------------------------- |
| DSPy GEPA             | 读取指标反馈，并演化每个预测器的指令。                                           |
| DSPy MIPROv2          | 同时提出指令和 few-shot 示例，并用贝叶斯优化搜索它们的组合。                     |
| DSPy BootstrapFewShot | 收集程序答对的完整示例，并把它们添加为 few-shot 示例。它不使用反思模型。         |

DSPy MIPROv2 和 DSPy BootstrapFewShot 需要成对数据（带期望输出的用例）。

## 设置

### 预算

| 设置                   | 默认值 | 范围                                                          |
| ---------------------- | ------ | ------------------------------------------------------------- |
| 最大评分器运行次数     | 200    | 1 到 100000（Auto：至少 6）                                   |
| 停止分数               | 关闭   | 0 或更大                                                      |
| 最大迭代次数           | 关闭   | 1 到 1000。仅适用于 Meta-Harness、AutoSaddler 和 ShinkaEvolve。 |

一次评分器运行是指在一个用例上调用一次你的指标。对起始版本和胜出版本的最终重新打分不计入 **最大评分器运行次数**。

### 编程智能体设置

这些设置适用于 Auto、AutoResearch、Meta-Harness 和 AutoSaddler。

| 设置                     | 默认值 | 范围                                              |
| ------------------------ | ------ | ------------------------------------------------- |
| 编程智能体               | Codex  | Pi、Codex、OpenCode、Prime Agent、自定义命令      |
| 每轮候选数               | 3      | 1 到 8。在 Auto 和 Meta-Harness 中显示。          |
| 每个候选的最大工具调用数 | 100    | 1 到 1000                                         |

### ShinkaEvolve 设置

| 设置                          | 默认值                                                  |
| ----------------------------- | ------------------------------------------------------- |
| 新版本的编写方式              | 单次模型调用。另一个选项是“编码代理（Pi）”。            |
| 岛屿数                        | 2（1 到 8）                                             |
| 迁移间隔                      | 10                                                      |
| 父代选择                      | 加权。其他选项：幂律、束搜索。                          |
| 差异编辑 / 完整重写 / 交叉    | 60% / 30% / 10%。三者之和必须为 100%。                  |
| 归档大小                      | 40                                                      |
| 并行评估数                    | 2                                                       |
| 并行提议数                    | 2                                                       |

当 Auto 运行 ShinkaEvolve 时，向导会把这些设置显示为“ShinkaEvolve 设置（Auto 运行它时）”。

## 相关页面

- [优化的工作原理](/docs/zh-Hans/concepts/optimization)
- [指标与评分器](/docs/zh-Hans/concepts/scorers)
- [运行](/docs/zh-Hans/concepts/runs)
- [计费](/docs/zh-Hans/concepts/billing)

---

Source: https://staging.skynetml.com/docs/zh-Hans/concepts/engines
