Куратор

Куратор — это фоновый процесс обслуживания навыков, созданных агентом. Он отслеживает, как часто каждый навык просматривается, используется и изменяется, перемещает давно не используемые навыки через состояния active → stale → archived и периодически запускает краткий обзор с помощью вспомогательной модели, предлагая консолидацию или исправление отклонений.

Он существует для того, чтобы навыки, созданные через цикл самосовершенствования, не накапливались бесконечно. Каждый раз, когда агент решает новую задачу и сохраняет навык, этот навык попадает в ~/.hermes/skills/. Без обслуживания вы получите десятки узких почти-дубликатов, которые засоряют каталог и расходуют токены.

Куратор никогда не трогает встроенные навыки (поставляемые с репозиторием) или навыки, установленные из хаба (с agentskills.io). Он проверяет только навыки, созданные самим агентом. Он также никогда не удаляет автоматически — худший исход — архивация в ~/.hermes/skills/.archive/, откуда всё можно восстановить.

Отслеживается в issue #7816.

Как это работает

Куратор запускается не по расписанию cron, а по проверке бездействия. При запуске CLI-сессии и по регулярному тику в потоке cron-трекера шлюза Hermes проверяет:

  1. Прошло ли достаточно времени с момента последнего запуска куратора (interval_hours, по умолчанию 7 дней), и

  2. Был ли агент бездействующим достаточно долго (min_idle_hours, по умолчанию 2 часа).

Если оба условия верны, запускается фоновый форк AIAgent — тот же шаблон, который используется для напоминаний о самосовершенствовании памяти/навыков. Форк работает в собственном кэше промптов и никогда не затрагивает активную беседу.

info Первый запуск На новой установке (или при первом запуске после обновления hermes update на установке, не имевшей куратора) куратор не запускается сразу. Первое наблюдение устанавливает last_run_at на «сейчас» и откладывает первый реальный проход на один полный interval_hours. Это даёт вам полный интервал, чтобы просмотреть свою библиотеку навыков, закрепить важное или полностью отказаться от куратора до того, как он что-либо тронет.

Если вы хотите увидеть, что куратор сделал бы до реального запуска, выполните hermes curator run --dry-run — он создаст тот же отчёт об обзоре без изменения библиотеки.

Проход состоит из двух этапов:

  1. Автоматические переходы (детерминированные, без LLM). Навыки, не использовавшиеся в течение stale_after_days (30), становятся stale; навыки, не использовавшиеся в течение archive_after_days (90), перемещаются в ~/.hermes/skills/.archive/.

  2. Обзор LLM (один проход вспомогательной модели, max_iterations=8). Форкнутый агент просматривает созданные агентом навыки, может читать любой из них с помощью skill_view и принимает решение по каждому навыку: оставить, исправить (через skill_manage), объединить перекрывающиеся или архивировать с помощью инструмента terminal.

Закреплённые навыки недоступны ни для автоматических переходов куратора, ни для собственного инструмента skill_manage агента. См. Закрепление навыка ниже.

Конфигурация

Все настройки находятся в config.yaml в разделе curator: (не в .env — это не секрет). Значения по умолчанию:

curator:
  enabled: true
  interval_hours: 168          # 7 дней
  min_idle_hours: 2
  stale_after_days: 30
  archive_after_days: 90

Чтобы полностью отключить, установите curator.enabled: false.

Запуск обзора на более дешёвой вспомогательной модели

Обзорный проход LLM куратора — это обычная вспомогательная задача — auxiliary.curator — наряду с Vision, Compression, Session Search и др. «Auto» означает «использовать мою основную чат-модель»; переопределите слот, чтобы закрепить конкретного провайдера и модель для обзорного прохода.

Проще всего — hermes model:

hermes model                   # → «Вспомогательные модели — маршрутизация побочных задач»
                               # → выберите «Куратор» → выберите провайдера → выберите модель

Тот же выбор доступен в веб-панели на вкладке Models.

Непосредственно в config.yaml (аналогично):

auxiliary:
  curator:
    provider: openrouter
    model: google/gemini-3-flash-preview
    timeout: 600               # щедрый — обзоры могут занимать несколько минут

Оставление provider: auto (по умолчанию) направляет обзорный проход через ту же модель, что и ваш основной чат, соответствуя поведению всех остальных вспомогательных задач.

note Устаревшая конфигурация В более ранних релизах использовался отдельный блок curator.auxiliary.{provider,model}. Этот путь всё ещё работает, но выводит строку предупреждения об устаревании — пожалуйста, перейдите на auxiliary.curator выше, чтобы куратор использовал те же механизмы (hermes model, вкладка Models в панели, base_url, api_key, timeout, extra_body), что и все остальные вспомогательные задачи.

CLI

hermes curator status         # последний запуск, счётчики, список закреплённых, топ-5 LRU
hermes curator run            # запустить обзор сейчас (блокируется до завершения прохода LLM)
hermes curator run --background  # запустил и забыл: запустить проход LLM в фоновом потоке
hermes curator run --dry-run  # только предпросмотр — отчёт без каких-либо изменений
hermes curator backup         # сделать ручной снимок ~/.hermes/skills/
hermes curator rollback       # восстановить из новейшего снимка
hermes curator rollback --list     # показать доступные снимки
hermes curator rollback --id <ts>  # восстановить конкретный снимок
hermes curator rollback -y         # пропустить запрос подтверждения
hermes curator pause          # остановить запуски до возобновления
hermes curator resume
hermes curator pin <skill>    # никогда не выполнять авто-переход для этого навыка
hermes curator unpin <skill>
hermes curator restore <skill>  # переместить архивированный навык обратно в активные

Резервное копирование и откат

Перед каждым реальным проходом куратора Hermes делает tar.gz-снимок ~/.hermes/skills/ в ~/.hermes/skills/.curator_backups/<utc-iso>/skills.tar.gz. Если проход архивировал или объединил то, что вы не хотели трогать, вы можете отменить весь запуск одной командой:

hermes curator rollback        # восстановить новейший снимок (с подтверждением)
hermes curator rollback -y     # пропустить запрос
hermes curator rollback --list # показать все снимки с причиной и размером

Сам откат обратим: перед заменой дерева навыков Hermes делает ещё один снимок с тегом pre-rollback to <target-id>, так что ошибочный откат можно отменить, выполнив откат вперёд к нему с помощью --id.

Вы также можете делать ручные снимки в любое время с помощью hermes curator backup --reason "before-refactor". Строка --reason попадает в manifest.json снимка и отображается в --list.

Снимки сокращаются до curator.backup.keep (по умолчанию 5), чтобы ограничить использование диска:

curator:
  backup:
    enabled: true
    keep: 5

Установите curator.backup.enabled: false, чтобы отключить автоматическое создание снимков. Ручная команда hermes curator backup всё ещё работает, когда резервное копирование отключено, только если вы сначала установите enabled: true — флаг симметрично управляет обоими путями, так что невозможно случайно пропустить предварительный снимок при изменяющих проходах.

hermes curator status также показывает пять наименее недавно использованных навыков — быстрый способ увидеть, что, вероятно, станет устаревшим следующим.

Те же подкоманды доступны как слэш-команда /curator внутри запущенной сессии (CLI или платформы шлюза).

Что означает «созданный агентом»

Навык считается созданным агентом, если его имя не находится в:

Всё остальное в ~/.hermes/skills/ является допустимой целью для куратора. Сюда входят:

warning Ваши навыки, написанные вручную, не отличаются от созданных агентом Происхождение здесь бинарно (встроенные/хаб против всего остального). Куратор не может отличить навык, написанный вами вручную и используемый для личных рабочих процессов, от навыка, сохранённого циклом самосовершенствования в середине сессии. Оба попадают в категорию «созданные агентом».

Перед первым реальным проходом (через 7 дней после установки по умолчанию) уделите время:

  1. Выполните hermes curator run --dry-run, чтобы увидеть, что именно куратор предложит.

  2. Используйте hermes curator pin <name>, чтобы защитить то, что вы не хотите трогать.

  3. Или установите curator.enabled: false в config.yaml, если предпочитаете управлять библиотекой самостоятельно.

Архивы всегда можно восстановить через hermes curator restore <name>, но проще закрепить заранее, чем потом разбираться с консолидацией.

Если вы хотите защитить конкретный навык от любых изменений — например, написанный вручную навык, на который вы полагаетесь — используйте hermes curator pin <name>. См. следующий раздел.

Закрепление навыка

Закрепление защищает навык от удаления — как от автоматических проходов архивации куратора, так и от вызова инструмента skill_manage(action="delete") агента. Как только навык закреплён:

Закрепление и открепление выполняется так:

hermes curator pin <skill>
hermes curator unpin <skill>

Флаг сохраняется как "pinned": true в записи навыка в ~/.hermes/skills/.usage.json, так что он сохраняется между сессиями.

Закреплять можно только созданные агентом навыки — встроенные и установленные из хаба навыки изначально не подвергаются мутациям куратора, и hermes curator pin откажется с объяснительным сообщением, если вы попробуете.

Если вы хотите более сильную гарантию, чем «без удаления» — например, полностью заморозить содержимое навыка, пока агент всё ещё может его читать — отредактируйте ~/.hermes/skills/<name>/SKILL.md напрямую в вашем редакторе. Закрепление защищает от удаления через инструменты, а не от вашего собственного доступа к файловой системе.

Телеметрия использования

Куратор ведёт сопутствующий файл ~/.hermes/skills/.usage.json с одной записью на навык:

{
  "my-skill": {
    "use_count": 12,
    "view_count": 34,
    "last_used_at": "2026-04-24T18:12:03Z",
    "last_viewed_at": "2026-04-23T09:44:17Z",
    "patch_count": 3,
    "last_patched_at": "2026-04-20T22:01:55Z",
    "created_at": "2026-03-01T14:20:00Z",
    "state": "active",
    "pinned": false,
    "archived_at": null
  }
}

Счётчики увеличиваются, когда:

Встроенные навыки и навыки, установленные из хаба, явно исключены из записи телеметрии.

Отчёты по запускам

Каждый запуск куратора записывает каталог с отметкой времени в ~/.hermes/logs/curator/:

~/.hermes/logs/curator/
└── 20260429-111512/
    ├── run.json      # машиночитаемый: полная точность, статистика, вывод LLM
    └── REPORT.md     # человекочитаемая сводка

REPORT.md — это быстрый способ увидеть, что сделал конкретный запуск — какие навыки перешли, что сказал рецензент LLM, какие навыки были исправлены. Удобно для аудита без необходимости искать в agent.log.

Восстановление архивированного навыка

Если куратор архивировал то, что вам всё ещё нужно:

hermes curator restore <skill-name>

Это перемещает навык обратно из ~/.hermes/skills/.archive/ в активное дерево и сбрасывает его состояние на active. Восстановление отказывается, если встроенный навык или навык из хаба был установлен с тем же именем (будет затенять вышестоящий).

Отключение для конкретного окружения

Куратор включён по умолчанию. Чтобы отключить его:

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

См. также