# はじめに

> Skynet とは何か、何を最適化するか、どこから始めるか。

Skynet は、すでにお持ちのアーティファクトを改善します。開始バージョン、ケースのセット、メトリクスを渡すと、Skynet は新しいバージョンを提案し、各バージョンをケースで実行し、出力をメトリクスで採点して、最も良いバージョンを残します。

## Skynet が最適化するもの

Skynet は 4 種類のアーティファクトを扱います。

| アーティファクトの種類 | 変更される内容                                         |
| ---------------------- | ------------------------------------------------------ |
| プロンプト             | プロンプトのテキスト                                   |
| コード                 | ソースコード                                           |
| DSPy プログラム        | `dspy.Module` 内の各 predictor の指示文                |
| テキスト               | その他のテキスト（ドキュメントや設定ファイルなど）     |

すべての実行は同じコントラクトに従います。実行コードは `run(artifact, input)` を定義します。メトリクスは `score(input, output, expected=None)` を定義します。メトリクスはスコアと文章によるフィードバックを返します。オプティマイザーはそのフィードバックを読んで、次のバージョンをより良くします。

> [!NOTE]
> 実行コードとメトリクスは、サンドボックス内の別々のプロセスで動作します。実行コードからは、メトリクスのソースや期待値を見ることはできません。

## 1 つのプロダクト、多数のエンジン

Skynet は Optimize Anything です。アーティファクトの種類によって、使えるエンジンが決まります。

- プロンプト、コード、テキストのアーティファクトは、ネイティブエンジン（GEPA、Best-of-N、Meta-Harness、AutoResearch、AutoSaddler、ShinkaEvolve）を使います。
- DSPy プログラムのアーティファクトは、DSPy オプティマイザー（DSPy GEPA、DSPy MIPROv2、DSPy BootstrapFewShot）を使います。

**Auto** は自動で選択します。DSPy プログラムでは、Auto は DSPy GEPA を使います。その他のアーティファクトの種類では、Auto は 5 つのネイティブエンジンを組み合わせます。詳しくは [最適化の仕組み](/docs/ja/concepts/optimization) と [エンジン](/docs/ja/concepts/engines) をお読みください。

## 実行の流れ

1. タスクを説明し、開始バージョンを設定します。
2. ケースを渡します。Skynet はそれを学習・検証・テストのセットに分割します。
3. オプティマイザー、モデル、予算を選択します。
4. 実行コードとメトリクスを書きます。コントラクトチェックがサンプルケースでそれらを実行します。
5. Skynet が最適化を実行し、結果を表示します。

Skynet は検証ケースでバージョンを選びます。最終スコアはテストケースで報告します。エンジンがテストケースを見ることはありません。

## どこから始めるか

| やりたいこと                     | 読むページ                                      |
| -------------------------------- | ----------------------------------------------- |
| 最初の実行を開始する             | [クイックスタート](/docs/ja/quickstart)            |
| 最適化の仕組みを理解する         | [最適化の仕組み](/docs/ja/concepts/optimization)   |
| エンジンを選ぶ                   | [エンジン](/docs/ja/concepts/engines)              |
| データを準備する                 | [データセットと分割](/docs/ja/concepts/datasets)   |
| メトリクスを書く                 | [メトリクスとスコアラー](/docs/ja/concepts/scorers) |
| ウィザードに入力する             | [実行を開始する](/docs/ja/guides/submit)           |
| 結果を読む                       | [結果](/docs/ja/guides/results)                    |
| コストを理解する                 | [請求](/docs/ja/concepts/billing)                  |
| エージェントから Skynet を使う   | [MCP](/docs/ja/mcp)                                |
| コードから Skynet を呼び出す     | [API](/docs/ja/api)                                |
| 制限を確認する                   | [制限](/docs/ja/limits)                            |

> [!TIP]
> まずは小さなデータセットと既定の設定から始めてください。メトリクスのフィードバックは具体的に書きましょう。良いフィードバックは、スコアだけよりも多くの手がかりをオプティマイザーに与えます。

---

Source: https://staging.skynetml.com/docs/ja
