Навыки агентов
Определяйте переиспользуемое поведение через определения SKILL.md
Навыки агентов позволяют Dropstone обнаруживать переиспользуемые инструкции из вашего репозитория или домашней директории.
Навыки загружаются по требованию через встроенный инструмент skill: агенты видят, какие навыки доступны, и могут загрузить полное содержимое, когда навык соответствует задаче.
Размещение файлов
Создайте одну папку на каждый навык и поместите SKILL.md внутри неё.
Dropstone ищет в этих местоположениях:
- Конфиг проекта:
.dropstone/skills/<name>/SKILL.md - Глобальный конфиг:
~/.config/dropstone/skills/<name>/SKILL.md - Совместимость с Claude проекта:
.claude/skills/<name>/SKILL.md - Глобальная совместимость с Claude:
~/.claude/skills/<name>/SKILL.md - Совместимость с агентами проекта:
.agents/skills/<name>/SKILL.md - Глобальная совместимость с агентами:
~/.agents/skills/<name>/SKILL.md
Понимание обнаружения
Для локальных путей проекта Dropstone поднимается вверх от вашей текущей рабочей директории до достижения git worktree.
Он загружает любые соответствующие skills/*/SKILL.md в .dropstone/ и любые соответствующие .claude/skills/*/SKILL.md или .agents/skills/*/SKILL.md по пути.
Глобальные определения также загружаются из ~/.config/dropstone/skills/*/SKILL.md, ~/.claude/skills/*/SKILL.md и ~/.agents/skills/*/SKILL.md.
Написание frontmatter
Каждый SKILL.md должен начинаться с YAML frontmatter.
Распознаются только эти поля:
name(обязательно)description(обязательно)license(опционально)compatibility(опционально)metadata(опционально, карта строка-строка)
Неизвестные поля frontmatter игнорируются.
Валидация имён
name должно:
- Быть от 1 до 64 символов
- Быть строчным буквенно-цифровым с разделителями в виде одного дефиса
- Не начинаться и не заканчиваться на
- - Не содержать последовательные
-- - Совпадать с именем директории, содержащей
SKILL.md
Эквивалентный regex:
^[a-z0-9]+(-[a-z0-9]+)*$
Следуйте правилам длины
description должно быть от 1 до 1024 символов.
Делайте его достаточно специфичным, чтобы агент мог правильно выбрать.
Используйте пример
Создайте .dropstone/skills/git-release/SKILL.md вот так:
---
name: git-release
description: Create consistent releases and changelogs
license: MIT
compatibility: dropstone
metadata:
audience: maintainers
workflow: github
---
## What I do
- Draft release notes from merged PRs
- Propose a version bump
- Provide a copy-pasteable `gh release create` command
## When to use me
Use this when you are preparing a tagged release.
Ask clarifying questions if the target versioning scheme is unclear.
Распознавание описания инструмента
Dropstone перечисляет доступные навыки в описании инструмента skill.
Каждая запись включает имя навыка и описание:
<available_skills>
<skill>
<name>git-release</name>
<description>Create consistent releases and changelogs</description>
</skill>
</available_skills>
Агент загружает навык, вызывая инструмент:
skill({ name: "git-release" })
Настройка разрешений
Контролируйте, какие навыки могут использовать агенты, используя разрешения на основе шаблонов в dropstone.json:
{
"permission": {
"skill": {
"*": "allow",
"pr-review": "allow",
"internal-*": "deny",
"experimental-*": "ask"
}
}
}
| Разрешение | Поведение |
|---|---|
allow | Навык загружается немедленно |
deny | Навык скрыт от агента, доступ отклонён |
ask | Пользователю предлагается одобрение перед загрузкой |
Шаблоны поддерживают подстановочные знаки: internal-* соответствует internal-docs, internal-tools и т. д.
Переопределение для каждого агента
Дайте конкретным агентам другие разрешения, чем глобальные значения по умолчанию.
Для пользовательских агентов (в frontmatter агента):
---
permission:
skill:
"documents-*": "allow"
---
Для встроенных агентов (в dropstone.json):
{
"agent": {
"plan": {
"permission": {
"skill": {
"internal-*": "allow"
}
}
}
}
}
Отключение инструмента skill
Полностью отключите навыки для агентов, которые их не должны использовать:
Для пользовательских агентов:
---
tools:
skill: false
---
Для встроенных агентов:
{
"agent": {
"plan": {
"tools": {
"skill": false
}
}
}
}
Когда отключено, раздел <available_skills> полностью опускается.
Устранение неполадок при загрузке
Если навык не отображается:
- Проверьте, что
SKILL.mdнаписано заглавными буквами - Убедитесь, что frontmatter включает
nameиdescription - Убедитесь, что имена навыков уникальны во всех местоположениях
- Проверьте разрешения: навыки с
denyскрыты от агентов