Hermes Agent: 检查点
最后更新:2026-08-31
检查点是 Hermes Agent 的存档系统——就像游戏存档,随时保存状态,出了问题可以读档重来,实验中断也能接着跑。
💡 提示:检查点不仅保存对话历史,还包括完整的 Agent 状态:记忆、技能调用链、工具执行结果、LLM 推理中间步骤。恢复后 Agent 从断点继续,不需要重新开始。
📋 前置知识:第6课 记忆系统、第7课 技能系统
1. 你将学到
| 编号 | 内容 |
|---|---|
| ❶ | 检查点机制原理 |
| ❷ | 自动检查点与手动保存 |
| ❸ | 恢复与回滚 |
| ❹ | 实验管理 |
| ❺ | 检查点存储与清理 |
2. 故事
(1) 痛点:长任务中断,一切白费
Bob 让 Agent 做一个复杂的代码审查,分析了 20 分钟,突然断网。重新开始,又得从头来。
(2) 解法:检查点存档,断点续传
Alice 的 Hermes 自动保存检查点,断网后恢复:
BASH
# 断网前
Agent: 已审查 15/20 个文件...
# 恢复后
hermes checkpoint restore latest
Agent: 从检查点恢复,继续审查 16/20...
3. 检查点机制原理
(1) 检查点内容
JSON
{
"checkpoint_id": "cp_20260315_143022",
"timestamp": "2026-03-15T14:30:22Z",
"session_id": "session_abc123",
"agent_state": {
"current_task": "code-review",
"progress": "15/20 files",
"active_skills": ["react-component-review"],
"pending_actions": ["review_file_16", "review_file_17"]
},
"memory_snapshot": {
"working_memory": [...],
"long_term_changes": [...]
},
"tool_results": {
"fs_read_src_main_py": "content_hash_abc",
"code_python_result": "output_hash_def"
},
"llm_context": {
"messages": [...],
"tokens_used": 12500
}
}
(2) 检查点流程
graph LR
A[Agent 执行] --> B{自动触发?}
B -->|每5分钟| C[保存检查点]
B -->|技能完成| C
B -->|工具调用| C
C --> D[写入磁盘]
D --> A
E[中断/错误] --> F[恢复检查点]
F --> G[读取状态]
G --> H[继续执行]
4. 自动与手动检查点
(1) 自动检查点配置
YAML
checkpoint:
enabled: true
# 自动保存策略
auto_save:
interval: 300 # 每5分钟
on_skill_complete: true # 技能完成后
on_tool_call: true # 工具调用后(大任务时)
on_error: true # 出错时
max_checkpoints: 50 # 最多保留50个
# 存储配置
storage:
path: "~/.hermes/checkpoints"
compression: true # 压缩存储
max_size_mb: 500 # 总大小上限
(2) 手动保存
BASH
# 对话中手动保存
/checkpoint save "review-half-done"
# 命令行保存
hermes checkpoint save --name "before-deploy"
# 查看所有检查点
hermes checkpoint list
# 输出示例:
# ┌──────────────────────┬──────────┬─────────┬──────────┐
# │ Checkpoint │ Time │ Progress│ Size │
# ├──────────────────────┼──────────┼─────────┼──────────┤
# │ review-half-done │ 14:30 │ 15/20 │ 2.3 MB │
# │ auto-cp-143000 │ 14:30 │ 15/20 │ 2.1 MB │
# │ auto-cp-142500 │ 14:25 │ 12/20 │ 1.8 MB │
# └──────────────────────┴──────────┴─────────┴──────────┘
5. 恢复与回滚
(1) 恢复检查点
BASH
# 恢复最近的检查点
hermes checkpoint restore latest
# 恢复指定检查点
hermes checkpoint restore review-half-done
# 对话中恢复
/checkpoint restore review-half-done
Agent: 从检查点 "review-half-done" 恢复
任务: 代码审查
进度: 15/20 文件
继续审查第16个文件...
(2) 回滚
BASH
# 回滚到检查点(丢弃之后的所有更改)
hermes checkpoint rollback review-half-done
# ⚠️ 这会丢弃检查点之后的所有记忆和技能更改
# 确认? (y/n)
(3) 选择性恢复
YAML
# 只恢复部分状态
checkpoint:
restore_options:
agent_state: true # 恢复任务状态
memory: true # 恢复记忆快照
tool_results: true # 恢复工具结果缓存
llm_context: false # 不恢复LLM上下文(重新生成)
6. 实验管理
(1) 研究模式检查点
研究模式下,检查点特别重要——批量轨迹生成可能跑几个小时:
YAML
research:
mode: true
checkpoint:
save_every_n_tasks: 10 # 每完成10个任务保存
save_on_error: true # 出错时保存(保留失败样本)
trajectory:
output_format: "sharegpt"
output_dir: "~/.hermes/research/trajectories"
BASH
# 批量轨迹生成
hermes research run \
--tasks experiment_tasks.jsonl \
--model gpt-4o \
--batch-size 50 \
--output sharegpt
# 中断后恢复
hermes research resume \
--from-checkpoint latest \
--output sharegpt
(2) 实验对比
BASH
# 保存不同实验的检查点
hermes checkpoint save --tag "experiment-a-temp07"
hermes checkpoint save --tag "experiment-b-temp03"
# 对比实验结果
hermes research compare \
--checkpoint experiment-a-temp07 \
--checkpoint experiment-b-temp03
7. 检查点存储与清理
(1) 存储格式
~/.hermes/checkpoints/
├── cp_20260315_143022.tar.gz # 自动检查点
├── review-half-done.tar.gz # 手动检查点
└── experiment-a.tar.gz # 实验检查点
(2) 清理策略
YAML
checkpoint:
cleanup:
auto: true
keep_manual: true # 保留手动保存的
keep_last_n: 10 # 保留最近10个自动检查点
max_age_days: 30 # 超过30天的自动清理
max_total_size: "500MB" # 总大小超限后清理最旧的
BASH
# 手动清理
hermes checkpoint clean --keep-last 5
# 查看存储使用
hermes checkpoint storage-info
❓ 常见问题
Q 检查点占多少空间?
A 单个检查点 1-5 MB(压缩后)。50个约 50-250 MB。可以配置自动清理。
Q 恢复检查点后记忆会丢失吗?
A 不会。恢复只还原任务状态和上下文,不删除长期记忆。回滚才会丢弃。
Q 检查点能跨机器迁移吗?
A 可以。导出检查点文件,在另一台机器导入。路径差异需要手动调整。
Q 多久自动保存一次?
A 默认每 5 分钟。可配置
checkpoint.auto_save.interval 调整。频繁保存会轻微影响性能。Q 研究模式必须用检查点吗?
A 强烈建议。批量实验跑几小时,中断后从检查点恢复比从头开始划算得多。
Q 检查点支持加密吗?
A 支持。配置
checkpoint.storage.encryption: true,使用 AES-256 加密。📖 小节
- 检查点保存完整 Agent 状态:任务进度、记忆、工具结果、LLM 上下文
- 自动保存(定时 + 事件触发)+ 手动保存
- 恢复:断点续传;回滚:回到过去状态
- 研究模式:批量轨迹实验的断点续传保障
- 自动清理策略:保留最近 N 个、超龄清理、总大小限制
📝 作业
- 基础题(难度⭐):在对话中手动保存检查点,重启 Hermes 后恢复,验证状态一致。
- 进阶题(难度⭐⭐):配置自动检查点策略(每 3 分钟 + 技能完成时),执行长任务,观察自动保存。
- 挑战题(难度⭐⭐⭐):模拟研究场景,批量运行 10 个任务,中途强制中断,从检查点恢复继续,验证零丢失。