エージェントにスキルを統合する
AI エージェントまたは開発ツールに Agent Skills サポートを追加する方法。
このガイドでは、AI エージェントまたは開発ツールにスキルサポートを追加する方法を説明します。
統合アプローチ
スキルを統合する主な 2 つのアプローチは:
ファイルシステムベースのエージェントは、コンピュータ環境(bash/unix)内で動作し、最も強力なオプションを表します。スキルは、cat /path/to/my-skill/SKILL.md のようなシェルコマンドをモデルが発行したときにアクティブ化されます。バンドルされたリソースはシェルコマンドを通じてアクセスされます。
ツールベースのエージェントは、専用のコンピュータ環境なしで機能します。代わりに、モデルがスキルをトリガーし、バンドルされたアセットにアクセスできるようにするツールを実装します。特定のツール実装は開発者次第です。
概要
スキル互換のエージェントには以下が必要です:
- 発見:設定されたディレクトリでスキルを検出する
- メタデータの読み込み:起動時に(名前と説明を)読み込む
- マッチング:ユーザーのタスクを関連するスキルにマッチさせる
- アクティベーション:完全な指示を読み込むことでスキルをアクティブ化する
- 実行:必要に応じてスクリプトを実行し、リソースにアクセスする
スキルの発見
スキルは SKILL.md ファイルを含むフォルダです。エージェントは、有効なスキルがある設定されたディレクトリをスキャンする必要があります。
メタデータの読み込み
起動時に、各 SKILL.md ファイルのフロントマターのみを解析します。これにより、初期コンテキストの使用が抑えられます。
フロントマターの解析
function parseMetadata(skillPath):
content = readFile(skillPath + "/SKILL.md")
frontmatter = extractYAMLFrontmatter(content)
return {
name: frontmatter.name,
description: frontmatter.description,
path: skillPath
}
コンテキストへの挿入
システムプロンプトにスキルメタデータを含めて、モデルがどのスキルが利用可能かを知ることができるようにします。
システムプロンプトの更新については、プラットフォームのガイダンスに従ってください。例えば、Claude モデルの場合、推奨される形式は XML を使用します:
<available_skills>
<skill>
<name>pdf-processing</name>
<description>PDF ファイルからテキストとテーブルを抽出し、フォームに記入し、ドキュメントをマージします。</description>
<location>/path/to/skills/pdf-processing/SKILL.md</location>
</skill>
<skill>
<name>data-analysis</name>
<description>データセットを分析し、チャートを生成し、要約レポートを作成します。</description>
<location>/path/to/skills/data-analysis/SKILL.md</location>
</skill>
</available_skills>
ファイルシステムベースのエージェントの場合、location フィールドに SKILL.md ファイルへの絶対パスを含めます。ツールベースのエージェントの場合、location は省略できます。
メタデータは簡潔に保ちます。各スキルはコンテキストに約 50-100 トークンを追加する必要があります。
セキュリティに関する考慮事項
スクリプトの実行にはセキュリティリスクが伴います。以下を検討してください:
- サンドボックス化:スクリプトを分離された環境で実行する
- 許可リスト:信頼できるスキルのスクリプトのみを実行する
- 確認:潜在的に危険な操作を実行する前にユーザーに確認を求める
- ログ記録:監査のためにすべてのスクリプト実行を記録する
参考実装
skills-ref ライブラリは、スキルを扱うための Python ユーティリティと CLI を提供します。
例:
スキルディレクトリの検証:
skills-ref validate <path>
エージェントプロンプト用の <available_skills> XML の生成:
skills-ref to-prompt <path>...
ライブラリのソースコードを参考実装として使用してください。