🏠 Главная › user guide › software development hermes agent skill authoring
{/ Эта страница автоматически передается из навыков SKILL.md с помощью сайта/scripts/generate-skill-docs.py. Редактируйте исходный SKILL.md, а не эту страницу. /}
Авторские навыки агента Гермеса
Создание SKILL.md в репозитории: frontmatter, валидатор, структура.
Ниже приведено полное определение навыков, которые Hermes загружает при активации этого навыка. Это то, что агент видит в качестве инструкций, когда навыки активны.
Создание навыков Гермес-Агент (в репозиториях)
Обзор
SKILL.md может располагаться в двух точках:
Локально у пользователя:~/.hermes/skills/<возможно-категория>/<имя>/SKILL.md — личное, не публикуется. Создается через skill_manage(action='create').
В репозитории (этот навык как раз про этот случай):/home/bb/hermes-agent/skills/<категория>/<имя>/SKILL.md — фиксируется, звоня с пакетом. Используйте write_file + git add. skill_manage(action='create') НЕ работает с этим деревом.
Когда использовать
Пользователь требует добавить навык «в ветку/репозиторий/коммит»
Вы фиксируете переиспользуемый рабочий процесс, который должен поставляться с агентом Гермес.
Вы редактируете существующий навык в /home/bb/hermes-agent/skills/ (используйте patch для мелких правок, write_file для перезаписи; skill_manage все еще работает для патчей на навыках в репозитории, но не для create)
Обязательный Frontmatter
Источник источника: tools/skill_manager_tool.py::_validate_frontmatter. Жесткие требования:
Начинается с --- как первые байты (без учета официальных официальных строк).
Заканчивается на \n---\n перед телом.
Парсится как YAML-отображение.
Поле имя присутствует.
Поле description присутствует, ≤ 1024 символов (MAX_DESCRIPTION_LENGTH).
Непустое тело послезакрывающего ---.
Форма, используемая всеми навыками в навыки/разработка программного обеспечения/:
«версия» / «автор» / «лицензия» / «метаданные» НЕ проверяются валидатором, но есть у всех аналогов — пропустите их, и ваши навыки будут популярными.
Ограничения по размеру
Описание: ≤ 1024 символов (проверяется).
Полный SKILL.md: ≤ 100 000 символов (проверяется как MAX_SKILL_CONTENT_CHARS, ~36 тыс. токенов).
Аналогичные навыки в области разработки программного обеспечения/ имеют 8-14 тыс. символов. Стремитесь к этому диапазону. Если вы подключите 20k, разбейте на references/*.md и ссылайтесь на них из SKILL.md.
Структура, соответствующая аналогам
Каждый навык в репозитории примерно следует:
# <Название>
## Обзор
Один-два абзаца: что и зачем.
## Когда использовать
- Маркированные триггеры
- «Не использовать для:» контр-триггеры
## <Разделы по теме, специфичные для навыка>
- Часто используются таблицы быстрого доступа
- Блоки кода с точными командами
- Рецепты, специфичные для Hermes (тесты через scripts/run_tests.sh, пути ui-tui и т.д.)
## Типичные ошибки
Нумерованный список ошибок и их исправлений.
## Чек-лист проверки
- [ ] Список действий для проверки после выполнения
## Одношаговые рецепты (опционально)
Именованные сценарии → конкретные последовательности команд.
Не каждый раздел обязателен, но «Обзор» + «Когда использовать» + содержащее тело + ошибка — это минимум, чтобы навык ощущался как равный.
Размещение в каталогах
skills/<категория>/<имя-навыка>/SKILL.md
Категории, присутствующие в репозиториях (подтверждаются с помощью lskills/): autonomous-ai-agents, creative, data-science, devops, dogfood, email, games, github, leisure, mcp, media, mlops/*, ведение заметок, продуктивность, red-teaming, «исследования», «умный дом», «социальные сети», «разработка программного обеспечения».
Выберите ближайшую существующую величину. Не изобретайте новые категории высшего уровня без необходимости.
Рабочий процесс
Изготовьте аналоги в верхней категории:
ls skills/<категория>/
Прочитайте 2-3 файла SKILL.md, чтобы соответствовать тону и прогрессу.
Проверьте ограничения валидатора в tools/skill_manager_tool.py, если не уверены.
Напишите черновик с помощью write_file в skills/<категория>/<имя>/SKILL.md.
Проверьте локально:
python
import yaml, re, pathlib
content = pathlib.Path("skills/<категория>/<имя>/SKILL.md").read_text()
assert content.startswith("---")
m = re.search(r'\n---\s*\n', content[3:])
fm = yaml.safe_load(content[3:m.start()+3])
assert "name" in fm and "description" in fm
assert len(fm["description"]) <= 1024
assert len(content) <= 100_000
Git add + commit в активной ветке.
Примечание: загрузка навыков ТЕКУЩЕЙ кэшированной сессии — skill_view / skills_list не увидят новые навыки до новой сессии. Это ожидаемо, не ошибка.
Перекрестные ссылки на другие навыки
metadata.hermes.related_skills оба дерева (skills/ в репозиториях и ~/.hermes/skills/) во время загрузки. Вы МОЖЕТЕ ссылаться на локальный навык пользователя из навыков в репозитории, но это не будет работать для других пользователей, которые клонируют репозиторий заново. Предпочитайте ссылаться только на навыки репозитория. Если часто уровень навыков сохраняется только в ~/.hermes/skills/, рассмотрите возможность его продвижения в репозиториях.
Редактирование существующих навыков в репозиториях
Мелкое исправление (опечатка, добавленная ошибка, уточненный триггер):skill_manage(action='patch', name=..., old_string=..., new_string=...) отлично работает с навыками в репозитории.
Крупная перезапись:write_file всего SKILL.md. skill_manage(action='edit') также работает, но требует предоставления полного нового качества.
Добавление вспомогательных файлов:write_file в skills/<категория>/<имя>/references/<file>.md, templates/<file> или scripts/<file>. skill_manage(action='write_file') также работает и теперь разрешен список подкаталогов ссылок/шаблонов/скриптов/активов.
Всегда коммитьте правку — навыки в репозитории — это исходный код, а не состояние выполнения.
Типичные ошибки
Использование skill_manage(action='create') для навыков в репозитории. Он записывает в ~/.hermes/skills/, а не в дерево репозитория. Используйте write_file для создания репозиториев.
Входящий пробел перед ---. Валидатор сначала content.startswith("---"); Любая ведущая пустая строка или спецификация приводит к нужным проверкам.
Слишком общее описание. Описания принципов начинаются с «Использовать, когда...» и сосредоточьте класс триггера, а не одну задачу. «Используйте, когда отлаживаете X» > «Отладка X».
Забыли заблокировать автора/лицензию/метаданные. Недавно прошел валидатор, но есть у всех аналогов; пропуск делает навыки, похожие на незаконные.
Написание навыка, дублирующего аналог. Перед созданием lskills/<категория>/ и ввода 2-3 аналога. Предпочитайте расширение существующего навыка создания узкого собрата.
Ожидание, что текущая сессия увидит новые навыки. Не увидит. Загрузчик идей происходит при старте сессии. Проверьте в любой сессии или через skill_view, используя аналитический путь.
Ссылки на навыки, которых нет в репозиториях.related_skills: [some-user-local-skill] работает для вас, но блокируется для других клонов. Предпочитайте только ссылки внутри репозитория.
Проверка чек-листа
[ ] Файл находится в skills/<категория>/<имя>/SKILL.md (не в ~/.hermes/skills/)
[ ] Frontmatter начинается с байта 0 с ---, заканчивается на \n---\n
[ ] имя, описание, версия, автор, лицензия, metadata.hermes.{tags, linked_skills} все представлены
[ ] Имя ≤ 64 символов, строчные + дефисы
[ ] Описание ≤ 1024 символов и начинается с «Используйте, когда...»
[ ] Общий файл ≤ 100 000 символов (целей 8-15к)
[ ] Структура: # Название → ## Обзор → ## Когда → тело → ## Типичные ошибки → ## Чек-лист использовать проверки
[ ] Ссылки related_skills разрешены в репозиториях (или явно разрешены как локальные для пользователя)