Why You Should Care About Checkpoints
Tutorial 30: Checkpoints & Rollback — easy-to-understand guide based on official docs
Почему стоит обратить внимание на чекпоинты
Представьте: вы просите Hermes отрефакторить большой кусок кода, и на полпути понимаете, что новый подход — катастрофа. Без чекпоинтов вам пришлось бы вручную откатывать изменения или копаться в истории git. С чекпоинтами достаточно ввести /rollback и выбрать точку восстановления. Это как машина времени для вашего проекта.
Самое приятное? Чекпоинты полностью опциональны. По умолчанию они выключены в v2, так что если вы ими не пользуетесь, то даже не заметите, что они существуют. Но когда они нужны — они настоящие спасатели.
Включение чекпоинтов
Есть два способа включить эту страховку:
Для текущей сессии (только этот чат):
hermes chat --checkpoints
Глобально (для всех сессий) — отредактируйте ~/.hermes/config.yaml:
checkpoints:
enabled: true
Что вызывает создание чекпоинта?
Hermes автоматически делает снимок вашего проекта перед любой разрушающей операцией, включая:
- Файловые инструменты —
write_fileиpatch - Опасные терминальные команды —
rm,rmdir,cp,mv,sed -i,truncate,dd,shred, перенаправление вывода (>), а такжеgit reset/clean/checkout
Чтобы не создавать мусор, Hermes создаёт не более одного чекпоинта на директорию за один ход. Так что длинная сессия не заполнит ваш диск сотнями снимков.
Магия под капотом
Вот в чём хитрость: Hermes использует единое общее скрытое git-хранилище, расположенное в ~/.hermes/checkpoints/store/. Папка .git вашего реального проекта никогда не затрагивается. Все проекты используют это общее хранилище, а контентно-адресуемая система git автоматически дедуплицирует файлы между проектами. Так что если в двух проектах есть похожие файлы, они сохраняются только один раз.
Использование /rollback в сессии
Как только чекпоинты включены, вы можете использовать эти слэш-команды во время чата:
| Команда | Что делает |
|---|---|
/rollback |
Показывает список всех чекпоинтов со статистикой изменений |
/rollback <N> |
Восстанавливает чекпоинт N, сохраняя ваши ручные правки (также отменяет последний ход чата) |
/rollback <N> --all |
Полное восстановление — перезаписывает и ваши ручные правки тоже |
/rollback diff <N> |
Показывает разницу между чекпоинтом N и текущим состоянием |
/rollback <N> <file> |
Восстанавливает только один файл из чекпоинта N |
Когда вы вводите /rollback, вы увидите что-то вроде:
📸 Checkpoints for /path/to/project:
1. 4270a8c 2026-03-16 04:36 before patch (1 file, +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 file, +1/-1)
Управление хранилищем из оболочки
Вне сессии вы можете просматривать и очищать хранилище чекпоинтов:
hermes checkpoints # Показать общий размер, количество проектов, разбивку
hermes checkpoints status # То же самое
hermes checkpoints list # Алиас для status
hermes checkpoints prune # Принудительная очистка: удалить осиротевшие, GC, ограничить размер
hermes checkpoints clear # Полностью удалить базу чекпоинтов (с запросом подтверждения)
hermes checkpoints clear-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 # очистка не чаще одного раза за этот интервал
Умная деталь: автоочистка никогда не удаляет осиротевшие записи (проекты, рабочая директория которых больше не существует). Это потому, что отсутствующая директория может означать просто отключённый внешний диск или ещё не подключённый VPN. Очистка осиротевших записей происходит только через явную команду hermes checkpoints prune, которая сначала запрашивает подтверждение.
Когда стоит включить?
Если вы занимаетесь экспериментальной работой, крупными рефакторингами или осваиваете Hermes — включайте чекпоинты. Накладные расходы на хранилище небольшие (благодаря дедупликации), а спокойствие — огромное. Если вы делаете простые безопасные задачи — оставьте выключенным и экономьте место на диске.
Чекпоинты — одна из тех функций, о которых вы забудете — до того самого момента, когда они отчаянно понадобятся. И когда этот момент настанет, вы будете рады, что они есть.
📖 Официальная документация
Эта статья основана на официальной документации Hermes Agent :Официальные документы › user-guide/checkpoints-and-rollback