🤖HermesBlog
Hermes Feature Guides · Часть 308/9/2026

Контрольные точки и `/rollback` — ваша страховка от разрушительных операций

Credential Pools — Rotate API Keys — easy-to-understand guide based on official docs

hermes-feature-30-credential-pools

Контрольные точки и /rollback — ваша страховка от разрушительных операций

Замечали, как ИИ-агент выполняет команду вроде rm -rf или перезаписывает файл, а вы думаете: «Очень надеюсь, что он знает, что делает»? С Hermes Agent v2 у вас теперь есть полноценная страховка — контрольные точки — которые могут сделать снимок вашего проекта перед рискованными операциями и восстановить его одной командой.

Самое приятное? Это полностью опционально. Большинство пользователей никогда не трогают /rollback, и поскольку shadow-store хранилище может расти со временем, по умолчанию эта функция отключена. Но когда она вам нужна — это настоящее спасение.

Включение контрольных точек

Вы можете включить контрольные точки для конкретной сессии простым флагом:

hermes chat --checkpoints

Или включить их глобально в ~/.hermes/config.yaml:

checkpoints:
  enabled: true

Вот и всё. После включения Hermes автоматически создаёт снимок вашего проекта перед любым разрушительным действием.

Что вызывает создание контрольной точки

Hermes автоматически создаёт контрольную точку перед:

  • Файловыми инструментамиwrite_file и patch
  • Разрушительными терминальными командамиrm, rmdir, cp, install, mv, sed -i, truncate, dd, shred, перенаправлением вывода (>), а также git reset/clean/checkout

Агент создаёт не более одной контрольной точки на директорию за ход, так что длительные сессии не засоряют хранилище снимками и не раздувают его.

Как это работает под капотом

Магия происходит через внутренний Checkpoint Manager, который поддерживает единый общий теневой git-репозиторий в ~/.hermes/checkpoints/store/. Ваш настоящий .git проекта никогда не затрагивается — всё хранится в этом отдельном хранилище.

Вот как это работает:

  1. Hermes обнаруживает, что инструменты собираются изменить файлы в вашем рабочем дереве.
  2. Один раз за ход разговора (на директорию) он определяет разумный корень проекта.
  3. Он инициализирует или переиспользует общее теневое хранилище.
  4. Он добавляет файлы в индекс для конкретного проекта, строит дерево и делает коммит в ref конкретного проекта (refs/hermes/<project-hash>).

Поскольку все проекты используют одно хранилище, объектная база данных git с контентной адресацией дедуплицирует данные между проектами и ходами — так что вы не тратите место на идентичное содержимое.

Использование /rollback в сессии

Когда вы находитесь в сессии с включёнными контрольными точками, вам доступны несколько слэш-команд:

Команда Описание
/rollback Показать список всех контрольных точек со статистикой изменений
/rollback <N> Восстановить состояние до контрольной точки N, сохранив ваши ручные правки (также отменяет последний ход чата)
/rollback <N> --all Полное восстановление — перезаписывает и ваши ручные правки
/rollback diff <N> Предпросмотр разницы между контрольной точкой N и текущим состоянием
/rollback <N> <file> Восстановить один файл из контрольной точки N

Когда вы выполняете /rollback, вы увидите отформатированный список:

📸 Контрольные точки для /path/to/project:

  1. 4270a8c  2026-03-16 04:36  before patch  (1 файл, +1/-0)
  2. eaf4c1f  2026-03-16 04:35  before write_file
  3. b3f9d2e  2026-03-16 04:34  before terminal: sed -i s/old/new/ config.py  (1 файл, +1/-1)

Управление хранилищем из командной строки

Вне сессии вы можете просматривать и управлять хранилищем контрольных точек с помощью CLI-команд:

Команда Описание
hermes checkpoints Показать общий размер, количество проектов, разбивку по проектам
hermes checkpoints status То же, что и просто checkpoints
hermes checkpoints list Алиас для status
hermes checkpoints prune Принудительная очистка: удалить осиротевшие/устаревшие записи, GC, применить лимит размера
hermes checkpoints clear Полностью удалить базу контрольных точек (с запросом подтверждения)
hermes checkpoints clear-legacy Удалить только архивы legacy-* из миграции v1

Параметры конфигурации

Вы можете тонко настроить поведение контрольных точек в ~/.hermes/config.yaml:

checkpoints:
  enabled: false              # главный переключатель (по умолчанию: false — опционально)
  max_snapshots: 20           # максимум контрольных точек на проект
  max_total_size_mb: 500      # жёсткий лимит общего размера хранилища
  max_file_size_mb: 10        # пропускать любые файлы больше этого размера
  auto_prune: true            # очистка при запуске (включена по умолчанию)
  retention_days: 7           # удалять записи старше этого срока
  min_interval_hours: 24      # минимальный интервал между автоматическими очистками

Важное замечание: автоматическая очистка никогда не удаляет «осиротевшие» записи (где рабочая директория не найдена). Это потому, что отсутствующая рабочая директория при запуске может означать удалённый проект — или не смонтированный внешний том или сетевой ресурс, который ещё не подключён. Очистка осиротевших записей происходит только через явную команду hermes checkpoints prune, которая сначала запрашивает подтверждение.

Чтобы отключить всё:

checkpoints:
  enabled: false
  auto_prune: false

Когда enabled: false, Checkpoint Manager ничего не делает и никогда не выполняет git-операции. Когда auto_prune: false, хранилище растёт, пока вы вручную не выполните hermes checkpoints prune.

Подводя итоги

Контрольные точки дают вам уверенность позволить Hermes работать свободно, зная, что вы всегда можете откатиться к известному рабочему состоянию. Экспериментируете ли вы с рефакторингом, тестируете рискованные команды или просто хотите спокойствия — команда /rollback прикроет вашу спину.

Попробуйте в следующей сессии — возможно, она станет неотъемлемой частью вашего рабочего процесса.

📖 Официальная документация

Эта статья основана на официальной документации Hermes Agent :Официальные документы › user-guide/features/credential-pools