hermes-field-notes — третий мой скилл в официальном каталоге плагинов Hermes Agent, после hermes-cron и hermes-dreaming. Он ведёт полевой журнал установки: записывает грабли вместе с настоящей причиной, ищет по ним, прежде чем агент начнёт чинить вслепую, и после каждого hermes update проверяет, пережили ли обновление твои правки в коде самого Hermes. Pull request 7 октября влил Teknium из команды Nous Research, и у скилла появилась страница в каталоге: категория Tools, уровень Community, версия 1.2.1, лицензия MIT.
Что теряется в каждом долгоживущем агенте
Если Hermes работает у тебя не неделю, а месяцы, в нём копятся два вида знания, которые нигде толком не записаны.
Первое — грабли. Задачи по расписанию молчали, потому что у пользователя, под которым крутится сервис, не включён linger. Двоеточие без кавычек в описании скилла — и загрузчик плагинов тихо выбрасывает скилл, ни слова не сказав. В первый раз на такое уходит час. Через месяц симптом возвращается в другом обличье, и уходит ещё час, если никто не записал, чем всё кончилось в прошлый раз.
Второе — локальные патчи. Рано или поздно ты правишь что-то прямо в ядре hermes-agent: чинишь баг, который в основной ветке ещё не исправили, или подгоняешь поведение под себя. hermes update эти правки молча стирает. Узнаёшь об этом, когда баг возвращается — иногда через несколько дней, когда уже не помнишь, что он вообще был.
hermes-field-notes даёт агенту одно место для обоих видов знания и делает так, что половину про патчи можно проверить машиной, а не памятью.

Заметки: сначала поиск, потом отладка
Когда что-то ломается — ошибка шлюза, молчащий крон, поломка после обновления, — агент сначала ищет текст ошибки командой search. Поиск идёт по твоим заметкам и по встроенному списку граблей Hermes. В нём 41 запись, каждая проверена на версии 0.21.5: какие установки задевает, симптом дословно, где в коде ядра механизм, как обойти и есть ли задача в трекере Hermes. Десять из них уже исправлены в самом Hermes и оставлены как история — чтобы на старой версии было понятно, почему всё ведёт себя странно.
Ничего не нашлось — агент отлаживает, а потом записывает находку. Заметка — обычный Markdown-файл с небольшой шапкой, оглавление INDEX.md собирается само, руками его не правят. Проверка lint ловит сломанные поля, устаревшие заметки и всё, что похоже на ключи и пароли: журнал — не место для секретов.
Среди встроенных граблей есть и история из статьи про hermes-cron, когда на сервере несколько дней подряд не выполнялась ни одна задача по расписанию. Если Hermes установлен как системный сервис, а пользователь сервиса заходит на сервер только по SSH, то после выхода из последней сессии задачам негде запускаться. Лечится одной командой с правами root — если знаешь, где искать. Теперь агент находит это по тексту ошибки за секунду.
Патчи: доктор после каждого обновления
Каждая правка ядра оформляется как заметка-патч, а рядом с ней лежит файл проверок: в каком файле ядра какие строки должны быть, для каких версий Hermes и по каким признакам понятно, что разработчики исправили это у себя. После обновления команда doctor смотрит на ядро на диске — только читает, ничего не меняет — и раскладывает патчи по статусам.
OK — все признаки на месте, делать ничего не нужно. MISSING — обновление стёрло правку, её надо вернуть. UPSTREAMED — ядро исправили у себя, патч можно отправить на пенсию. N/A — для этой версии ядра в патче нет проверок. UNKNOWN — решить не удалось, и доктор пишет почему. Отдельно он показывает файлы ядра, которые кто-то поменял в обход реестра, и заметки, проверенные на другой версии Hermes.

Тут важна честность проверки. OK означает, что нужные строки есть в файлах, а не что код точно работает. Если метка патча уцелела, а код под ней поменялся, доктор покажет UNKNOWN, а не ложный зелёный статус.
И принципиальное ограничение: скилл никогда не правит ядро сам и не запускает скрипты патчей. Он записывает, проверяет и напоминает. Вернуть стёртую правку агент предложит, но сделает это только после «да» владельца.
Чтобы было с чего начать, в комплекте лежат десять рецептов патчей с одной боевой установки: пять исправлений багов и пять настроек под себя. Например, ошибка исчерпанной квоты, которая в чате выглядит как ошибка авторизации, или пустые сообщения в Telegram из одних невидимых символов. Для каждого рецепта указано место в ядре, сама правка, что положить в файл проверок и статус у разработчиков. Это отправная точка, а не скрипт, который пропатчит всё за тебя.
Дашборд в Telegram, который не тратит токены
Последняя часть необязательная. Раз в час отрабатывает задача по расписанию в режиме no_agent — без вызова модели и без единого токена. Она гоняет доктора, сверяет твою версию ядра с последним релизом Hermes и обновляет одно закреплённое сообщение в Telegram. Сообщение редактируется на месте, лента не засоряется, а короткое оповещение приходит, только когда статус поменялся — например, обновление стёрло один из патчей.
Из заметки об исправленном баге команда issue-draft готовит черновик задачи для разработчиков Hermes, с замаскированными личными данными. Отправлять его или нет, решает человек.
Что скилл трогает и куда ходит
Заметки хранятся только у тебя на машине, в ~/.hermes/field-notes/, и никуда не загружаются. В сеть скилл ходит в двух случаях: в Telegram Bot API, если включён дашборд, и только в указанный тобой чат; и в публичный API GitHub без авторизации — пара запросов раз в 12 часов, чтобы сравнить твоё ядро с последним релизом. Второе отключается в настройках. Флаг --read-only гарантирует, что команда ничего не запишет и не выйдет в сеть. Сторонних зависимостей нет, только стандартная библиотека Python.
Как установить hermes-field-notes
Нужен Hermes Agent 0.21 или новее и Python 3.11+. Для проверки патчей ядро должно лежать на диске папкой, а чтобы видеть правки в обход реестра — быть git-чекаутом. Обычный путь — поставить как скилл, агент сам подхватит его по описанию:
hermes skills install itpartypattaya/hermes-field-notes/skills/hermes-field-notes
Или как плагин из каталога — ставится ровно та версия, которую проверяли при приёме:
hermes plugins install hermes-field-notes
hermes plugins enable hermes-field-notes
Потом один раз создать хранилище и настройки и проверить, что всё на месте:
python3 ~/.hermes/skills/hermes-field-notes/scripts/install.py
python3 ~/.hermes/skills/hermes-field-notes/scripts/install.py --check
Дашборд включается в ~/.hermes/field-notes.json — там указываются чат, ветка, язык и часовой пояс, — а задачу по расписанию ставит install_cron.py из той же папки. Сначала стоит запустить его с --dry-run и посмотреть, что он собирается сделать.
Дальше говори с агентом обычными словами: «что мы знаем про эту ошибку?», «запиши это», «патчи пережили обновление?», «покажи дашборд».
Если Hermes у тебя ещё не стоит, начни с установки и подключения к Telegram, потом — настройки после установки. Код и документация — в репозитории на GitHub. Нашёл грабли Hermes, которые касаются не только твоей установки, — присылай pull request в список граблей в том же формате. А где искать другие скиллы и плагины для Hermes и как проверять чужие перед установкой, я собрал в отдельном обзоре.




