Checkpoint và `/rollback` — Tấm Lưới An Toàn Cho Các Thao Tác Nguy Hiểm
Credential Pools — Rotate API Keys — easy-to-understand guide based on official docs
Checkpoint và /rollback — Tấm Lưới An Toàn Cho Các Thao Tác Nguy Hiểm
Bạn đã bao giờ xem một AI agent chạy lệnh như rm -rf hoặc ghi đè lên một file và nghĩ rằng, “Mình thật sự hy vọng nó biết mình đang làm gì”? Với Hermes Agent v2, giờ đây bạn đã có một tấm lưới an toàn thực thụ — checkpoint — có thể chụp nhanh trạng thái dự án của bạn trước các thao tác rủi ro và khôi phục lại chỉ bằng một lệnh duy nhất.
Phần tuyệt nhất? Nó hoàn toàn tùy chọn (opt-in). Hầu hết người dùng không bao giờ chạm tới /rollback, và vì shadow-store có thể phình to theo thời gian, mặc định là tắt. Nhưng khi bạn cần, nó thực sự là cứu cánh.
Bật Checkpoint
Bạn có thể bật checkpoint cho từng phiên làm việc bằng một cờ đơn giản:
hermes chat --checkpoints
Hoặc bật toàn cục trong ~/.hermes/config.yaml:
checkpoints:
enabled: true
Chỉ vậy thôi. Khi đã bật, Hermes tự động chụp nhanh dự án của bạn trước khi bất kỳ điều gì nguy hiểm xảy ra.
Điều Gì Kích Hoạt Checkpoint
Hermes tự động tạo checkpoint trước khi:
- Các công cụ file —
write_filevàpatch - Các lệnh terminal nguy hiểm —
rm,rmdir,cp,install,mv,sed -i,truncate,dd,shred, chuyển hướng đầu ra (>), vàgit reset/clean/checkout
Agent tạo tối đa một checkpoint cho mỗi thư mục trong mỗi lượt, vì vậy các phiên làm việc kéo dài sẽ không spam snapshot và làm phình bộ nhớ của bạn.
Cách Hoạt Động Bên Trong
Phép màu xảy ra thông qua một Checkpoint Manager nội bộ, nó duy trì một kho git ẩn dùng chung tại ~/.hermes/checkpoints/store/. File .git thật của dự án bạn không bao giờ bị đụng tới — mọi thứ đều nằm trong kho lưu trữ riêng biệt này.
Đây là quy trình:
- Hermes phát hiện khi các công cụ sắp sửa đổi file trong cây thư mục làm việc của bạn.
- Mỗi lượt hội thoại (cho mỗi thư mục), nó xác định một thư mục gốc dự án hợp lý.
- Nó khởi tạo hoặc tái sử dụng shadow store dùng chung.
- Nó đưa các file vào một index riêng cho từng dự án, xây dựng một cây thư mục, và commit vào một ref riêng cho từng dự án (
refs/hermes/<project-hash>).
Vì mọi dự án dùng chung một kho lưu trữ, cơ sở dữ liệu đối tượng có địa chỉ theo nội dung của git sẽ khử trùng lặp giữa các dự án và giữa các lượt — vì vậy bạn không lãng phí dung lượng cho những nội dung giống hệt nhau.
Sử Dụng /rollback Trong Phiên Làm Việc
Khi bạn đang trong một phiên làm việc có bật checkpoint, bạn có một số lệnh gạch chéo (slash commands) để sử dụng:
| Lệnh | Mô tả |
|---|---|
/rollback |
Liệt kê tất cả các checkpoint kèm thống kê thay đổi |
/rollback <N> |
Khôi phục về checkpoint N, giữ lại các chỉnh sửa tay của bạn (đồng thời hoàn tác lượt chat cuối) |
/rollback <N> --all |
Khôi phục hoàn toàn — ghi đè cả các chỉnh sửa tay của bạn |
/rollback diff <N> |
Xem trước sự khác biệt giữa checkpoint N và trạng thái hiện tại |
/rollback <N> <file> |
Khôi phục một file duy nhất từ checkpoint N |
Khi bạn chạy /rollback, bạn sẽ thấy một danh sách được định dạng như thế này:
📸 Checkpoints cho /path/to/project:
1. 4270a8c 2026-03-16 04:36 trước patch (1 file, +1/-0)
2. eaf4c1f 2026-03-16 04:35 trước write_file
3. b3f9d2e 2026-03-16 04:34 trước terminal: sed -i s/old/new/ config.py (1 file, +1/-1)
Quản Lý Kho Lưu Trữ Từ Shell
Bên ngoài phiên làm việc, bạn có thể kiểm tra và quản lý kho checkpoint bằng các lệnh CLI:
| Lệnh | Mô tả |
|---|---|
hermes checkpoints |
Hiển thị tổng dung lượng, số dự án, phân tích chi tiết theo từng dự án |
hermes checkpoints status |
Tương tự như checkpoints |
hermes checkpoints list |
Bí danh cho status |
hermes checkpoints prune |
Buộc quét dọn: xóa các mục mồ côi/lỗi thời, dọn rác (GC), áp dụng giới hạn dung lượng |
hermes checkpoints clear |
Xóa sạch toàn bộ cơ sở checkpoint (có hỏi trước) |
hermes checkpoints clear-legacy |
Chỉ xóa các kho lưu trữ legacy-* từ quá trình di chuyển v1 |
Các Tùy Chọn Cấu Hình
Bạn có thể tinh chỉnh hành vi checkpoint trong ~/.hermes/config.yaml:
checkpoints:
enabled: false # công tắc chính (mặc định: false — tùy chọn)
max_snapshots: 20 # số checkpoint tối đa cho mỗi dự án
max_total_size_mb: 500 # giới hạn cứng cho tổng dung lượng kho lưu trữ
max_file_size_mb: 10 # bỏ qua mọi file đơn lẻ lớn hơn mức này
auto_prune: true # quét dọn khi khởi động (bật theo mặc định)
retention_days: 7 # xóa các mục cũ hơn khoảng thời gian này
min_interval_hours: 24 # thời gian tối thiểu giữa các lần tự động quét dọn
Một lưu ý quan trọng: quá trình quét dọn tự động không bao giờ xóa các mục “mồ côi” (nơi không tìm thấy thư mục làm việc). Đó là vì một workdir bị thiếu khi khởi động có thể đồng nghĩa với việc dự án đã bị xóa — hoặc một ổ đĩa ngoài hoặc network share chưa được gắn kết. Việc dọn dẹp mồ côi chỉ xảy ra thông qua lệnh tường minh hermes checkpoints prune, lệnh này sẽ yêu cầu xác nhận trước.
Để vô hiệu hóa mọi thứ:
checkpoints:
enabled: false
auto_prune: false
Khi enabled: false, Checkpoint Manager không làm gì cả và không bao giờ cố gắng thực hiện các thao tác git. Khi auto_prune: false, kho lưu trữ sẽ phình to cho đến khi bạn tự tay chạy hermes checkpoints prune.
Tổng Kết
Checkpoint mang lại cho bạn sự tự tin để để Hermes làm việc một cách tự do, biết rằng bạn luôn có thể khôi phục về một trạng thái ổn định đã biết. Dù bạn đang thử nghiệm với việc tái cấu trúc mã nguồn, kiểm tra các lệnh rủi ro, hay chỉ đơn giản là muốn yên tâm, lệnh /rollback luôn ở bên bạn.
Hãy thử nó trong phiên làm việc tiếp theo của bạn — bạn có thể sẽ thấy nó trở thành một phần thiết yếu trong quy trình làm việc của mình.
📖 Tài liệu chính thức
この記事は Hermes Agent のTài liệu chính thứcに基づいています:Tài liệu chính thức › user-guide/features/credential-pools