Контрольные точки и `/rollback` — ваша страховка от разрушительных операций
Credential Pools — Rotate API Keys — easy-to-understand guide based on official docs
Контрольные точки и /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 проекта никогда не затрагивается — всё хранится в этом отдельном хранилище.
Вот как это работает:
- Hermes обнаруживает, что инструменты собираются изменить файлы в вашем рабочем дереве.
- Один раз за ход разговора (на директорию) он определяет разумный корень проекта.
- Он инициализирует или переиспользует общее теневое хранилище.
- Он добавляет файлы в индекс для конкретного проекта, строит дерево и делает коммит в 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