Hermes Agent skills authoring — как создать SKILL.md для повторяемых задач
Hermes Agent skills authoring — как создать SKILL.md для повторяемых задач
Skills в Hermes Agent позволяют превратить разовый успешный опыт в многократно используемую процедуру. Если ваш агент регулярно решает однотипные задачи — публикует статьи, деплоит код, настраивает серверы — правильно оформленный SKILL.md сократит время выполнения на 60–80% и убережёт от повторения ошибок. В этой статье разберём структуру навыка, правила фронтматтера, пошаговое создание с нуля и лучшие практики, проверенные в продакшене.
Зачем создавать skills и когда они indispensable
Без skills Hermes решает задачу каждый раз с чистого листа: ищет инструменты, вспоминает подход, тратит лишние токены. Skill фиксирует удачную стратегию: какие инструменты включать, в каком порядке вызывать, какие проверки делать обязательно. Это особенно важно для бизнес-команд, где несколько сотрудников используют одного агента: skill гарантирует, что junior-разработчик и senior-инженер получат одинаковый качественный результат.
Создавайте skill, если задача:
- повторяется минимум 3 раза в месяц;
- содержит нетривиальную последовательность шагов (более 5 действий);
- критична к ошибкам — например, деплой в продакшен или публикация контента;
- требует специфических знаний о вашей инфраструктуре, которых нет в публичных источниках.
Примеры задач, идеальных для skills: настройка cron-заданий, публикация SEO-статей, развёртывание Docker-контейнеров, резервное копирование баз данных, аудит безопасности сервера.
Структура SKILL.md: фронтматтер и тело
Каждый skill — это файл SKILL.md в отдельной папке внутри ~/.hermes/skills/. Файл состоит из YAML-фронтматтера и markdown-тела с инструкциями.
Обязательные поля фронтматтера:
name— уникальный идентификатор, lowercase, дефисы вместо пробелов (например,wordpress-seo-publish).description— триггер для агента, когда использовать этот skill. Максимум 1024 символа. Пишите в императиве: "Используй при публикации SEO-статей в WordPress через REST API".
Рекомендуемые поля:
version— SemVer (1.0.0), чтобы отслеживать изменения.platforms— список ОС:[linux, macos, windows].metadata.hermes.tags— теги для поиска в каталоге.metadata.hermes.category— категория:devops,marketing,automation.
Тело навыка обычно включает разделы:
- When to Use — дублирует и уточняет условия из description.
- Procedure — пошаговая инструкция с нумерацией.
- Common Pitfalls — ошибки, которые совершают 90% пользователей.
- Verification Checklist — как убедиться, что всё сработало.
Пример минимального skill:
---
name: ghost-publish-checklist
description: Используй перед публикацией статьи в Ghost CMS. Проверяет SEO, обложку, внутренние ссылки.
version: 1.0.0
metadata:
hermes:
tags: [ghost, seo, publishing]
category: content
---
# Публикация в Ghost CMS
## When to Use
- Перед публикацией любой SEO-статьи на aigenthub.ru
- При обновлении существующего поста
## Procedure
1. Проверь уникальность slug через Ghost Admin API.
2. Убедись, что обложка — 16:9, без текста, <500 KB.
3. Проверь 3–5 внутренних ссылок на релевантные статьи.
4. Запусти preflight-скрипт: валидация слов, H2, ссылок.
5. Опубликуй в статусе published.
## Common Pitfalls
- Забыть проверить дубли slug — приведёт к 500 ошибке.
- Загрузить квадратную обложку — сломает карточки в ленте.
- Пропустить внутреннюю перелинковку — потеряешь SEO-вес.
## Verification Checklist
- [ ] Публичная страница отдаёт HTTP 200.
- [ ] Title присутствует в HTML.
- [ ] Feature image загрузилась и отображается корректно.
Пошаговый гайд: создание навыка с нуля
Разберём создание skill на реальном примере — автоматизация публикации отчётов из Google Sheets в Telegram-канал.
Шаг 1. Определите scope. Чётко ограничьте границы: "Каждое утро в 9:00 отправлять сводку заказов из Google Sheets в Telegram-канал @sales_daily". Не смешивайте несколько задач в одном skill — принцип единственной ответственности работает и здесь.
Шаг 2. Создайте структуру папок.
mkdir -p ~/.hermes/skills/daily-sales-report/{scripts,templates,references}
touch ~/.hermes/skills/daily-sales-report/SKILL.md
Шаг 3. Напишите фронтматтер. Укажите name, description, version. Description — самое важное: именно по нему Hermes решает, загружать ли skill в сессию. Пишите конкретно: не "работа с таблицами", а "ежедневная отправка sales-отчёта из Google Sheets в Telegram".
Шаг 4. Опишите процедуру. Разбейте на атомарные шаги. Каждый шаг — одно действие агента: вызов инструмента, проверка результата, переход к следующему. Если шаг содержит "и", разбейте на два.
Шаг 5. Добавьте скрипты и шаблоны. Сложную логику выносите в scripts/, форматы вывода — в templates/. Например, templates/daily_report.md содержит шаблон сообщения с плейсхолдерами {{orders_count}} и {{revenue}}.
Шаг 6. Протестируйте в изолированной сессии. Запустите Hermes с явной загрузкой skill: hermes -s daily-sales-report. Проверьте, что агент следует инструкциям, не отклоняется от процедуры и корректно обрабатывает ошибки.
Шаг 7. Зафиксируйте версию и добавьте в git. Skills — код. Храните их в репозитории, используйте pull requests для изменений и тегируйте стабильные версии.
Как обновлять и версионировать skills
Semantic Versioning для skills работает так же, как для библиотек:
- MAJOR (X.0.0) — ломающие изменения: удаление шагов, изменение API, новые обязательные зависимости. Агенты со старой версией skill могут сломаться.
- MINOR (x.Y.0) — новые функции без поломки старого: дополнительный шаг проверки, новый опциональный параметр.
- PATCH (x.y.Z) — исправления ошибок: уточнение формулировок, фикс битой ссылки, обновление примера кода.
Практический workflow:
# Создаём ветку для обновления
git checkout -b skill/daily-sales-report-v1.1
# Редактируем SKILL.md: добавляем шаг проверки rate limit Telegram
# Обновляем version: 1.0.0 → 1.1.0
# Добавляем changelog в конец файла:
## Changelog
### 1.1.0 (2026-06-05)
- Добавлена проверка rate limit Telegram перед отправкой
- Обновлён шаблон отчёта: добавлено поле average_check
git add .
git commit -m "feat: add telegram rate limit check to daily-sales-report"
git push origin skill/daily-sales-report-v1.1
# → Code review → merge → тег v1.1.0
Для критичных бизнес-процессов используйте три окружения: production/ (стабильные версии), staging/ (тестовые обновления), experimental/ (R&D). Переключение окружений — через symlink или hermes -s path/to/skill.
Частые ошибки и как их избежать
Ошибка 1. Размытое description. "Используй для работы с серверами" — слишком общо. Hermes загрузит skill при любом упоминании сервера, даже когда задача про DNS, а не про деплой. Решение: конкретизируйте триггер. "Используй при деплое Python-приложений через Docker Compose на Ubuntu 22.04".
Ошибка 2. Пропуск verification checklist. Без чеклиста агент считает задачу выполненной после последнего шага, даже если результат некорректен. Решение: всегда добавляйте 3–5 проверяемых пунктов. Не "убедись, что всё хорошо", а "публичная страница отдаёт HTTP 200 и содержит title".
Ошибка 3. Жёстко закодированные пути и credentials. Skill с /Users/ivan/project или встроенным API-ключом сломается на любом другом компьютере. Решение: используйте переменные окружения и get_hermes_home() для путей. Секреты храните в ~/.hermes/.env, в skill оставляйте только имена переменных.
Ошибка 4. Монолитный skill на 500+ строк. Перегруженный файл сложно поддерживать и медленнее загружается в контекст. Решение: разбивайте на под-skills или выносите детали в references/. Оптимальный размер — 8–15 тысяч символов.
Чеклист публикации навыка
- Фронтматтер начинается с
---и содержит поляnameиdescription. - Description не превышает 1024 символа и описывает конкретный триггер.
- Размер SKILL.md не более 100 000 символов (желательно 8–15K).
- Тело содержит разделы: When to Use, Procedure, Common Pitfalls, Verification Checklist.
- Все пути и credentials вынесены в переменные окружения.
- Скрипты и шаблоны размещены в
scripts/иtemplates/. - Протестировано в изолированной сессии
hermes -s <skill-name>. - Версия обновлена по SemVer, changelog актуален.
Где хранить skills: локально, в команде или в публичном каталоге
Для личного использования достаточно папки ~/.hermes/skills/ на вашей машине. Регулярно делайте бэкап: skills содержат накопленный опыт, и их потеря равнозначна потере документации.
Для команд из 2–5 человек создайте приватный Git-репозиторий и настройте symlink из ~/.hermes/skills/ в клон репозитория. Так все разработчики работают с актуальной версией skills, а изменения проходят через code review. Не забудьте добавить .env в .gitignore — никогда не коммитьте секреты.
Для компаний с 10+ сотрудниками рассмотрите внутренний skill registry — простой HTTP-сервер с каталогом skills и endpoint для скачивания. Hermes может устанавливать skills по URL, а вы централизованно управляете версиями и доступами. Это особенно удобно, если у вас несколько проектов с разными стеками: фронтенд, бэкенд, DevOps, маркетинг — у каждого команды свой набор skills.
Публичные skills публикуются через hermes skills publish. Перед публикацией убедитесь, что skill не содержит специфичных для вашей инфраструктуры данных: доменов, IP-адресов, внутренних endpoint. Хороший публичный skill решает универсальную задачу: деплой статики на nginx, настройка SSL через Certbot, генерация SEO-мета-тегов.
FAQ
Сколько skills может быть активно одновременно?
Hermes загружает skills по требованию на основе description и контекста задачи. Одновременно в контексте обычно 1–3 релевантных skill. Если у вас 20+ skills, агент автоматически отфильтрует нерелевантные по тегам и категориям из metadata. Избегайте пересечения description — иначе агент будет загружать лишние навыки и тратить токены.
Можно ли использовать skills из публичного репозитория?
Да. Hermes поддерживает установку skills из GitHub через hermes skills tap add <repo>. Однако перед использованием в продакшене проверяйте код скриптов — чужой skill получает тот же доступ к системе, что и ваш агент.
Как отключить skill для конкретной сессии?
Запустите Hermes без явной загрузки: не используйте флаг -s. Если skill загружается автоматически по description, уточните запрос, чтобы триггер не сработал, или временно переименуйте папку skill.
Что делать, если skill конфликтует с другим?
Проверьте пересечение в description. Два skills со схожими триггерами будут конкурировать. Решение: сделайте description более специфичным или объедините пересекающуюся логику в один skill с ветвлением в Procedure.
Как организовать коллективную разработку skills?
Храните skills в корпоративном Git-репозитории. Настройте CODEOWNERS для критичных навыков, обязательное code review и CI-проверку валидности фронтматтера. Используйте hermes validate SKILL.md в pre-commit hook.
Где найти примеры готовых skills?
Изучите встроенные skills Hermes в ~/.hermes/skills/ и каталог на AIgentHub. Лучший способ научиться — разобрать 3–5 официальных skills и создать свой на их основе.
Можно ли интегрировать skills с внешними API?
Да, через MCP-серверы или прямые HTTP-вызовы из скриптов в папке scripts/. Храните API-ключи в ~/.hermes/.env, а не в теле skill.
Skills — это инвестиция в скорость и качество работы с AI-агентами. Чем больше повторяемых процессов вы зафиксируете в SKILL.md, тем меньше времени будет уходить на рутину и тем больше — на стратегические задачи. Готовы автоматизировать рутину с помощью Hermes Agent? Подписывайтесь на AIgentHub — публикуем гайды, чеклисты и кейсы для бизнес-автоматизации. Задавайте вопросы в нашем Telegram-канале, поможем настроить skills под ваши задачи.