Урок 10: Чекпоинты — кнопка «Отмена» для ИИ
Tutorial 10: Checkpoints — AI's Undo Button — easy-to-understand guide based on official docs
Урок 10: Чекпоинты — кнопка «Отмена» для ИИ
Помните то неприятное чувство, когда вы понимаете, что только что удалили что-то важное? Может, это был файл, над которым вы корпели часами, или изменение конфига, которое всё сломало. В реальном мире для файловой системы нет Ctrl+Z. Но в Hermes Agent — есть, и называется это чекпоинты.
Представьте чекпоинты как точки сохранения в видеоигре. Перед тем как ваш ИИ-агент сделает что-то рискованное — перезапишет файл или выполнит разрушительную команду — он может сделать быстрый снимок вашего проекта. Если что-то пойдёт не так, вы сможете откатиться к этому снимку одной командой. Это как кнопка «Отмена» для всего проекта.
Включаем страховку
Честно говоря: чекпоинты подключаются вручную в Hermes v2. Большинству пользователей они не нужны, а хранилище со временем разрастается. Но если вы работаете над чем-то важным — это настоящее спасение.
Включить можно двумя способами:
На сессию (только для одного чата):
hermes chat --checkpoints
Глобально (в ~/.hermes/config.yaml):
checkpoints:
enabled: true
Вот и всё. После включения Hermes автоматически делает снимки проекта перед любыми разрушительными действиями.
Что запускает создание чекпоинта?
Hermes умно подходит к созданию снимков. Он следит за:
- Операциями с файлами — например,
write_fileиpatch - Разрушительными командами в терминале — например,
rm,mv,sed -i,truncate, а такжеgit resetилиgit clean
Самое приятное: создаётся не более одного чекпоинта на директорию за ход, так что длинные сессии не завалят вас сотнями снимков.
Откат: слэш-команды
Когда вы в чат-сессии, /rollback — ваш лучший друг:
| Команда | Что делает |
|---|---|
/rollback |
Показывает все чекпоинты со статистикой изменений |
/rollback <N> |
Восстанавливает чекпоинт N, сохраняя ваши ручные правки |
/rollback <N> --all |
Полное восстановление — перезаписывает и ваши ручные правки |
/rollback diff <N> |
Показывает различия между чекпоинтом N и текущим состоянием |
/rollback <N> <file> |
Восстанавливает только один файл из чекпоинта N |
Стандартный /rollback <N> работает умно — он сохраняет все ваши ручные изменения, отменяя только то, что сделал агент. Если нужна полная очистка — используйте --all.
Управление хранилищем из терминала
Вне чата у вас есть CLI-команды для просмотра и управления чекпоинтами:
hermes checkpoints # Показать размер, проекты, разбивку
hermes checkpoints status # То же самое
hermes checkpoints list # Алиас для status
hermes checkpoints prune # Очистка осиротевших и устаревших данных
hermes checkpoints clear # Удалить всё (спросит подтверждение)
hermes checkpoints clear-legacy # Удалить старые архивы миграции v1
Как это работает под капотом
Вы можете спросить: «А не повлияет ли это на мой настоящий git-репозиторий?» Нет. Hermes хранит отдельное «теневое хранилище» в ~/.hermes/checkpoints/store/. Ваш настоящий .git в проекте никогда не затрагивается.
Все проекты используют одно общее хранилище, и поскольку git использует контентно-адресуемое хранение, файлы, встречающиеся в нескольких проектах, сохраняются только один раз. На удивление эффективно.
Настройка параметров
Вы можете контролировать, сколько места занимают чекпоинты:
checkpoints:
enabled: true
max_snapshots: 20 # Максимум чекпоинтов на проект
max_total_size_mb: 500 # Жёсткий лимит общего размера хранилища
max_file_size_mb: 10 # Пропускать файлы больше этого размера
auto_prune: true # Автоочистка старых записей
retention_days: 7 # Хранить записи 7 дней
min_interval_hours: 24 # Очистка не чаще раза в день
Автоочистка работает умно — она убирает старые записи при запуске, но никогда не удаляет «осиротевшие» записи (проекты, чьи папки не найдены). Всё потому, что отсутствующая папка может означать, что внешний диск просто ещё не подключён. Для очистки осиротевших записей нужно запускать hermes checkpoints prune вручную.
Кнопка «Отмена» для вашего проекта
Чекпоинты дают вам уверенность позволить ИИ-агенту работать свободно, зная, что вы всегда можете отмотать время назад. Рефакторите ли вы код, экспериментируете с конфигами или просто хотите спокойствия — их стоит включить.
Попробуйте в следующей сессии с hermes chat --checkpoints. Возможно, откат вам никогда не понадобится — но если понадобится, вы будете рады, что он есть.
📖 Официальная документация
Эта статья основана на официальной документации Hermes Agent :Официальные документы › user-guide/checkpoints-and-rollback