KeyBrainавтоматизация бизнеса с ИИ Канал «Не нанимай»
ИНСТРУКЦИЯ

Скиллы (навыки) Hermes Agent: как написать свой и проверить, что он работает

Навыки (скиллы) Hermes Agent: что это, откуда брать, как написать свой SKILL.md и проверить, что агент им пользуется.

Скиллы Hermes Agent: папка навыка и четыре способа проверить, что он работает

Навык в Hermes Agent - это папка с файлом SKILL.md. В нём записано, когда браться за дело и что делать по шагам. Агент держит перед глазами только названия и описания навыков, а целиком открывает тот, что подходит к задаче.

Я опиралась на документацию Hermes Agent и на журнал своего Гермеса. Команды из документации в день написания я на сервере не запускала. Установка Гермеса разобрана в отдельной статье.

Что такое навык Hermes Agent и чем он отличается от памяти?

Коротко: память хранит короткие факты, нужные всегда, а навык хранит длинную инструкцию, которая нужна только в своём деле. Документация Hermes делит их так же: память для «small durable facts that should always be in context», навыки для «longer procedures that should load only when relevant». Про память подробнее в обзоре Hermes Agent.

Навыки лежат в папке ~/.hermes/skills/. Там хранятся встроенные навыки, навыки из хаба и те, что написал агент. Формат совместим с открытым стандартом agentskills.io.

Гермес подгружает навыки по ступеням. Сначала агент получает список из названий и описаний, по документации около трёх тысяч токенов. Полный SKILL.md он открывает, когда задача подходит, а файлы из подпапок читает позже.

Агент видит корешки навыков на полке и открывает только одну нужную папку

Каждый установленный навык сам становится командой. Напишите /имя-навыка и свою просьбу, и навык загрузится. Если написать только имя, агент спросит, что вам нужно.

Откуда взять навык: встроенные, из хаба или свой?

Коротко: встроенные уже лежат в папке, готовые чужие ставятся командой, свои пишете вы или сам агент.

Встроенные копируются при установке, и каждое обновление Гермеса добавляет новые. Чужие навыки ищутся и ставятся из терминала:

hermes skills search <слово>
hermes skills inspect <идентификатор>
hermes skills install <идентификатор>

Команда inspect показывает навык до установки, а install ставит его после проверки встроенным сканером безопасности. Доверие у источников разное. Встроенные и официальные навыки Гермеса доверенные, для репозиториев вроде openai/skills и anthropics/skills действует более мягкая политика, остальные относятся к категории community. Неопасное предупреждение сканера для навыка из community можно обойти флагом --force. Вердикт «опасно» этот флаг не отменяет.

Навык - это процедура, которой агент будет следовать, поэтому чужой навык прочитайте сами до запуска.

Если Гермеса у вас ещё нет, путь от сервера до бота в Telegram собран в курсе «Hermes Agent: свой ИИ-помощник. Пошаговая настройка», там четыре урока со скриншотами на каждом шаге.

Как устроен файл SKILL.md?

Коротко: обязательны имя и описание. Стандарт agentskills.io требует имя до 64 знаков из строчных букв a-z, цифр и дефисов, причём оно должно совпадать с названием папки. Описание не длиннее 1024 знаков и говорит, что делает навык и когда его брать.

Описание важнее, чем кажется: агент выбирает навык именно по нему. Стандарт приводит плохой пример, Helps with PDFs, и хороший, где перечислено, что навык извлекает, заполняет и склеивает.

Папка навыка: обязательный SKILL.md и четыре необязательные подпапки с назначением

Структура папки навыка по документации Hermes Agent.

Рядом с SKILL.md могут лежать необязательные подпапки, например references/ со справочными файлами, templates/ с шаблонами выдачи, scripts/ со скриптами и assets/ со вспомогательными файлами. Они читаются по запросу. Линтер Hermes предупреждает, если тело SKILL.md длиннее примерно 24 тысяч знаков: файл целиком остаётся в контексте до конца сессии.

В шаблоне из документации тело состоит из четырёх разделов: когда использовать, процедура, ловушки и проверка. Самый частый сценарий ставьте первым.

Ключи и пароли в навык не кладут. Для них есть поле required_environment_variables: Гермес спросит значение при загрузке навыка в терминале и не покажет его модели.

Как написать свой первый навык?

Коротко: сначала решите задачу вместе с агентом в обычном чате, затем попросите оформить получившийся порядок действий командой /learn и прочитайте результат до первого запуска.

  1. Выберите дело, которое вы уже делали с агентом руками. Советую сначала повторить его два-три раза и убедиться, что результат вас устраивает.
  2. Напишите /learn и опишите, что оформить. Документация даёт такой пример: «/learn how I just deployed the staging server». Агент соберёт материал сам и сохранит навык инструментом skill_manage.
  3. Откройте файл и прочитайте. Он лежит в ~/.hermes/skills/. В веб-панели есть страница Skills с кнопкой «Learn a skill».
  4. Допишите «Ловушки» и «Проверку» сами. Агент знает, как задача решается, но не знает, что вам важно не нарушить. В свои навыки я добавляю раздел «Границы»: чего навык не делает никогда.
  5. Одобрите запись, если включена очередь. При skills.write_approval: true правки ждут вашего решения: /skills pending, /skills diff <id>, /skills approve <id>.

Вручную то же выглядит так. Пример условный, я придумала его для статьи и не запускала. Поля и английские заголовки разделов взяты из шаблона документации, «Границы» мои:

---
name: nedelnyy-otchet
description: Недельный отчёт по заметкам из папки report/
version: 1.0.0
---

# Недельный отчёт

## When to Use
- Просьба «собери отчёт за неделю».

## Границы
- Ничего не отправляешь. Цифры берёшь только из заметок, иначе пишешь «[нужен факт]».

## Procedure
1. Прочитай заметки за 7 дней из report/.
2. Собери файл report/otchet.md: сделано, не сделано, дальше.
3. Сверь: у каждой цифры есть источник в заметках.

## Pitfalls
- Причину не додумывай, пиши «причина не записана».

## Verification
Файл лежит в report/, цифр без источника нет.

Положите папку с таким файлом в ~/.hermes/skills/ и выполните /reload-skills: Гермес заново просканирует папку.

Путь навыка: задача руками, команда /learn, чтение файла, очередь утверждения, пробный запуск, расписание

Порядок шагов на схеме мой, команды из документации.

Как проверить, что агент использует навык?

Коротко: проверять нужно результат. Слову агента «готово» верить нельзя. Хватает четырёх шагов, и каждый ловит свою поломку.

Навык есть в списке. Команда hermes skills list показывает установленные навыки. Нет в списке, значит дело в папке или в имени.

Он вызывается по имени. Напишите /nedelnyy-otchet собери отчёт за неделю. Если команды нет, навык не подхватился. Выполните /reload-skills, чтобы Гермес заново просканировал папку.

Он срабатывает без имени. Попросите так, как просили бы, не зная про навык. Документация предлагает пробный запуск из терминала: hermes chat --toolsets skills -q "Use the X skill to do Y". Не сработало, правьте описание, потому что по нему агент и выбирает навык. Это мой вывод из документации, я его на сервере не проверяла.

Результат проверяется кодом. Последний шаг моих навыков такой: запустить скрипт проверки и не писать «сохранила», пока он не ответил «всё на месте». Скрипт проверяет то, что можно подтвердить без веры на слово: есть ли файл и не вышел ли объём за заданные границы. В «Ловушках» навыка статей у меня записано, что однажды дешёвая модель трижды сочинила мне опыт, которого не было. Это стоило круга правок.

Пример неполной проверки. Однажды я обновила навык картинок к постам и дала ему заказ без заметки о стиле. За три минуты он выдал две картинки в новом стиле и семь подписей на картинках без ошибок. Потом я уточнила два места в навыке и повторно его не проверяла. Значит, эта правка проверена только чтением.

Как подключить навык к расписанию?

Коротко: к заданию по расписанию навык подключается флагом --skill и загружается перед запуском, как будто вы вызвали /имя в чате.

hermes cron create "every 1h" "Сводка новых записей" --skill blogwatcher

Для каждого задания Гермес открывает новую сессию, поэтому промпт должен содержать всё, чего не дают навыки.

Перед запуском Гермес проверяет готовность навыков. Если не хватает переменной, команды или файла доступа, задание получает статус blocked_config: приходит одно оповещение, модель не вызывается, токены не тратятся.

Я подключила навык сценариев рилсов к заданию «Черновики постов», и hermes cron list показывает у него Skills: scenariy-rilsa. В моей настройке есть ограничение: в задании по расписанию нельзя запускать execute_code, python -c и heredoc, можно использовать только готовые файлы скриптов. Поэтому проверки лежат в scripts/ самих навыков.

Как не дать агенту испортить навык?

Коротко: включите очередь утверждения и закрепите навыки, которые нельзя терять. По умолчанию агент меняет и удаляет навыки свободно, и документация говорит об этом прямо.

Параметр skills.write_approval по умолчанию выключен. При значении true любая запись навыка, в том числе фоновая правка после сессии, ждёт вашего решения в ~/.hermes/pending/skills/. Я включила очередь вскоре после запуска Гермеса.

Команда hermes curator pin <имя> закрепляет навык: инструмент skill_manage отказывается его удалять, а куратор не архивирует. Куратор, фоновый помощник уборки, помечает давно не использованные навыки устаревшими через 14 дней и переносит в архив через 30 дней. Это значения по умолчанию, и относятся они только к навыкам, которые создал сам агент. Навыки, написанные руками или оформленные через /learn, куратор не трогает. Из архива навык можно восстановить, автоматически куратор ничего не удаляет.

Я закрепила главный навык блога. В одной из прошлых версий мне показалось, что удаление очередь не останавливает. По текущей документации delete при включённой очереди тоже ждёт решения, повторно я это не проверяла.

Сколько навыков держать и можно ли взять их из Claude Code?

Коротко: держите те, что используете, но лишние навыки занимают немного места в запросе. Индекс навыков растёт с числом включённых, размер запроса показывает hermes prompt-size.

Мой замер вскоре после запуска Гермеса: включено 76 навыков, реально работали пять. Индекс навыков занимал 7 842 байта - около десятой части от 77,5 КБ, которые тогда приходились на системный промпт (30 641 байт) и схемы инструментов (46 828 байт). Выключить 71 навык освободило бы около 8% этих 77,5 КБ. Я отказалась: выигрыш мал, а выключенное агент сам не вернёт, потому что команды настройки работают только из живого терминала.

Навыки из Claude Code переносятся командой hermes import-agent claude-code: она копирует каталоги навыков из ~/.claude в папку Гермеса, сначала показывает предпросмотр и не импортирует ключи. Один мой навык, по сценариям рилсов, живёт сразу у Клода на Mac и у Гермеса на сервере, а исходная версия хранится в одном месте. Как другая программа прочитает поля metadata.hermes, я не проверяла.

Команды и поведение Hermes Agent сверены с документацией на момент написания статьи; проект быстро меняется, перед настройкой сверьтесь с актуальной документацией.

Источники

Поставить Гермеса по шагам можно по курсу «Hermes Agent: свой ИИ-помощник», на странице есть программа всех четырёх уроков.

Свой Гермес на сервере: курс из четырёх уроков

Сервер, модель, бот в Telegram, папка знаний о вашем деле, доска задач и команда помощников. Скриншоты на каждом шаге.

Посмотреть программу курса