Hermes Agent skills authoring — как создать SKILL.md для повторяемых задач

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.

Тело навыка обычно включает разделы:

  1. When to Use — дублирует и уточняет условия из description.
  2. Procedure — пошаговая инструкция с нумерацией.
  3. Common Pitfalls — ошибки, которые совершают 90% пользователей.
  4. 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 тысяч символов.

Чеклист публикации навыка

  1. Фронтматтер начинается с --- и содержит поля name и description.
  2. Description не превышает 1024 символа и описывает конкретный триггер.
  3. Размер SKILL.md не более 100 000 символов (желательно 8–15K).
  4. Тело содержит разделы: When to Use, Procedure, Common Pitfalls, Verification Checklist.
  5. Все пути и credentials вынесены в переменные окружения.
  6. Скрипты и шаблоны размещены в scripts/ и templates/.
  7. Протестировано в изолированной сессии hermes -s <skill-name>.
  8. Версия обновлена по 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 под ваши задачи.