🤖HermesBlog
Hermes 官方教程 · 第10篇2026/8/9· Easy Understand Hermes Agent

检查点(Checkpoints)——AI 的后悔药

Hermes Agent 官方教程第十篇:检查点。让 AI 的每一步修改都可回滚。

检查点:AI 的游戏存档

检查点(Checkpoints)——AI 的后悔药

你有没有过这种时刻:AI 帮你改代码,一顿操作猛如虎,结果把好好的项目改崩了?想反悔,却发现 Ctrl+Z 根本不够用。别慌,Hermes Agent 的**检查点(Checkpoints)**功能就是你的后悔药——在 AI 动手搞破坏之前,自动给你的项目拍一张“快照”,随时一键还原。

默认关闭,按需开启

好消息是,这个功能在 v2 里是默认关闭的。因为影子仓库会占点磁盘空间,不是所有人都需要。想用的话,两种方式开启:

临时开启(当前会话):

hermes chat --checkpoints

永久开启(改配置):

# ~/.hermes/config.yaml
checkpoints:
  enabled: true

什么时候会自动拍快照?

Hermes 会在这些危险操作之前自动存档:

  • 文件工具write_filepatch
  • 破坏性终端命令rmrmdircpinstallmvsed -itruncateddshred、输出重定向(>)、git reset / clean / checkout

而且每个目录每轮对话最多只存一次,不会疯狂刷快照。

后悔药怎么吃?/rollback 命令速查

在会话里直接敲:

命令 作用
/rollback 列出所有检查点及变更统计
/rollback <N> 恢复到第 N 个检查点(保留你手动改的内容,同时撤销上一轮对话)
/rollback <N> --all 完全恢复(连你手改的也覆盖)
/rollback diff <N> 预览第 N 个检查点和当前状态的差异
/rollback <N> <file> 只恢复某个文件

影子仓库:不动你的 .git

检查点背后是一个共享影子仓库,存在 ~/.hermes/checkpoints/store/。你的真实项目 .git 永远不会被碰。所有项目共用同一个存储,Git 的对象寻址机制会自动去重,省空间。

命令行管理工具

在会话外也能管理检查点:

hermes checkpoints          # 查看总大小、项目数、明细
hermes checkpoints status   # 同上,等价写法
hermes checkpoints list     # status 的别名
hermes checkpoints prune    # 手动清理孤儿/过期数据
hermes checkpoints clear    # 清空所有检查点(会先问你)
hermes checkpoints clear-legacy  # 只删 v1 迁移留下的 legacy-* 归档

配置项一览

checkpoints:
  enabled: false            # 总开关(默认关)
  max_snapshots: 20         # 每个项目最多保留 20 个快照
  max_total_size_mb: 500    # 存储上限 500MB
  max_file_size_mb: 10      # 超过 10MB 的文件不存档
  auto_prune: true          # 自动清理过期数据
  retention_days: 7         # 保留 7 天
  min_interval_hours: 24    # 至少隔 24 小时才扫一次

自动清理现在是后台跑的:CLI 启动后会在辅助线程里扫一遍,网关则在它的日常维护节奏里做。它不会卡住你的输入或启动——毕竟大仓库上跑一次 git gc 可能要几十秒。另外它只删过期的项目条目,不会动那些“工作目录找不到”的孤儿条目(可能是项目被删了,也可能是外接盘/网络共享/VPN 还没挂上,说不准),孤儿清理只走 hermes checkpoints prune,而且会先问你。

容器后端要注意

如果你用的是容器终端后端(dockersingularitymodaldaytonavercel_sandbox 或容器插件),文件路径属于沙箱而不是宿主机,Hermes 就不会给这些路径拍快照、也不记 agent 写入台账。这时 /rollback 会告诉你原因:宿主机上已有的检查点还能列出来,但 diff 和恢复会被拒绝——CLI、消息网关、TUI、桌面端都一样,/rollback list 照常能用,/rollback diff/rollback <N> 会被挡下,/diff session 也是同样的理由。本地和 SSH 后端不受影响。

看一眼快照长啥样

在会话里敲 /rollback,会看到类似这样的输出:

📸 Checkpoints for /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)

每个快照都标明了触发原因变更统计,一目了然。

小结

检查点就是给 AI 操作加的一道安全网。虽然默认关着,但如果你经常让 AI 改代码、跑危险命令,强烈建议开起来。毕竟——后悔药这东西,可以不用,但不能没有

📖 官方文档

本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/checkpoints-and-rollback