🤖HermesBlog
Hermes Official Tutorials · Часть 308/9/2026

Why You Should Care About Checkpoints

Tutorial 30: Checkpoints & Rollback — easy-to-understand guide based on official docs

Hermes tutorial

Почему стоит обратить внимание на чекпоинты

Представьте: вы просите 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