AI и агенты6 мин чтения

Скилл hermes-field-notes в каталоге плагинов Hermes Agent: грабли и патчи под контролем

Скилл hermes-field-notes вошёл в официальный каталог плагинов Hermes Agent. Он помнит найденные грабли и после обновлений проверяет, живы ли правки ядра.

Скилл hermes-field-notes в каталоге плагинов Hermes Agent: грабли и патчи под контролем
Содержание

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 даёт агенту одно место для обоих видов знания и делает так, что половину про патчи можно проверить машиной, а не памятью.

Как работает hermes-field-notes: сначала поиск по заметкам, потом отладка и запись; правки ядра проверяются доктором после каждого обновления; часовой cron без модели обновляет закреплённый дашборд

Заметки: сначала поиск, потом отладка

Когда что-то ломается — ошибка шлюза, молчащий крон, поломка после обновления, — агент сначала ищет текст ошибки командой 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 и как проверять чужие перед установкой, я собрал в отдельном обзоре.

Источники

  1. Hermes Agent: страница hermes-field-notes в каталоге плагинов
  2. NousResearch/hermes-agent: PR #134068 — добавление hermes-field-notes в каталог
  3. itpartypattaya/hermes-field-notes: репозиторий и README
Свои рядомСпросите своих — в чате отвечают быстрее, чем поискОсновной чат IT-тусовки Паттайи: айтишники, диджитал-специалисты и предприниматели, которые уже прошли через то же самое. С июля 2023 года.Вступить в чат

Читайте также по теме