7月1日、Yifan Yangらが「SkillOpt turns AI agent skills into trainable assets」と題した記事を公開した。この記事では、AIエージェントの「スキル(命令ファイル)」をモデルの重みを変えずに学習可能なパラメータとして最適化する手法「SkillOpt」について詳しく紹介されている。
スキルをプロンプトではなく「学習対象」として扱う
AIエージェントの品質改善において、現場でよく取られるアプローチは「スキル(エージェントへの指示ファイル)を手動で書き直す」か「フロンティアモデルにワンショットで生成させる」かのどちらかだ。しかしこれらの手法には共通の欠点がある。学習率の制御も、ホールドアウト検証も、失敗した修正の記憶もない。結果として、スキルは書き換えのたびに肥大化・変質し、一見もっともな修正が実際のタスク性能をひそかに劣化させることがある。
SkillOptはこの問題を「プロンプトをどう書くか」ではなく「スキルをどう訓練するか」という問いに変換する。凍結された(重みを変えない)ターゲットモデルの外側にスキルファイルを置き、それ自体をトレーナブルなパラメータとして扱うのが核心的なアイデアだ。
訓練ループの仕組み
SkillOptは深層学習の訓練ループをテキスト空間に移植したような構造を持つ。「フォワードパス」「バックワードパス」という用語はSkillOptの比喩的な表現であり、実際にニューラルネットの勾配が流れるわけではない点に注意されたい。
フォワードパスでは、凍結したターゲットモデルが現在のスキルを使ってタスクのバッチを実行し、実行軌跡(trajectory)を収集する。
バックワードパスでは、別途用意したオプティマイザモデルが軌跡を読み込み、成功パターンと失敗パターンを抽出する。
更新ステップでは、オプティマイザが「追加」「削除」「置換」という小さな編集を提案する。提案された編集は、テキスト学習率(1ステップあたりの編集量の上限)でクリップされた後、厳格な検証ゲートを通過した場合のみ採用される。検証ゲートは、候補スキルがホールドアウト検証セットで現在のスキルを厳密に上回る場合にのみ通過を許可する。
却下された編集は捨てられるのではなく「却下編集バッファ」に蓄積され、同エポック内の後続のオプティマイザ呼び出しへのネガティブフィードバックとして機能する。さらに低い頻度で、エポック単位の「スロー/メタ更新」が実施され、単一バッチでは見えない長期的なパターンが統合される。

52評価セル全てで最良または同点最良
評価は6つのベンチマーク(SearchQA、SpreadsheetBench、OfficeQA、DocVQA、LiveMathematicianBench、ALFWorld)、7つのターゲットモデル、3つの実行モード(ダイレクトチャット、Codex、Claude Code)にまたがって実施された。これらの組み合わせを1セルとして数えると、SkillOptは全52セルで最良または同点最良を記録した。
なお、以下に登場するモデル名(GPT-5.5、GPT-5.4、GPT-5.4-mini、GPT-5.4-nano、GPT-5.2、Qwen3.5-4Bなど)は論文・記事の執筆時点で使用されていた名称であり、読者が参照する時点での公式名称と異なる場合がある。
数字を具体的に見ると、GPT-5.5をダイレクトチャットで使った場合、6ベンチマークの平均スコアが58.8から82.3へ+23.5ポイント改善した。これはモデルの重みを一切変えていない手法としては異例の改善幅だ。この+23.5ポイントはあくまで「GPT-5.5×ダイレクトチャット×6ベンチマーク平均」という特定条件下での数値であり、全52セルを代表する値ではない点に留意されたい。個別ベンチマークでは:
- SpreadsheetBench: 41.8 → 80.7
- OfficeQA: 33.1 → 72.1
- LiveMathematicianBench: 37.6 → 66.9
さらに、Codex内でGPT-5.5を使うと+24.8ポイント、Claude Code内では+19.1ポイントの改善が得られている。
小さいモデル+スキルファイルで上位モデルに迫る
SkillOptが特に面白いのは、小型モデルとスキルファイルの組み合わせが、より大きなモデルのベースラインを超えるという結果だ。
- GPT-5.4-mini(最適化後の平均64.3)が、GPT-5.4の無スキルベースライン(59.7)を上回る
- GPT-5.4-nano(57.4)が、GPT-5.2の無スキルベースライン(51.3)を上回る
- Qwen3.5-4B(40億パラメータのオープンウェイトモデル)も、GPT-5.2の無スキルベースラインを超える
推論時に追加のモデル呼び出しは不要で、デプロイするのは最適化済みのスキルファイル1枚だけだ。
最終的なスキルファイルは「920トークン、採用編集1〜4件」
出力されるbest_skill.mdは、不透明なパラメータの塊でも膨れ上がったログファイルでもない。6つのケーススタディにわたって、最終スキルファイルの長さの中央値は約920トークンであり、検証ゲートがほとんどの提案を却下するため、最終ファイルへの採用編集は1〜4件にとどまる。
OfficeQAでの+39.0ポイントの改善は、採用された編集がたった1件によるものだ。学習されたルールは、熟練した実務者のアドバイスのように読めると論文中では述べられている。
アブレーション実験の結果、却下編集バッファを除去するとすべての検証ベンチマークでスコアが低下し、メタスキルとスロー更新の両方を除去するとSpreadsheetBenchが77.5から55.0へ低下することが確認された。
スキルはモデルをまたいで転用できる
最適化されたスキルは、特定のモデルやベンチマークに過学習するのではなく、再利用可能なタスク解決手順を捉えているとする根拠がある。
転用実験の中で最も明快な例がクロスハーネス転用だ。Codex内で訓練されたスプレッドシートスキルを、追加の最適化なしにClaude Codeへゼロショットで移植したところ、無スキルベースラインの22.1から81.8へ**+59.7ポイント**改善した。これはClaude Code内で直接訓練した場合の80.4をわずかに上回る。2つのハーネスは異なるツール群を持つにもかかわらずこの結果が得られたことは、SkillOptがハーネス固有のレシピではなく汎用的なワークフロー知識を学習していることを示唆している。
コード、プロジェクトページ、GitHubリポジトリは以下から参照できる:
詳細はSkillOpt turns AI agent skills into trainable assetsを参照していただきたい。