スキル自動生成
ユーザーの作業パターンを観察し、繰り返し作業を自動的にスキルやスクリプトとして抽出する仕組み。
基本フロー
- 観察: フックを使って操作履歴を記録
- 検出: パターン検出で繰り返しパターンを発見
- 抽出: パターンをテンプレート化
- 提案: ユーザーにスキル化を提案
- 生成: 承認されたらスキルファイルを生成
- 検証: 生成されたスキルをテスト実行
パターンの種類
1. コマンド列パターン
同じコマンドの組み合わせが繰り返される場合:
# 繰り返し検出されたパターン
git add .
git commit -m "..."
git push
→ スクリプト化またはエイリアス化を提案
2. ファイル操作パターン
同じファイル操作の流れが繰り返される場合:
Read "articles/xxx.md"
→ Extract concepts
→ Write "notes/yyy.md"
→ Update "articles/xxx.md" with links
→ 「概念抽出」スキルとして提案
3. 後処理パターン
特定の操作の後に毎回同じ修正が入る場合:
Execute: /commit
Then always: Edit to add "Co-Authored-By"
→ /commitスキルのテンプレートに追加を提案
テンプレート生成
検出されたパターンから、変数部分と固定部分を分離してテンプレート化:
# 検出されたパターン
Read "articles/記事A.md" → Write "notes/概念A.md"
Read "articles/記事B.md" → Write "notes/概念B.md"
# テンプレート化
---
name: extract-concept
description: Extract general concepts from article to notes
---
1. Read the article from `articles/$ARTICLE_NAME.md`
2. Identify general concepts (not article-specific)
3. Create note in `notes/$CONCEPT_NAME.md`
4. Add link to the article
変数の抽出
パターン内の変化する部分を変数として抽出:
def extract_variables(patterns):
fixed_parts = find_common_substring(patterns)
variables = []
for pattern in patterns:
var = pattern.replace(fixed_parts, "")
variables.append(var)
return fixed_parts, variables
スキル品質の検証
生成されたスキルが実際に動作するか検証:
- 構文チェック: テンプレートの構文が正しいか
- テスト実行: サンプルデータで実行してみる
- エラーハンドリング: エッジケースでも動作するか
- セキュリティチェック: 危険な操作が含まれていないか
メタエージェントとの統合
スキル自動生成はメタエージェントの主要機能の一つ:
PostToolUse Hook
↓
Usage Log
↓
Pattern Detection (週次実行)
↓
Skill Generation Proposal
↓
User Approval
↓
Skill Installation
生成されるスキルの種類
プロジェクトレベルスキル
特定のプロジェクト専用のスキル:
project/
└── .claude/skills/
└── deploy-staging/
└── SKILL.md
ユーザーレベルスキル
すべてのプロジェクトで使える汎用スキル:
~/.config/claude/skills/
└── extract-concept/
└── SKILL.md
機械学習との組み合わせ
単純なパターンマッチングだけでなく、機械学習を使った高度な抽出も可能:
クラスタリング
類似した操作をグループ化:
from sklearn.cluster import KMeans
# ツール使用ログをベクトル化
vectors = vectorize_logs(usage_logs)
# クラスタリングで類似操作をグループ化
clusters = KMeans(n_clusters=10).fit(vectors)
シーケンス学習
操作の流れを学習:
from transformers import GPT2LMHeadModel
# 操作シーケンスを学習
model = GPT2LMHeadModel.from_pretrained('gpt2')
model.train(operation_sequences)
# 次の操作を予測
next_op = model.predict(current_sequence)
インタラクティブな改善
生成されたスキルをユーザーが編集できるようにする:
# スキル生成後
claude skill generate extract-concept
# エディタでレビュー
claude skill edit extract-concept
# テスト実行
claude skill test extract-concept
# 問題なければインストール
claude skill install extract-concept
CI-CDパイプラインとの類似
スキル自動生成は「ワークフローのCI/CD」と捉えられる:
| CI/CD | スキル自動生成 |
|---|---|
| コードの変更検出 | パターンの検出 |
| ビルド | スキル生成 |
| テスト | 検証実行 |
| デプロイ | スキルインストール |
人間の承認プロセス
自動生成されたスキルは、人間が承認してからインストールする:
- 提案の提示: 「このパターンが3回検出されました。スキル化しますか?」
- プレビュー: 生成されるスキルの内容を表示
- 承認/拒否: ユーザーが判断
- フィードバック: 拒否された場合、理由を記録して次回に活かす
関連
- パターン検出
- メタエージェント
- スキルレジストリ
- スキル (OpenClaw) - 生成されるスキルの形態
- フック
- ワークフロー
- 自動化
- テンプレートメタプログラミング