Checkpoint dan `/rollback` — Jaring Pengaman Anda untuk Operasi Berisiko
Credential Pools — Rotate API Keys — easy-to-understand guide based on official docs
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 file —
write_filedanpatch - Perintah terminal destruktif —
rm,rmdir,cp,install,mv,sed -i,truncate,dd,shred, pengalihan output (>), dangit 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:
- Hermes mendeteksi saat alat akan memodifikasi file di working tree Anda.
- Sekali per giliran percakapan (per direktori), ia menentukan akar proyek yang wajar.
- Ia menginisialisasi atau menggunakan kembali shadow store bersama.
- 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