「AIエージェントのスキルは、人間が手で書き続けるもの」——この前提を覆すのが、Microsoft Research発のオープンソースSkillOptmicrosoft/SkillOpt)です。ClaudeやCodexなどのエージェントが読み込むスキル文書(Markdown)を、実行と反省を繰り返す学習ループで自動的に書き換えます。公式READMEはClaude Codeのエージェント実行で+19.1ptの改善を報告していますが、GitHubスター15,780という人気度に対して、リリースはまだ2本というプロダクトとしての若さも見過ごせません。本記事では最適化ループの仕組み・Claude Codeでの実測値の読み方、そして実際にpip installして確かめたCLIの姿を、一次情報ベースで解説します。

公式デモ動画「SkillOpt - Controllable Text-Space Optimization for Agent Skills」。出典: microsoft/SkillOpt 公式README
30秒でわかる SkillOpt(2026年8月時点)
  • 正体:Microsoft Research製、AIエージェントのスキル文書を学習ループで自動最適化するOSS(MIT)。
  • 何ができる:Rollout→Reflect→Aggregate→Select→Update→Evaluateの6ステップを回し、スキル文書自体を書き換えて改善する。
  • 何を解決する:「スキルは人が手直しし続けないと陳腐化する」という運用負担。
  • 実測:Claude Codeで+19.1pt改善(README記載・Microsoft社内ベンチマーク)。pip install skilloptは本日の実機検証で約5秒完了。
  • 注意:v0.2.0・リリース2本・作成から3ヶ月のpre-1.0。上位1名が全コミットの40.7%を占める。

なお、SkillOptが最適化する対象であるスキルの基礎(Claude Codeでの位置づけ・設定方法)は、当サイトのClaude Code|2026年版・インストールからCLAUDE.md・Hooks・本番運用までの実装手引きにまとめています。人が書くスキルの仕組みそのものはClaude Skillsを徹底解説|スキルはフォルダ——Anthropicエンジニアが明かした仕組みと使い方を、CLAUDE.mdの書き方の原則はKarpathy流CLAUDE.md|LLMコーディング暴走を止める4原則、30kスター獲得の理由を参照してください。

SkillOptとは何か——「スキルを書く」から「学習で最適化する」へ

Claude Skillsに代表されるエージェントスキルは、これまで人間がMarkdownで手書きし、失敗を見つけたら手直しする運用が前提でした。SkillOptはこの前提を変え、スキル文書そのものを学習ループの最適化対象にします。公式リポジトリの説明を要約すると、狙いは「モデルの重みを一切変えず、スキルというテキスト空間だけを最適化する」ことです。

人手で書き続けるClaude Skillsの運用と、SkillOptの学習ループ(Rollout→Reflect→Update→Evaluate)を対比した図
従来の「人が書いて手直しする」運用と、SkillOptの学習ループの対比。

何ができるか:エージェントにスキルを実行させ、その結果から良し悪しを判定し、スキル文書自体を書き換える一連の処理を自動化する。いわばAIエージェントのスキルを自動最適化するための専用パイプラインである
何を解決するか:スキルが「書いた瞬間から陳腐化していく」問題。失敗パターンに気づいた人だけが手直しする、属人的な運用からの脱却
何を代替できるか:スキルを人手で継続的にメンテナンスする作業そのもの。ただしスキルを最初にゼロから発想する部分は代替しない——あくまで既存のスキルを改善するループである

実装の中身はPythonが中核(GitHub API実測で約202万byte相当)で、これに加えて後述するWeb UIダッシュボード用のHTML(約25万byte相当)が含まれています。Shell/PowerShell/Batchfileはインストーラの補助スクリプトです。単なる論文の付属コードではなく、CLIとダッシュボードまで揃えた実用志向のツールとして作られていることがうかがえます。

読者の3つの問いへの答え
何ができる:スキル文書を学習ループで自動改善する ② 何を解決する:スキルの手動メンテナンス負担 ③ 何を代替できる:スキルの継続的な手直し作業(ゼロからの設計は代替しない)

6ステップの最適化ループ——Rollout・Reflect・Aggregate・Select・Update・Evaluate

SkillOptの中核は、公式リポジトリが示す6段階のループです。エージェントにスキルを使わせて実行結果を集め(Rollout)、その結果から改善のヒントを引き出し(Reflect)、複数の候補を束ね(Aggregate)、有望なものを選び(Select)、スキル文書に反映し(Update)、最後に効果を測る(Evaluate)——これを繰り返すことで、スキル文書が少しずつ洗練されていきます。

flowchart LR A["Rollout
スキルを使ってエージェントを実行"] --> B["Reflect
実行結果から改善点を抽出"] B --> C["Aggregate
複数の候補パッチを集約"] C --> D["Select
有望な候補を選択"] D --> E["Update
スキル文書へ反映"] E --> F["Evaluate
ベースラインと比較評価"] F -->|次のサイクルへ| A
SkillOptの立ち位置は「賢いエージェントを作るフレームワーク」ではなく、「エージェントが使うスキル文書を、学習ループで磨き続ける仕組み」。エージェント本体(Claude Code・Codexなど)はそのまま使い、変わるのはスキルというテキストの中身だけです。

この設計思想は、READMEが自らを「text-space optimizer」と呼んでいることに表れています。モデルの重みを更新するのではなく、あくまでプロンプトに相当するテキスト(スキル)を更新対象にする——これがDSPyのような「プログラム全体」を最適化するフレームワークとの明確な違いです(比較は後述)。

Claude CodeでのSkillOpt実測数値——+19.1ptの中身と読み方

公式READMEは、複数のバックエンドでの改善幅をベンチマーク数値として公開しています。当サイトの読者にとって最も関心が高いのはClaude Codeでの結果でしょう。

SkillOptのREADMEが報告するベンチマーク改善幅。Claude Codeで+19.1pt、GPT-5.5 Direct chatで+23.5pt、Codex agentic loopで+24.8pt
SkillOpt公式READMEが報告する改善幅(Microsoft社内ベンチマーク)。
評価対象 改善幅(README記載) 備考
Claude Code(agentic loop) +19.1pt 52評価組み合わせ全てでbest/tied-bestと報告
GPT-5.5 Direct chat +23.5pt 同一ベンチマークセット内の数値
Codex agentic loop +24.8pt 同上
この数値を読むときの注意
上記はいずれもMicrosoft社内で実施されたベンチマークの数値です。第三者による独立した再現検証が行われているかどうかは、今回の裏取りでは確認できていません。「52評価組み合わせ全てでbest/tied-best」という主張も含め、READMEに書かれた一次情報として紹介するにとどめ、実績が確立した数値であるかのような読み方はしないでください。

target_keywordであるSkillOpt Claude Codeという組み合わせで検索する読者が知りたいのは、おそらく「自分のClaude Codeのワークフローにどう効くか」でしょう。ここで重要なのは、SkillOptが変えるのはClaude Code本体ではなく、Claude Codeに読み込ませるスキル文書だという点です。効果はスキルの初期品質や評価タスクの性質に依存するため、README記載の+19.1ptがそのままどの環境でも再現されるとは限りません。

SkillOptを実際にインストールして動かしてみる——pip installと3つのCLI

READMEに書かれた導入コマンドを、実際にLinux環境(2026-08-09時点)で動かして確認しました。

pip install skillopt

実行結果:依存パッケージ(azure-core・azure-identity・httpx・numpy・openai・openpyxl・pyyaml等)を含めて約5秒でインストールが完了しました。パッケージ名は実在し、PyPI公開が確認できています。

次にREADME流に python -m skillopt --help を試したところ、これはエラーになりました。

python -m skillopt --help
# → No module named skillopt.__main__; 'skillopt' is a package and cannot be directly executed

pip show -f skillopt でインストールされたファイルを確認すると、実際に使えるコマンドは skillopt-trainskillopt-evalskillopt-sleep という3本の独立したCLIエントリポイントであることが分かりました。

skillopt-train --help    # 学習ループを回す(--backend に claude / claude_chat / claude_code_exec 等を指定)
skillopt-eval --help     # 既存スキルを評価する(--config / --skill 必須)
skillopt-sleep --help    # {run, dry-run, status, adopt, harvest, schedule, unschedule} のナイトリー運用サブコマンド

skillopt-train--backend オプションには claudeclaude_chatclaude_code_execcodexcodex_execqwen などが並んでおり、Claude Code実行環境を直接ターゲットにできることがコマンドラインからも確認できました。また skillopt-sleeprun / dry-run / status / adopt / harvest / schedule / unschedule というサブコマンド構成で、前述の6ステップループをナイトリー(夜間バッチ)で継続的に回す運用を想定した設計になっています。

インストールされたパッケージのソース(skillopt/engine/trainer.py)まで確認したところ、学習ループが1サイクル進むたびに、その時点で最も評価が良かったスキルが出力先ディレクトリへbest_skill.md というファイル名で書き出される実装になっていました。README記載のコマンド例は動かない箇所がありましたが、この「現時点のベストなスキルを1本のMarkdownとして保持する」という設計自体はコード上で確認できた事実です。

WebUI(pip install -e ".[webui]")の起動確認は、追加依存のインストールに時間がかかるため今回は未検証としています。試す場合は追加のPythonパッケージが必要になる点に留意してください。

類似ツールとの比較——Claude Skills・DSPy・buildwithclaudeとSkillOptの違い

「結局これは何と競合するのか」を整理します。

対象 ライセンス SkillOptとの関係
Claude Skills(Anthropic公式機能) 該当なし(Claude Code本体の機能) 非公開 人間がMarkdownで手書きするスキルの仕組み。SkillOptは同じ「スキルをMarkdownで持つ」設計を踏襲しつつ、中身を学習ループで自動生成・改善する
DSPy(stanfordnlp/dspy) MIT 36,747 プロンプト・モデルの扱いを含む「プログラム」全体を最適化する汎用フレームワーク。SkillOptはモデルの重みを変えず、スキル文書というテキスト空間だけを対象にする点でスコープが異なる
buildwithclaude(davepoon/buildwithclaude、当サイト既存記事) MIT 3,217 Claude Skills・Agents・Pluginsを横断”検索”するハブ。SkillOptは検索・収集ではなく”生成・最適化”のレイヤーで、両者は競合せず補完関係にある

DSPyとの違いは特に重要です。DSPyは「モデルとプロンプトを含むプログラム」を最適化しますが、SkillOptはREADME自身が明言する通りモデルの重みには一切手を入れません。あくまでエージェントに読ませるテキスト(スキル文書)だけを書き換える、スコープの狭い専用ツールという理解が実態に近いでしょう。

Claude Skillsとの関係も整理しておきます。Claude Skills自体は「人がMarkdownでスキルを書き、Claude Codeがそれを読み込んで使う」という器(フォーマット)を提供する機能です。SkillOptはこの器を置き換えるものではなく、器の中身(スキル文書のテキスト)を誰が・どうやって更新するかというレイヤーに位置します。つまり「AIエージェントのスキルを自動最適化する」ためのアドオンであって、Claude Skillsそのものを代替する競合ではありません。この整理は、これからAIエージェント スキル 自動最適化という切り口でツールを比較検討する読者にとっても判断材料になるはずです。

実体評価——★15,780の裏にあるSkillOptのpre-1.0とバス係数40%

GitHubスター15,780という数字だけを見ると成熟したプロジェクトに見えますが、実体を確認すると印象が変わります。

リリース状況:最新はv0.2.0(2026-07-02公開)で、正式リリースはまだ2本のみ
プロジェクトの若さ:リポジトリ作成は2026-05-08で、リサーチ時点でわずか3ヶ月ほど
開発の集中度:全447コミットのうち、上位contributor(Yif-Yang)が182件(約40.7%)を占め、次点のlufen(40件)・Lliar-liar(30件)以下とは大きく差がある。48名のコントリビュータという頭数はあるが、実質的な中核は少人数
直近の活性度:2026-08-07にもpushがあり、直近は活発に更新されている

星数と実体のギャップ
★15,780に対してコミット447・リリース2本・作成から3ヶ月というスペックは、「Microsoftブランド+AI研究界隈での話題性による急伸直後の研究発表OSS」に典型的な形です。「実績十分な安定ツール」ではなく「研究成果の公開直後」という文脈で評価するのが実態に近い読み方です。

開発元はMicrosoft Researchで、LICENSEファイルのCopyright表記も「Microsoft Corporation」となっています。専任チームによる継続開発とみられますが、商用版やマネージドクラウド提供の有無は今回確認できていません。

まとめ——SkillOptは今使うべきか

SkillOptは、「AIエージェントのスキルは人が書き続けるもの」という前提に、Rollout→Reflect→Aggregate→Select→Update→Evaluateという学習ループで挑む、Microsoft Research発の野心的なOSSです。Claude Codeで+19.1ptというREADME記載の改善幅は魅力的ですが、それがMicrosoft社内ベンチマークの数値であること、そしてプロジェクト自体がv0.2.0・リリース2本・作成から3ヶ月というpre-1.0の研究プロトタイプ段階であることは、導入判断の前に押さえておくべき事実です。

実際に pip install skillopt を動かしてみると、READMEの python -m skillopt --help という記載どおりには動かず、実際のCLIは skillopt-trainskillopt-evalskillopt-sleep という3本立てでした。こうした細部のズレも含めて、「動くか」と「本番で任せられるか」は別の話として評価するのが妥当でしょう。まずは検証環境で skillopt-eval を回し、自分の使っているスキルにどれだけの改善余地があるかを確かめるところから始めるのが現実的な一歩です。

参照ソース

microsoft/SkillOpt(公式リポジトリ・README) — 概要・最適化ループの6ステップ・ベンチマーク数値・インストール手順の一次情報
SkillOpt公式プロジェクトページ — 詳細ガイドへの導線
arXiv論文 — 手法の学術的な裏付け(本文の詳細は今回未読了・URLの存在のみ確認済み)