mcpField
S
skill-optimizer

skill-optimizer

github.com/rohitg00エージェントワークフロー2.9k127 回インストール5 週間前に更新
リポジトリ

skill-optimizer について

skill-optimizerは、パッチ提案と検証、採用判定を繰り返して既存のSKILL.mdをオフラインで改善するスキルです。学習データが蓄積したスキルを対象とし、予算上限を設定できます。

主な機能

  1. 01パッチの反復提案と選定
  2. 02検証に基づく候補の採用判定
  3. 03予算上限と実行制限の設定
  4. 04失敗パッチの却下記録
  5. 05実行データのSQLite保存

活用シーン

  1. 01learn-ruleデータが蓄積したスキルの改善
  2. 02重複または肥大化したルールの整理
  3. 03固定予算内でのスキル改善実行

MCP 対応

プラグインセッションでは、`providers` MCPサーバーの`run_provider_task`ツールを`task: "optimizer"`で実行できます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rohitg00/pro-workflow --skill skill-optimizer

インストール後、Claude Code で/skill-optimizerを入力して読み込まれたか確認します。

詳細

スキルオプティマイザー

既存の SKILL.md を、ディープラーニングのオプティマイザーが重みを学習するように訓練します。ロールアウト、勾配に似た振り返り、検証を通過した候補の採用によって行います。モデルの再訓練は行わず、スキルの Markdown のみを変更します。

使用するタイミング

次の場合にこのスキルを使用します。

  • プロワークフローのスキルに、学習ルールの行が8件以上蓄積されている
  • ユーザーがスキルの「肥大化」や「ルールの繰り返し」を報告している
  • ユーザーが、複数のセッションにわたるオフラインでの、予算上限付きの改善を希望している

次の場合は使用しないでください。

  • スキルの軌跡が8件未満である(学習材料がありません)
  • ユーザーがリアルタイムでの編集を希望している(これはオフラインで一度だけ実行します)
  • 選択したプロバイダーに対して、キーが明示的に設定されていない

アーキテクチャ(SkillOpt の6段階ループを反映)

rollout      pull recent learnings from SQLite (existing learn-rule rows)
reflect      optimizer LLM analyzes a minibatch, proposes add/delete/replace patches
aggregate    vote-merge patches across minibatches
select       clip by LR budget (default: 3 adds, 2 deletes, 3 replaces per step)
update       apply selected patches to a candidate skill content
evaluate     evaluator LLM scores candidate against held-out validation items
gate         accept candidate only if weighted score >= current + acceptThreshold
slow update  at epoch boundary, consolidate accepted edits into a coherent rewrite

失敗した候補は却下バッファーに保存され、次の振り返りステップにフィードバックされます。これにより、オプティマイザーが同じパッチを再提案するのを防ぎます。

実行方法

プラグインのセッションで、providers MCP サーバーの run_provider_task ツールを使用し、task: "optimizer" と args: ["--slug", "<slug>", "--budget-usd", "0.50"] を指定します。キーはプラグインの設定ダイアログから取得します。スタンドアロンの CLI インストールでは、PRO_WORKFLOW_*_API_KEY 変数を明示的に使用します。プロバイダーの設定を参照してください。チャットでキーを要求したり、既存のマシン認証情報を取得したりしないでください。

/skill-optimize <slug> [options]

オプション(すべて任意。デフォルト値は妥当な値に設定されています)。

フラグデフォルト説明
--epochs N3外側ループの回数
--batch-size N8ミニバッチあたりの軌跡数
--minibatches N2エポックあたりのミニバッチ数
--holdout N6検証用に確保する項目数(軌跡の最大約25%)
--budget-usd X0.50上限。消費額が上限に達するとループを中断
--optimizer-model Mclaude-sonnet-5振り返りとスローアップデートに使用するモデル
--evaluator-model Mclaude-haiku-4-5ゲート用モデル(低コスト)
--max-adds N3ステップあたりの学習ルール追加上限
--max-deletes N2
--max-replaces N3
--accept-threshold X0.0候補の採用に必要な最小スコア差分
--max-skill-tokens N2000候補の長さの上限
--slow-every N2統合パスの間隔(エポック数)
--jsonオフ機械可読な出力

停止スイッチ:touch ~/.pro-workflow/STOP を実行すると、ステップ間でループを中断します。

出力

  • 候補が採用される → SKILL.md を上書きし、HTML コメントにハッシュスタンプを追記
  • 実行の詳細は optimization_runs、optimization_candidates、optimization_patches、optimization_rejections に保存されます
  • 検証セットは optimization_validation に保存され、以降の実行でも再利用できます

実行後に確認するには:

sqlite3 ~/.pro-workflow/data.db "SELECT id, skill_slug, initial_score, best_score, accepted_steps, rejected_steps, spent_usd FROM optimization_runs ORDER BY id DESC LIMIT 5"

ルール

  • 検証セットは実行開始時に固定されます。実行中に新たな修正から再導出しないでください。
  • 各ステップで候補は1つだけです。並列ブランチは使用しません。
  • スローアップデートの出力自体も候補です。最良の候補を置き換えるには、ゲートを通過する必要があります。
  • オプティマイザーの LLM と評価器の LLM には、異なるモデルを使用できます。強力なオプティマイザーと低コストの評価器の組み合わせが、SkillOpt 推奨の構成です。
  • いずれかのステップ境界で spent_usd >= budget_usd となった場合、stopped_reason="budget exhausted" でループが終了します。
  • アンカーがスキル内に存在しなくなったパッチ(同じステップの先行パッチによって削除された場合)は、理由 anchor_missing とともに却下として記録されます。

出典

Microsoft SkillOpt(arXiv:2605.23904)に着想を得ています。6段階のロールアウト/振り返り/集約/選択/更新/評価のパイプライン、学習ルールの予算、却下バッファー、スロー更新およびメタ更新の仕組みは、pro-workflow の既存の SQLite +学習ルールのデータプレーンに合わせて採用されています。SkillOpt のコードは再利用していません。「ReflACT」は SkillOpt の用語ではなく、ここでは使用しません。このループは各段階の名称のみで呼びます。

コメント