迁移这件事比很多人想的简单。Hermes从设计上就考虑到了OpenClaw用户的切换需求,hermes claw migrate这一个命令会自动检测你的OpenClaw安装位置,把所有数据导入到Hermes,全程交互式引导,不需要手动操作任何文件。
迁移工具是非破坏性的——它只读取OpenClaw的数据,不会修改或删除原有文件。所以不需要提前备份,OpenClaw在迁移完成之前可以继续正常使用。
迁移前确认三件事
Hermes已经安装完成(参考官方安装文档)、OpenClaw数据在默认位置~/.openclaw、API Key可用。
如果OpenClaw装在非标准位置,后面可以用--source参数指定路径。
第一步:先跑dry-run预览
强烈建议先预览再执行,看清楚会迁移什么内容:
hermes claw migrate --dry-run
输出会列出所有检测到的数据:SOUL.md(人格配置)、MEMORY.md(记忆文件)、USER.md(用户建模)、技能文件、API Key、消息渠道配置等。仔细检查列表,确认没有问题再执行。
如果OpenClaw装在非默认路径:
hermes claw migrate --dry-run --source /path/to/your/openclaw
第二步:执行迁移
预览确认没问题之后,执行正式迁移:
hermes claw migrate
工具会再次显示预览,然后等待你确认。确认后开始导入,过程中如果遇到冲突(比如Hermes已有SOUL.md),会弹出交互提示让你选择处理方式:保留现有文件、用OpenClaw版本覆盖,或者先查看内容再决定。
几个常用参数:
# 不迁移API Key等敏感信息(只迁移配置和记忆)
hermes claw migrate --preset user-data
# 完整迁移包括API Key,跳过确认直接执行
hermes claw migrate --preset full --yes
# 遇到技能冲突时自动覆盖
hermes claw migrate --overwrite
迁移完的技能文件会在~/.hermes/skills/openclaw-imports/目录下,运行/skills命令确认是否已加载。
第三步:迁移后清理(可选)
确认Hermes运行正常,所有数据都导入成功之后,可以运行清理命令:
hermes claw cleanup
这个命令会把OpenClaw的目录重命名为.pre-migration/后缀,防止两套数据混淆,但不会删除原始数据,随时可以找回。
第一次运行hermes setup时的自动迁移
如果你还没配置过Hermes,运行hermes setup向导时它会自动检测~/.openclaw是否存在,如果检测到会直接提示你是否要迁移。接受提示的话整个迁移过程在setup向导里完成,不需要单独跑hermes claw migrate。
几个实际会遇到的情况
OpenClaw技能迁移后需要新开一个会话才能生效,或者运行/skills命令手动重新加载。
复杂技能(有条件分支逻辑的)迁移后可能需要人工检查,转换工具会标注哪些技能需要手动审查。简单技能(单步骤操作)通常可以直接用。
API Key的迁移只导入六种安全的凭证类型,其他类型会在迁移报告里显示为"skipped",需要手动在Hermes里重新配置。如果OpenClaw里的Key使用了source: "file"或source: "exec"这类间接引用方式,自动迁移无法解析,要手动添加:
hermes config set providers.openai.api_key "你的Key"
Cron定时任务不会自动迁移,迁移完成后用hermes cron list查看,再手动重建原来的定时任务。
并行运行的过渡策略
不建议直接把OpenClaw全部关掉切换到Hermes,特别是有生产工作流在跑的情况。更稳妥的方式是让两套系统并行运行3到7天:
Hermes先在命令行模式下跑,测试所有迁移过来的技能和工作流是否正常;OpenClaw继续处理消息渠道的请求。确认Hermes运行稳定之后,再把Telegram、飞书等消息渠道的Bot Token切换到Hermes的Gateway,完成最终切换。
# 验证迁移过来的技能是否正常
hermes
# 进入CLI后
/skills
# 手动测试几个常用工作流
全部验证通过之后再完全切换,比一次性迁移安全得多。