🤖HermesBlog
Hermes Feature Guides · Parte 308/9/2026

Checkpoint dan `/rollback` — Jaring Pengaman Anda untuk Operasi Berisiko

Credential Pools — Rotate API Keys — easy-to-understand guide based on official docs

hermes-feature-30-credential-pools

Checkpoint dan /rollback — Jaring Pengaman Anda untuk Operasi Berisiko

Pernahkah Anda melihat agen AI menjalankan perintah seperti rm -rf atau menimpa file sambil berpikir, “Semoga saja dia tahu apa yang dilakukannya”? Dengan Hermes Agent v2, kini Anda memiliki jaring pengaman yang layak — checkpoint — yang dapat memotret proyek Anda sebelum operasi berisiko dan memulihkannya hanya dengan satu perintah.

Bagian terbaiknya? Fitur ini sepenuhnya opsional. Mayoritas pengguna tidak pernah menyentuh /rollback, dan karena shadow-store dapat membesar seiring waktu, fitur ini nonaktif secara bawaan. Tetapi saat Anda membutuhkannya, fitur ini benar-benar penyelamat.

Mengaktifkan Checkpoint

Anda dapat mengaktifkan checkpoint per-sesi dengan sebuah flag sederhana:

hermes chat --checkpoints

Atau aktifkan secara global di ~/.hermes/config.yaml:

checkpoints:
  enabled: true

Sesederhana itu. Setelah diaktifkan, Hermes secara otomatis memotret proyek Anda sebelum hal-hal destruktif terjadi.

Apa yang Memicu Checkpoint

Hermes mengambil checkpoint secara otomatis sebelum:

  • Alat filewrite_file dan patch
  • Perintah terminal destruktifrm, rmdir, cp, install, mv, sed -i, truncate, dd, shred, pengalihan output (>), dan git reset/clean/checkout

Agen membuat maksimal satu checkpoint per direktori per giliran, sehingga sesi yang berjalan lama tidak membanjiri penyimpanan dengan snapshot dan membengkakkan ruang.

Cara Kerjanya di Balik Layar

Keajaiban ini terjadi melalui Checkpoint Manager internal yang mengelola satu repositori git bayangan bersama di ~/.hermes/checkpoints/store/. .git proyek asli Anda tidak pernah disentuh — semuanya tersimpan di store terpisah ini.

Berikut alurnya:

  1. Hermes mendeteksi saat alat akan memodifikasi file di working tree Anda.
  2. Sekali per giliran percakapan (per direktori), ia menentukan akar proyek yang wajar.
  3. Ia menginisialisasi atau menggunakan kembali shadow store bersama.
  4. Ia men-stage file ke indeks per-proyek, membangun tree, dan melakukan commit ke ref per-proyek (refs/hermes/<project-hash>).

Karena setiap proyek berbagi store yang sama, database objek content-addressable git melakukan deduplikasi lintas proyek dan lintas giliran — sehingga Anda tidak membuang ruang untuk konten yang identik.

Menggunakan /rollback Dalam Sesi

Setelah Anda berada dalam sesi dengan checkpoint aktif, Anda memiliki beberapa perintah slash yang tersedia:

Perintah Deskripsi
/rollback Menampilkan semua checkpoint dengan statistik perubahan
/rollback <N> Memulihkan ke checkpoint N, mempertahankan edit manual Anda (juga membatalkan giliran chat terakhir)
/rollback <N> --all Pemulihan penuh — menimpa edit manual Anda juga
/rollback diff <N> Pratinjau perbedaan antara checkpoint N dan kondisi saat ini
/rollback <N> <file> Memulihkan satu file dari checkpoint N

Saat Anda menjalankan /rollback, Anda akan melihat daftar terformat seperti ini:

📸 Checkpoint untuk /path/to/project:

  1. 4270a8c  2026-03-16 04:36  sebelum patch  (1 file, +1/-0)
  2. eaf4c1f  2026-03-16 04:35  sebelum write_file
  3. b3f9d2e  2026-03-16 04:34  sebelum terminal: sed -i s/old/new/ config.py  (1 file, +1/-1)

Mengelola Store dari Shell

Di luar sesi, Anda dapat memeriksa dan mengelola checkpoint store dengan perintah CLI:

Perintah Deskripsi
hermes checkpoints Menampilkan ukuran total, jumlah proyek, rincian per-proyek
hermes checkpoints status Sama dengan checkpoints tanpa argumen
hermes checkpoints list Alias untuk status
hermes checkpoints prune Memaksa pembersihan: hapus orphan/stale, GC, terapkan batas ukuran
hermes checkpoints clear Menghapus seluruh basis checkpoint (meminta konfirmasi terlebih dahulu)
hermes checkpoints clear-legacy Hanya menghapus arsip legacy-* dari migrasi v1

Opsi Konfigurasi

Anda dapat menyetel perilaku checkpoint secara halus di ~/.hermes/config.yaml:

checkpoints:
  enabled: false              # saklar utama (bawaan: false — opsional)
  max_snapshots: 20           # maksimum checkpoint per proyek
  max_total_size_mb: 500      # batas keras total ukuran store
  max_file_size_mb: 10        # lewati file tunggal yang lebih besar dari ini
  auto_prune: true            # pembersihan saat startup (aktif secara bawaan)
  retention_days: 7           # hapus entri yang lebih lama dari ini
  min_interval_hours: 24      # waktu minimum antara pembersihan otomatis

Satu catatan penting: pembersihan otomatis tidak pernah menghapus entri “orphan” (di mana direktori kerja tidak ditemukan). Ini karena workdir yang hilang saat startup bisa berarti proyek yang dihapus — atau volume eksternal atau network share yang belum ter-mount. Pembersihan orphan hanya terjadi melalui perintah eksplisit hermes checkpoints prune, yang meminta konfirmasi terlebih dahulu.

Untuk menonaktifkan semuanya:

checkpoints:
  enabled: false
  auto_prune: false

Saat enabled: false, Checkpoint Manager menjadi no-op dan tidak pernah mencoba operasi git. Saat auto_prune: false, store akan terus membesar hingga Anda menjalankan hermes checkpoints prune secara manual.

Penutup

Checkpoint memberi Anda kepercayaan diri untuk membiarkan Hermes bekerja dengan bebas, karena Anda tahu selalu bisa kembali ke kondisi yang sudah terbukti baik. Baik Anda sedang bereksperimen dengan refactoring, menguji perintah berisiko, atau sekadar ingin ketenangan pikiran, perintah /rollback siap membantu Anda.

Cobalah di sesi berikutnya — Anda mungkin akan menemukan bahwa fitur ini menjadi bagian penting dari alur kerja Anda.

📖 Dokumentasi resmi

この記事は Hermes Agent のDokumentasi resmiに基づいています:Dokumentasi resmi › user-guide/features/credential-pools