概要
Agent Skills は、Claude が関連する場合に自律的に呼び出す特殊な機能で Claude を拡張します。Skills は、指示、説明、およびオプションのサポートリソースを含むSKILL.md ファイルとしてパッケージ化されます。
Skills に関する包括的な情報(利点、アーキテクチャ、作成ガイドラインを含む)については、Agent Skills の概要を参照してください。
SDK での Skills の動作方法
Claude Agent SDK を使用する場合、Skills は以下のように機能します。- ファイルシステムアーティファクトとして定義される:特定のディレクトリ(
.claude/skills/)にSKILL.mdファイルとして作成されます - ファイルシステムから読み込まれる:Skills は
settingSources(TypeScript)またはsetting_sources(Python)によって管理されるファイルシステムの場所から読み込まれます - 自動的に検出される:ファイルシステム設定が読み込まれると、Skill メタデータはスタートアップ時にユーザーおよびプロジェクトディレクトリから検出されます。完全なコンテンツはトリガーされたときに読み込まれます
- モデルによって呼び出される:Claude はコンテキストに基づいて自律的に使用するタイミングを選択します
skillsオプションでフィルタリングされる:検出された Skills はデフォルトで有効になります。スキル名のリスト、"all"、または[]を渡して、セッションで利用可能なものを制御します
Skills はファイルシステム設定ソースを通じて検出されます。デフォルトの
query() オプションでは、SDK はユーザーおよびプロジェクトソースを読み込むため、~/.claude/skills/、<cwd>/.claude/skills/、および <cwd> の親ディレクトリからリポジトリルートまでの .claude/skills/ の skills が利用可能です。settingSources を明示的に設定する場合は、'user' または 'project' を含めてスキル検出を維持するか、plugins オプションを使用して特定のパスから skills を読み込みます。SDK での Skills の使用
query() の skills オプションを設定して、セッションで利用可能な Skills を制御します。省略した場合、検出された Skills が有効になり、Skill ツールが利用可能になり、CLI の動作と一致します。"all" を渡してすべての検出された Skill を有効にするか、Skill 名のリストを渡してそれらのみを有効にするか、[] を渡してすべてを無効にします。skills を設定すると、SDK は Skill ツールを allowedTools に自動的に追加します。明示的な tools リストも渡す場合は、Claude が skills を呼び出せるようにそのリストに "Skill" を含めてください。
設定されると、Claude はファイルシステムから Skills を自動的に検出し、ユーザーのリクエストに関連する場合に呼び出します。
SKILL.md の name フィールドまたは Skill のディレクトリ名と一致します。プラグイン提供の Skills には plugin:skill を使用します。
skills オプションはコンテキストフィルタであり、サンドボックスではありません。リストされていない Skills はモデルから非表示になり、Skill ツールによって拒否されますが、それらのファイルはディスク上に残り、Read および Bash を通じてアクセス可能です。
Skill の場所
Skills はsettingSources/setting_sources 設定に基づいてファイルシステムディレクトリから読み込まれます。
- プロジェクト Skills(
.claude/skills/):git を通じてチームと共有されます。setting_sourcesに"project"が含まれている場合に読み込まれます - ユーザー Skills(
~/.claude/skills/):すべてのプロジェクト全体の個人用 Skills。setting_sourcesに"user"が含まれている場合に読み込まれます - プラグイン Skills:インストールされた Claude Code プラグインにバンドルされています
Skills の作成
Skills は、YAML フロントマターと Markdown コンテンツを含むSKILL.md ファイルを含むディレクトリとして定義されます。description フィールドは、Claude が Skill を呼び出すタイミングを決定します。
ディレクトリ構造の例:
- Claude Code の Agent Skills:例とテンプレートを含む完全なガイド
- Agent Skills のベストプラクティス:作成ガイドラインと命名規則
ツール制限
SKILL.md の
allowed-tools フロントマターフィールドは、Claude Code CLI を直接使用する場合にのみサポートされます。SDK を通じて Skills を使用する場合には適用されません。SDK を使用する場合、クエリ設定の主要な allowedTools オプションを通じてツールアクセスを制御します。allowedTools を使用して特定のツールを事前承認します。canUseTool コールバックがない場合、リストにないものはすべて拒否されます。
最初の例からのインポートステートメントは、以下のコードスニペットで想定されています。
利用可能な Skills の検出
SDK アプリケーションで利用可能な Skills を確認するには、Claude に尋ねるだけです。Skills のテスト
説明と一致する質問をすることで Skills をテストします。トラブルシューティング
Skills が見つからない
settingSources 設定を確認する:Skills はuser および project 設定ソースを通じて検出されます。settingSources/setting_sources を明示的に設定し、それらのソースを省略した場合、skills は読み込まれません。
settingSources/setting_sources の詳細については、TypeScript SDK リファレンスまたは Python SDK リファレンスを参照してください。
作業ディレクトリを確認する:SDK は cwd オプションの .claude/skills/ およびリポジトリルートまでのすべての親ディレクトリから Skills を読み込みます。cwd が .claude/skills/ を含むディレクトリ以下を指していることを確認してください。同じリポジトリ内である必要があります。
Skill が使用されていない
skills オプションを確認する:skills リストを渡した場合、skill の名前が含まれていることを確認します。[] を渡すとすべての skills が無効になります。
説明を確認する:具体的で関連するキーワードが含まれていることを確認します。効果的な説明の書き方に関するガイダンスについては、Agent Skills のベストプラクティスを参照してください。
追加のトラブルシューティング
一般的な Skills トラブルシューティング(YAML 構文、デバッグなど)については、Claude Code Skills トラブルシューティングセクションを参照してください。関連ドキュメント
Skills ガイド
- Claude Code の Agent Skills:作成、例、トラブルシューティングを含む完全な Skills ガイド
- Agent Skills の概要:概念的な概要、利点、アーキテクチャ
- Agent Skills のベストプラクティス:効果的な Skills のための作成ガイドライン
- Agent Skills クックブック:例の Skills とテンプレート
SDK リソース
- SDK のサブエージェント:プログラマティックオプションを備えた同様のファイルシステムベースのエージェント
- SDK のスラッシュコマンド:ユーザーが呼び出すコマンド
- SDK の概要:一般的な SDK の概念
- TypeScript SDK リファレンス:完全な API ドキュメント
- Python SDK リファレンス:完全な API ドキュメント