Hermes Agent通过多层次备份与恢复机制保障数据安全:SQLite数据库(~/.hermes/state.db)存储核心会话状态;Git模式自动提交至hermes/checkpoints/<session>分支;非Git环境生成tar快照至~/.hermes/checkpoints/<session_id>/;支持hermes rollback命令交互式回滚及hermes checkpoint工具执行list/restore/diff操作。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您需要确保Hermes Agent运行状态与工作成果不因意外中断或数据损坏而丢失,则必须依赖其内置的多层次备份与恢复机制。以下是执行备份与恢复操作的具体方法:
一、SQLite数据库状态备份与恢复
系统核心会话状态、工具调用记录及响应数据全部持久化存储于SQLite数据库中,路径为~/.hermes/state.db。该文件是恢复Agent历史行为与上下文连续性的唯一权威来源。
1、确认数据库文件存在且未被锁定:
执行ls -l ~/.hermes/state.db检查文件权限与修改时间。
2、手动备份当前状态:
运行cp ~/.hermes/state.db ~/.hermes/state.db.$(date +%Y%m%d_%H%M%S)生成带时间戳的副本。
3、恢复指定历史状态:
将目标备份文件复制回原路径:cp ~/.hermes/state.db.20260410_153000 ~/.hermes/state.db。
二、Git集成模式下的自动检查点管理
当Hermes Agent在Git仓库中运行时,系统会自动将每次工具调用或文件变更提交至专用临时分支hermes/checkpoints/<session>,实现版本化快照与可追溯性。
1、启用Git检查点功能:
确保项目根目录下存在.git目录,并配置HERMES_CHECKPOINT_MODE=git环境变量。
2、查看所有检查点分支:
运行git branch --format="%(refname:short)" | grep "hermes/checkpoints/"。
3、检出特定检查点状态:
执行git checkout hermes/checkpoints/session_abc123,随后重启Agent以加载该会话快照。
三、文件快照模式下的离线备份
在非Git环境中,Hermes Agent会在~/.hermes/checkpoints/<session_id>/目录下生成轻量级tar压缩包,包含自上次检查点以来所有被修改的工作区文件。
1、定位最新检查点目录:
运行ls -t ~/.hermes/checkpoints/ | head -n1获取最近的session_id。
2、解压并覆盖当前工作区:
执行tar -xzf ~/.hermes/checkpoints/xyz789/checkpoint.tar.gz -C ./。
3、强制Agent重载文件状态:
启动时添加--force-reload参数:hermes run --force-reload。
四、CLI命令行回滚操作
通过内置CLI工具可快速列出并选择任意可用恢复点,适用于需跨多个检查点进行精确回退的场景。
1、列出全部可回滚目标:
运行hermes rollback bash,终端将输出编号化的检查点列表。
2、选择编号并执行回滚:
输入对应数字(如3),系统自动完成状态还原与文件同步。
3、验证回滚结果:
检查~/.hermes/state.db的last_modified时间戳是否匹配所选检查点时间。
五、checkpoint工具高级操作
Agent可直接调用checkpoint工具执行精细化状态比对与恢复,支持集成进自动化脚本或CI/CD流程。
1、显示所有检查点元信息:
运行hermes checkpoint list,输出包括ID、创建时间、变更文件数等字段。
2、恢复至指定检查点:
执行hermes checkpoint restore --id session_def456。
3、比较当前工作区与检查点差异:
运行hermes checkpoint diff --id session_ghi789,输出为标准diff格式文本。


















