SkillOpt は何をしますか?
SkillOptは、凍結されたLLMエージェント向けに再利用可能な自然言語スキルを訓練するテキスト空間オプティマイザーです。軌跡駆動型編集、検証ゲート付き更新、およびデプロイ可能なbest_skill.mdアーティファクトを通じて動作します。
概要
SkillOptは、LLMエージェントがタスクを実行する際の行動を最適化するためのスキル(自然言語で記述された指示やテンプレート)を自動生成します。凍結されたLLMとは、モデルの重みを変更せずに、プロンプトやスキル文書のみを調整するアプローチを指します。これにより、モデルの再学習にかかるコストやリスクを回避しながら、エージェントのパフォーマンスを向上させられます。
主な機能
- 軌跡駆動型編集: エージェントがタスクを実行した際の成功・失敗の軌跡(trajectory)を分析し、スキル文書を自動的に編集・改善します。
- 検証ゲート付き更新: 編集されたスキルが実際のタスクで期待通りに機能するかを検証し、合格した場合のみ更新を適用します。
- デプロイ可能なアーティファクト: 最適化されたスキルは
best_skill.mdとして出力され、そのままエージェントに適用可能です。
対応プラットフォーム
SkillOptは以下のエージェントプラットフォームでの使用を想定しています:
- Claude Code
- Cursor
- Codex
- その他、自然言語スキルをサポートするLLMエージェント
使い方
インストール
git clone https://github.com/microsoft/SkillOpt.git
cd SkillOpt
pip install -r requirements.txt
基本フロー
- 初期スキルの準備: エージェントに使用する初期スキル(例:
skill.md)を作成します。 - タスクの実行と軌跡の収集: エージェントにタスクを実行させ、成功・失敗の軌跡を記録します。
- スキルの最適化: 以下のコマンドを実行してスキルを最適化します。
python skillopt.py --skill skill.md --trajectories trajectories.json --output best_skill.md
- 検証とデプロイ: 最適化された
best_skill.mdをエージェントに適用し、動作を確認します。
設定オプション
--validation-threshold: 検証ゲートの合格基準(デフォルト: 0.8)--max-iterations: 最大最適化反復回数(デフォルト: 10)--trajectory-dir: 軌跡データの保存ディレクトリ
設定例
# config.yaml
skill:
path: ./skills/code_review.md
initial_prompt: ""
optimization:
validation_threshold: 0.85
max_iterations: 5
trajectory_dir: ./data/trajectories
agent:
platform: claude-code
model: claude-3-opus-20240229
環境変数
SKILLOPT_VALIDATION_THRESHOLD: 検証閾値の上書きSKILLOPT_MAX_ITERATIONS: 最大反復回数の上書きSKILLOPT_TRAJECTORY_DIR: 軌跡ディレクトリの指定
注意事項
- スキル文書は自然言語で記述する必要があります。
- 軌跡データはJSON形式で、各ステップの入出力を含む必要があります。
- 最適化には十分な計算リソース(特にメモリ)を推奨します。
ライセンス
このプロジェクトはMITライセンスの下で公開されています。