Agent Skills расширяют Claude специализированными возможностями, которые Claude автономно вызывает при необходимости. Skills упакованы как файлы SKILL.md, содержащие инструкции, описания и дополнительные ресурсы.
Для получения полной информации о Skills, включая преимущества, архитектуру и рекомендации по созданию, см. обзор Agent Skills.
При использовании Claude Agent SDK Skills:
SKILL.md в определённых каталогах (.claude/skills/)settingSources (TypeScript) или setting_sources (Python) для загрузки Skills из файловой системы"Skill" в ваш allowed_tools для включения SkillsВ отличие от подагентов (которые можно определить программно), Skills должны быть созданы как артефакты файловой системы. SDK не предоставляет программный API для регистрации Skills.
Поведение по умолчанию: По умолчанию SDK не загружает никакие параметры файловой системы. Для использования Skills вы должны явно настроить settingSources: ['user', 'project'] (TypeScript) или setting_sources=["user", "project"] (Python) в ваших параметрах.
Для использования Skills с SDK вам необходимо:
"Skill" в конфигурацию allowed_toolssettingSources/setting_sources для загрузки Skills из файловой системыПосле настройки Claude автоматически обнаруживает Skills из указанных каталогов и вызывает их при необходимости для запроса пользователя.
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())Skills загружаются из каталогов файловой системы на основе конфигурации settingSources/setting_sources:
.claude/skills/): Общие с вашей командой через git - загружаются, когда setting_sources включает "project"~/.claude/skills/): Личные Skills для всех проектов - загружаются, когда setting_sources включает "user"Skills определяются как каталоги, содержащие файл SKILL.md с YAML frontmatter и содержимым Markdown. Поле description определяет, когда Claude вызывает ваш Skill.
Пример структуры каталога:
.claude/skills/processing-pdfs/
└── SKILL.mdДля полного руководства по созданию Skills, включая структуру SKILL.md, многофайловые Skills и примеры, см.:
Поле frontmatter allowed-tools в SKILL.md поддерживается только при прямом использовании Claude Code CLI. Оно не применяется при использовании Skills через SDK.
При использовании SDK контролируйте доступ к инструментам через основной параметр allowedTools в конфигурации запроса.
Для ограничения инструментов для Skills в приложениях SDK используйте параметр allowedTools:
Предполагается, что операторы импорта из первого примера используются в следующих фрагментах кода.
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)Чтобы увидеть, какие Skills доступны в вашем приложении 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 выведет список доступных Skills на основе вашего текущего рабочего каталога и установленных плагинов.
Протестируйте Skills, задав вопросы, которые соответствуют их описаниям:
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)Claude автоматически вызывает соответствующий Skill, если описание совпадает с вашим запросом.
Проверьте конфигурацию settingSources: Skills загружаются только при явной настройке settingSources/setting_sources. Это наиболее распространённая проблема:
# Неправильно - Skills не будут загружены
options = ClaudeAgentOptions(
allowed_tools=["Skill"]
)
# Правильно - Skills будут загружены
options = ClaudeAgentOptions(
setting_sources=["user", "project"], # Required to load Skills
allowed_tools=["Skill"]
)Для получения дополнительной информации о settingSources/setting_sources см. справочник TypeScript SDK или справочник Python SDK.
Проверьте рабочий каталог: SDK загружает Skills относительно параметра 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"]
)Полный шаблон см. в разделе "Использование Skills с SDK" выше.
Проверьте расположение файловой системы:
# Check project Skills
ls .claude/skills/*/SKILL.md
# Check personal Skills
ls ~/.claude/skills/*/SKILL.mdПроверьте, что инструмент Skill включён: Убедитесь, что "Skill" находится в вашем allowedTools.
Проверьте описание: Убедитесь, что оно конкретно и включает соответствующие ключевые слова. Рекомендации по написанию эффективных описаний см. в Agent Skills Best Practices.
Для общего устранения неполадок Skills (синтаксис YAML, отладка и т. д.) см. раздел устранения неполадок Claude Code Skills.
Was this page helpful?