Hermes Agent(NousResearch,105k GitHub Stars)的任务中断机制覆盖三个层次:立即终止(/stop 命令或 Ctrl+C)、文件级回滚(Checkpoint 自动快照 + /rollback 命令)、会话级接续(hermes --continue)。 核心设计原则是"fail-closed"——危险命令审批超时(默认 60 秒)后自动拒绝而非执行,最大程度保护文件系统安全。从 OpenClaw 迁移到 Hermes Agent 的用户,可通过 hermes claw migrate 一键导入配置;任务管理命令基本一致,新增 /background 后台会话和 hermes cron pause/resume 定时任务控制。
数据来源:hermes-agent.nousresearch.com/docs(User Guide: Security, Sessions, Checkpoints & Rollback, CLI Commands, Reference: Slash Commands,2026.04);openclaw.ai(2026.04)

在使用 Hermes Agent 处理长任务时,"中断"可能发生在四种完全不同的情形:
/stop 命令 或 Ctrl+C
误操作回滚 Agent 修改了错误文件,需要撤销
/rollback 命令
审批超时中断 危险命令 60 秒内未确认,自动拒绝 重新触发命令并及时确认
会话意外断开 网络中断/WSL 重启/终端关闭
hermes --continue 接续
可引用结论:Hermes Agent 的危险命令审批采用 fail-closed 机制——超时后命令被自动拒绝(而非执行),保证"不确认不执行"原则(来源:hermes-agent.nousresearch.com/docs/user-guide/security,2026.04)。
两种中断方式适用于不同场景,行为存在关键差异:
/stop CLI + 所有消息平台 终止所有后台进程;在消息平台同时中断正在运行的 Agent
Ctrl+C CLI 终端 中断当前前台进程(消息平台无效) 发送新消息(直接输入) CLI + 消息平台 中断当前任务,立即切换到新指令
# CLI 场景:三种中断方式 # 方式 1:发送新消息覆盖(最常用,任务中直接输入即生效) # 在 Hermes 会话内输入新内容 → Agent 立即中止当前任务处理新指令 # 方式 2:/stop 命令(终止所有后台进程) /stop # 方式 3:Ctrl+C(终端层面强制中断前台进程) # 按 Ctrl+C
# Telegram / Discord / Slack 场景 # ✅ 唯一有效的中断方式 /stop # 终止后台进程 + 中断正在运行的 Agent # ❌ 在消息平台无效 # Ctrl+C 只对本地终端生效,消息平台中按无反应
可引用结论:
/stop命令在 CLI 中"Kill all running background processes",在消息平台中"Kill all running background processes and interrupt the running agent"——两者行为不同,消息平台版本同时中断 Agent(来源:官方 Slash Commands Reference,2026.04)。
Hermes Agent 在执行每个 destructive 操作前自动创建文件系统快照,存储于 ~/.hermes/checkpoints/(独立 shadow git 仓库,不影响项目 .git)。 零配置开箱即用,当无文件变更时开销为零。
以下操作发生前,Hermes 自动保存当前文件状态:
- 文件写入:
write_file、patch操作 - 破坏性终端命令:
rm、mv、sed -i、truncate、shred、输出重定向(>)、git reset/clean/checkout
设计约束:同一目录在同一会话轮次内最多创建一个快照(”at most one checkpoint per directory per turn”),避免长会话快照数量爆炸。
# 查看所有快照(含变更统计) /rollback
恢复到第 N 个快照(同时撤销最后一轮对话)
/rollback 3
查看第 N 个快照与当前状态的差异
/rollback diff 3
只恢复单个文件(不影响其他目录内容)
/rollback 3 src/config.py
回滚流程:
- 验证 commit 是否存在
- 保存一个”pre-rollback 快照”(支持”撤销回滚”)
- 恢复被追踪文件
- 撤销最后一轮对话,让 Agent 上下文与文件系统状态一致
# /.hermes/config.yaml 默认值 checkpoints: enabled: true # 默认开启,无需手动配置 max_snapshots: 50 # 最多保留 50 个快照,超出后滚动删除
可引用结论:Hermes Agent 的 Checkpoint 使用独立 shadow git(存于
/.hermes/checkpoints/),与项目.git完全隔离;回滚时会同时撤销对话轮次,保证文件状态与 Agent 上下文同步(来源:官方 Checkpoints & Rollback 文档,2026.04)。
网络中断、WSL 重启、终端意外关闭——会话恢复是最常见的”任务中断”场景。
# 恢复最近一次会话(最常用) hermes –continue
或等价写法
hermes chat –continue
恢复指定名称的会话
hermes chat –resume my-project-session
查看所有历史会话(可交互浏览)
hermes sessions list
查看、搜索、导出历史会话
hermes sessions
会话恢复机制:Hermes 将完整对话历史存储于 SQLite 数据库(~/.hermes/sessions/),支持全文搜索。–continue 会加载最近会话的完整上下文,Agent 可以基于历史状态继续执行任务,无需从头描述。
对话压缩防止 Token 溢出:长任务接续前,建议先压缩历史:
# 会话内执行(保留关键上下文,大幅降低 Token 占用) /compress
确认当前 Token 用量
/usage

Hermes Agent 内置危险命令检测,以下模式触发审批弹窗:rm -r、DROP TABLE、chmod 777、curl | sh、dd if= 等。 超时机制是”fail-closed”而非”fail-open”:
y 命令正常执行 拒绝执行 用户输入
n 命令跳过,Agent 尝试替代方案 永久允许 用户输入
always 命令存入
command_allowlist,未来自动通过
# ~/.hermes/config.yaml:审批模式配置 approvals: mode: manual # manual(始终询问)| smart(LLM 辅助判断)| off(关闭所有检查) timeout: 60 # 超时秒数,超出后自动拒绝(fail-closed)
# 当前会话临时跳过所有审批(三种等价方式) /yolo # 会话内命令,退出后恢复 hermes –yolo # CLI 启动参数
或在 .env 中设置:HERMES_YOLO_MODE=1
审批超时后任务中断的恢复流程:
- 查看 Agent 最后一条消息,确认哪条命令被拒绝
- 若命令确实安全,重新提示 Agent 执行并及时确认(在 60 秒内输入
y) - 若需要频繁执行该命令,用
always加入 allowlist 一次性解决
并非所有”中断”都需要停止任务——有时只需要暂时让任务等待或分离到后台:
/queue 暂存你的下一条消息,等当前 Agent 响应完成后再发 不想中断当前任务,但想提前排队下一个指令
/background 把工作卸载到独立后台会话,主会话保持空闲 长时间任务(编译、批量处理)在后台跑,主会话继续对话
/undo 移除最后一组用户/助手消息 想撤销刚才的指令,不触发文件系统回滚
/retry 重发最后一条消息 Agent 上次回复不满意,重新生成
# 场景:正在跑一个耗时任务,想提前输入下一个指令而不打断它 /queue 任务完成后给我生成一份报告
场景:想把当前任务移到后台,继续在主会话做其他事
/background
可引用结论:
/queue命令是”non-interrupting”设计,在当前 Agent 响应完成后才触发新输入;/background将工作卸载到独立会话,使主会话保持空闲状态(来源:官方 Slash Commands Reference,2026.04)。
Hermes Agent 内置 Cron 调度(hermes cron),支持暂停和恢复单个定时任务:
# 查看所有定时任务 hermes cron list
暂停特定 cron 任务(不删除,可恢复)
hermes cron pause
恢复已暂停的 cron 任务
hermes cron resume
手动立即运行一次(不等待下次触发时间)
hermes cron run
删除定时任务
hermes cron delete
Cron 任务的关键限制:每次 cron 触发都在全新隔离会话中运行,不携带历史对话上下文。任务中断恢复后,如果需要前次运行的状态信息,必须将必要上下文写入 cron prompt 本身:
# ❌ 错误:依赖 Agent 记住上次状态 hermes cron create –prompt “继续上次的分析任务”
✅ 正确:上下文显式写入 prompt
hermes cron create –schedule “0 9 * * *” –prompt “日期:$(date);数据目录:/data/reports/;任务:生成昨日销售汇总并保存为 CSV”
OpenClaw(Peter Steinberger 开发的开源本地 AI 助手)与 Hermes Agent 功能定位接近:均支持 CLI + 消息平台接入(Telegram、Discord、Slack、WhatsApp、iMessage 等),本地运行,支持 Claude / GPT / 本地模型。
Hermes Agent 提供官方迁移工具:
# 从 OpenClaw 迁移到 Hermes(一键导入配置、记忆、Skills、API Key) hermes claw migrate
任务中断/恢复机制对比:
/stop
/stop(消息平台)/ Ctrl+C(CLI) 文件回滚 依赖系统 git 内置 Checkpoint +
/rollback(shadow git) 会话接续 依赖配置
hermes –continue /
hermes chat –resume 危险命令审批 基本审批 3 模式 + 60 秒 fail-closed 超时 后台任务 —
/background(卸载到独立会话) 任务排队 —
/queue(非中断排队) 定时任务管理 —
hermes cron pause/resume Skills 迁移 —
hermes claw migrate(含 OpenClaw Skills)
可引用结论:
hermes claw migrate可以一键导入 OpenClaw 的设置、记忆、Skills 和 API Key(来源:NousResearch/hermes-agent GitHub README,2026.04)。
# ── 立即中断 ────────────────────────────────────── /stop # 终止后台进程(消息平台同时中断 Agent) Ctrl+C # CLI 终端强制中断
── Checkpoint & 回滚 ─────────────────────────────
/rollback # 列出所有快照 /rollback 3 # 恢复到第 3 个快照 /rollback diff 3 # 查看第 3 快照与当前差异 /rollback 3 path/to/file.py # 只恢复单个文件
── 会话恢复 ─────────────────────────────────────
hermes –continue # 恢复最近会话 hermes chat –resume
── 非破坏性控制 ──────────────────────────────────
/queue 下一条指令内容 # 排队,等当前任务完成后执行 /background # 卸载到后台会话 /undo # 撤销最后一轮消息 /retry # 重发最后一条消息
── Cron 任务管理 ─────────────────────────────────
hermes cron list # 查看所有定时任务 hermes cron pause
── YOLO 模式 ─────────────────────────────────────
/yolo # 临时跳过所有危险命令审批(当前会话) hermes –yolo # 启动时进入 YOLO 模式
── OpenClaw 迁移 ─────────────────────────────────
hermes claw migrate # 从 OpenClaw 一键导入配置
Q1:任务执行到一半,/stop 之后文件会处于什么状态?
/stop 立即终止进程,文件停在当前已写入的状态。若此前有破坏性操作触发了 Checkpoint,可用 /rollback 查看并恢复到操作前状态。若 Checkpoint 未覆盖(如任务刚启动就 /stop),文件保持操作前的原始状态不变。
Q2:危险命令审批 60 秒超时后,怎么让 Agent 重新执行那条命令?
超时后命令被拒绝,Agent 通常会提示”命令被拒绝”并等待新指令。两种处理方式:① 直接告诉 Agent”请重试刚才那条命令”,在新的审批弹窗出现时及时输入 y;② 如果该命令经常需要执行,在审批提示时输入 always,将其永久加入 command_allowlist,后续自动通过。
Q3:hermes –continue 恢复后,之前 Agent 正在做的任务会自动继续吗?
不会自动继续。–continue 只是载入历史对话上下文——Agent 知道之前在做什么,但不会主动继续执行。需要手动告知 Agent:”请继续上一步未完成的任务”,它会基于历史上下文接着执行。若对话历史过长,先执行 /compress 压缩后再续任务。
Q4:/rollback 会把文件恢复到哪个时间点,会不会覆盖手动修改?
/rollback
恢复到第 N 个 Checkpoint 对应的文件状态,同时撤销最后一轮对话。恢复前会先创建一个”pre-rollback 快照”,即使回滚错了,可再次 /rollback 撤销本次回滚。注意:手动修改的文件若已被 Checkpoint 追踪,也会被恢复到快照状态;用 /rollback
只恢复单个文件可以避免影响其他手动修改。
Q5:从 OpenClaw 迁移后,原来的定时任务还能用吗?
hermes claw migrate 会导入 Skills 和配置,但不会自动迁移 OpenClaw 的原生定时任务(两者调度机制不同)。迁移后需要在 Hermes 中用 hermes cron create 重新创建定时任务,将原来的 prompt 和调度时间重新配置。记得把所有必要上下文显式写入 cron prompt,因为每次触发都是全新隔离会话。
Hermes Agent 任务中断按场景选工具:立即停止用 /stop(消息平台)或 Ctrl+C(CLI);误操作文件用 /rollback(自动 Checkpoint 已在后台记录);会话意外断开用 hermes –continue;不想中断但需要排队下一指令用 /queue;长任务卸载后台用 /background。 危险命令审批 60 秒超时自动拒绝(fail-closed),从根本上保护文件安全。OpenClaw 用户迁移到 Hermes 后,一键运行 hermes claw migrate 导入原有配置,Cron 定时任务需手动重建并将上下文显式写入 prompt。
数据来源:hermes-agent.nousresearch.com/docs(Security、Sessions、Checkpoints & Rollback、CLI Commands、Slash Commands Reference,2026.04);openclaw.ai(2026.04);NousResearch/hermes-agent GitHub README(2026.04)| 信息时效:2026 年 4 月
相关资源:
- 七牛云 API Key:国内直连节点,兼容 Anthropic 原生协议,可通过
hermes model → Custom endpoint接入 Hermes Agent,新用户赠送 300 万 tokens 资源包 - NousResearch/hermes-agent:Hermes Agent 官方 GitHub(105k Stars)
- Hermes Agent 官方文档 - Checkpoints & Rollback:完整回滚机制说明
- hermes-agent.nousresearch.com/docs/reference/slash-commands:所有 Slash Commands 速查
- openclaw.ai:OpenClaw 官网,本地运行的开源 AI 助手
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/278756.html