チェックポイントと `/rollback` — プロジェクトのセーフティネット
Built-in Plugins — Ready-to-Use Enhancements — easy-to-understand guide based on official docs (updated 2026-08-09)
チェックポイントと /rollback — プロジェクトのセーフティネット
AIエージェントが変更を加えるのを見て、「待って、そんなつもりじゃなかったのに!」と思ったことはありませんか? 誰にでもありますよね。そこで、Hermes Agent に組み込みのセーフティネットが登場します。それがチェックポイントです。ビデオゲームのセーブポイントのように考えてください。危険な操作の前に取得されるプロジェクトのスナップショットで、ワンコマンドで復元できます。
チェックポイントとは?
チェックポイントは、破壊的な操作の前に取得されるプロジェクトの自動スナップショットです。エージェントがファイルを削除したり、コードを上書きしたり、危険なターミナルコマンドを実行しようとする場合、まず現在の状態を保存します。後で、これらのスナップショットのいずれかにロールバックできます。
一番いいところは? 実際のプロジェクトの .git 履歴には一切触れないことです。Hermes は ~/.hermes/checkpoints/store/ にある共有シャドウストアを使用します。これは、プロジェクト間で整理整頓され、重複排除された独立した git リポジトリです。
はじめに:チェックポイントを有効にする
チェックポイントは v2 時点でオプトインです。ほとんどのユーザーは必要とせず、ストレージは時間の経過とともに増える可能性があるため、デフォルトはオフです。
単一セッションで有効にする:
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
スパムの心配はありません。エージェントはターンごとにディレクトリあたり最大1つのチェックポイントしか作成しないため、長時間のセッションでもクリーンな状態を保てます。
セッション内での /rollback の使用
チェックポイントを有効にすると、チャット内で強力なスラッシュコマンドをすぐに使えます:
| コマンド | 機能 |
|---|---|
/rollback |
変更統計付きの全チェックポイントを一覧表示 |
/rollback <N> |
チェックポイント N に復元(手動編集は保持) |
/rollback <N> --all |
完全復元(手動編集も上書き) |
/rollback diff <N> |
チェックポイント N と現在の差分をプレビュー |
/rollback <N> <file> |
チェックポイント N から単一ファイルを復元 |
チェックポイントの一覧表示はこんな感じです:
📸 /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)
/rollback <N> チェックポイント N に復元(手動編集は保持)
/rollback <N> --all 完全復元(手動編集も上書き)
/rollback diff <N> チェックポイント N 以降の変更をプレビュー
/rollback <N> <file> チェックポイント N から単一ファイルを復元
シェルからストアを管理する
セッション外では、CLI を使用してチェックポイントストアを検査・管理できます:
hermes checkpoints # サイズ、プロジェクト数、内訳を表示
hermes checkpoints status # 上記と同じ
hermes checkpoints list # status のエイリアス
hermes checkpoints prune # 強制クリーンアップ:孤立データ、古いデータ、サイズ上限
hermes checkpoints clear # すべて削除(確認あり)
hermes checkpoints clear-legacy # 古い v1 移行アーカイブを削除
出力例:
Checkpoint base: /home/you/.hermes/checkpoints
Total size: 142.3 MB
store/ 138.1 MB
legacy-* 4.2 MB
Projects: 12
WORKDIR COMMITS LAST TOUCH STATE
/home/you/code/hermes-agent 20 2h ago live
/home/you/code/experiments/rl-runner 8 1d ago live
/home/you/code/old-prototype 3 9d ago orphan
設定オプション
~/.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
すべて無効にしたい場合:
checkpoints:
enabled: false
auto_prune: false
内部の仕組み
Hermes がファイルを変更しようとするツールを検出すると、次の処理を行います:
- そのファイルのプロジェクトルートを特定
- 共有シャドウストアを初期化または再利用
- 変更をステージングし、ツリーを構築して、プロジェクトごとの ref(
refs/hermes/<project-hash>)にコミット
これらの ref がチェックポイント履歴を形成し、/rollback でいつでも検査・復元できます。
最後に
チェックポイントは、エージェントにコードを任せるときの安心感を与えてくれます。実験中、リファクタリング中、あるいは単にセーフティネットが欲しい場合でも、/rollback があなたを守ります。有効にして、忘れて、いつでも元に戻せることを知って安心しましょう。
ハッピーコーディング — そして、セーブポイントには理由があることをお忘れなく!
📖 公式ドキュメント
この記事は Hermes Agent の公式ドキュメントに基づいています:公式ドキュメント › user-guide/features/plugins