エージェントスキルは、Claudeが関連する場合に自律的に呼び出す特殊な機能でClaudeを拡張します。スキルは、指示、説明、およびオプションのサポートリソースを含むSKILL.mdファイルとしてパッケージ化されます。
スキルの利点、アーキテクチャ、および作成ガイドラインを含む包括的な情報については、エージェントスキルの概要を参照してください。
Claude Agent SDKを使用する場合、スキルは以下のようになります:
.claude/skills/)にSKILL.mdファイルとして作成されますsettingSources(TypeScript)またはsetting_sources(Python)を指定する必要がありますallowed_toolsに"Skill"を追加してスキルを有効にしますサブエージェント(プログラムで定義できる)とは異なり、スキルはファイルシステムアーティファクトとして作成する必要があります。SDKはスキルを登録するためのプログラマティックAPIを提供しません。
デフォルトの動作:デフォルトでは、SDKはファイルシステム設定を読み込みません。スキルを使用するには、オプションでsettingSources: ['user', 'project'](TypeScript)またはsetting_sources=["user", "project"](Python)を明示的に設定する必要があります。
SDKでスキルを使用するには、以下を行う必要があります:
allowed_tools設定に"Skill"を含めるsettingSources/setting_sourcesを設定してファイルシステムからスキルを読み込む設定されると、Claudeは指定されたディレクトリからスキルを自動的に検出し、ユーザーのリクエストに関連する場合に呼び出します。
スキルはsettingSources/setting_sources設定に基づいてファイルシステムディレクトリから読み込まれます:
.claude/skills/):gitを介してチームと共有されます。setting_sourcesに"project"が含まれている場合に読み込まれます~/.claude/skills/):すべてのプロジェクト全体の個人スキル。setting_sourcesに"user"が含まれている場合に読み込まれますスキルは、YAMLフロントマターとMarkdownコンテンツを含むSKILL.mdファイルを含むディレクトリとして定義されます。descriptionフィールドは、Claudeがスキルを呼び出すタイミングを決定します。
ディレクトリ構造の例:
.claude/skills/processing-pdfs/
└── SKILL.mdスキルの作成に関する完全なガイダンス(SKILL.md構造、複数ファイルスキル、例を含む)については、以下を参照してください:
SKILL.mdのフロントマターallowed-toolsフィールドは、Claude Code CLIを直接使用する場合にのみサポートされます。SDKを通じてスキルを使用する場合には適用されません。
SDKを使用する場合は、クエリ設定のメインallowedToolsオプションを通じてツールアクセスを制御します。
SDK アプリケーションでスキルのツールを制限するには、allowedToolsオプションを使用します:
最初の例のインポートステートメントは、以下のコードスニペットで想定されています。
SDKアプリケーションで利用可能なスキルを確認するには、単にClaudeに尋ねます:
options = ClaudeAgentOptions(
setting_sources=["user", "project"], # Load Skills from filesystem
allowed_tools=["Skill"]
)
async for message in query(
prompt="What Skills are available?",
options=options
):
print(message)Claudeは現在の作業ディレクトリとインストール済みプラグインに基づいて利用可能なスキルをリストします。
説明に一致する質問をすることでスキルをテストします:
説明がリクエストに一致する場合、Claudeは関連するスキルを自動的に呼び出します。
settingSources設定を確認する:スキルはsettingSources/setting_sourcesを明示的に設定した場合にのみ読み込まれます。これが最も一般的な問題です:
# 間違い - スキルは読み込まれません
options = ClaudeAgentOptions(
allowed_tools=["Skill"]
)
# 正しい - スキルが読み込まれます
options = ClaudeAgentOptions(
setting_sources=["user", "project"], # Required to load Skills
allowed_tools=["Skill"]
)settingSources/setting_sourcesの詳細については、TypeScript SDKリファレンスまたはPython SDKリファレンスを参照してください。
作業ディレクトリを確認する:SDKはcwdオプションに相対的にスキルを読み込みます。.claude/skills/を含むディレクトリを指していることを確認してください:
# cwdが.claude/skills/を含むディレクトリを指していることを確認します
options = ClaudeAgentOptions(
cwd="/path/to/project", # Must contain .claude/skills/
setting_sources=["user", "project"], # Required to load Skills
allowed_tools=["Skill"]
)上記の「SDKでのスキルの使用」セクションを参照して、完全なパターンを確認してください。
ファイルシステムの場所を確認する:
# プロジェクトスキルを確認
ls .claude/skills/*/SKILL.md
# 個人スキルを確認
ls ~/.claude/skills/*/SKILL.mdスキルツールが有効になっていることを確認する:allowedToolsに"Skill"が含まれていることを確認します。
説明を確認する:具体的で関連するキーワードが含まれていることを確認してください。効果的な説明の書き方については、エージェントスキルのベストプラクティスを参照してください。
一般的なスキルのトラブルシューティング(YAML構文、デバッグなど)については、Claude Codeスキルのトラブルシューティングセクションを参照してください。
import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions
async def main():
options = ClaudeAgentOptions(
cwd="/path/to/project", # Project with .claude/skills/
setting_sources=["user", "project"], # Load Skills from filesystem
allowed_tools=["Skill", "Read", "Write", "Bash"] # Enable Skill tool
)
async for message in query(
prompt="Help me process this PDF document",
options=options
):
print(message)
asyncio.run(main())options = ClaudeAgentOptions(
setting_sources=["user", "project"], # Load Skills from filesystem
allowed_tools=["Skill", "Read", "Grep", "Glob"] # Restricted toolset
)
async for message in query(
prompt="Analyze the codebase structure",
options=options
):
print(message)options = ClaudeAgentOptions(
cwd="/path/to/project",
setting_sources=["user", "project"], # Load Skills from filesystem
allowed_tools=["Skill", "Read", "Bash"]
)
async for message in query(
prompt="Extract text from invoice.pdf",
options=options
):
print(message)