全部文章
2026-04-12

从 OpenClaw 迁移到 Hermes Agent 完全指南

详细迁移教程,涵盖命令用法、配置映射、技能导入、消息平台迁移、API 密钥处理和常见问题排查。

如果你是 OpenClaw(或更早期的 Clawdbot / Moldbot)用户,Hermes Agent 提供了一条完整的迁移路径。这篇教程帮助你把现有的配置、记忆、技能和平台集成一次性搬到 Hermes。

前置准备

1. 安装 Hermes Agent

如果你还没装 Hermes,先执行官方一键安装脚本(支持 Linux / macOS / WSL2 / Termux):

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

安装完成后重新加载 shell:

source ~/.bashrc   # 或 source ~/.zshrc

Windows 用户请先安装 WSL2,再执行上述命令。

2. 确认 OpenClaw 目录存在

迁移工具会按以下顺序查找你的 OpenClaw 安装目录:

  1. ~/.openclaw/
  2. ~/.clawdbot/(旧版本)
  3. ~/.moltbot/(更早版本)

如果安装在其他位置,后续命令需要加 --source /your/path


快速开始

Hermes 提供了一个 hermes claw migrate 命令来处理整个迁移过程。三种常用方式:

# 预览后确认迁移(推荐首次使用)
hermes claw migrate

# 仅预览,不做任何改动
hermes claw migrate --dry-run

# 全量迁移(含 API 密钥),跳过确认
hermes claw migrate --preset full --yes

建议第一次先用 --dry-run 看看会迁移什么,确认没问题再正式执行。


命令选项详解

选项说明
--dry-run仅预览,不修改任何文件
--preset <name>full(默认,含密钥)或 user-data(不含 API 密钥)
--overwrite冲突时覆盖已有的 Hermes 文件(默认跳过)
--migrate-secrets迁移 API 密钥(--preset full 默认开启)
--source <path>指定自定义的 OpenClaw 目录路径
--workspace-target <path>指定 AGENTS.md 的输出位置
--skill-conflict <mode>技能冲突处理:skip(默认跳过)、overwrite(覆盖)、rename(重命名为 -imported
--yes跳过预览后的确认提示

迁移内容详解

一、人设、记忆与指令

这是 OpenClaw 用户最核心的数据。迁移工具会自动处理格式转换和去重。

内容OpenClaw 路径Hermes 目标路径说明
人设workspace/SOUL.md~/.hermes/SOUL.md直接复制
工作区指令workspace/AGENTS.mdAGENTS.md(需指定 --workspace-target需要手动指定目标路径
长期记忆workspace/MEMORY.md~/.hermes/memories/MEMORY.md解析、合并、用 § 分隔符去重
用户画像workspace/USER.md~/.hermes/memories/USER.md条目合并逻辑同记忆
每日记忆workspace/memory/*.md~/.hermes/memories/MEMORY.md所有日记忆文件合并到主记忆

回退路径:如果 workspace/ 目录不存在,工具会依次检查 workspace.default/workspace-main/

二、技能迁移

OpenClaw 的技能分散在四个位置,全部会被导入到 ~/.hermes/skills/openclaw-imports/

来源OpenClaw 路径Hermes 目标路径
工作区技能workspace/skills/~/.hermes/skills/openclaw-imports/
托管/共享技能~/.openclaw/skills/~/.hermes/skills/openclaw-imports/
个人跨项目技能~/.agents/skills/~/.hermes/skills/openclaw-imports/
项目级共享技能workspace/.agents/skills/~/.hermes/skills/openclaw-imports/

冲突处理策略(通过 --skill-conflict 指定):

  • skip(默认)— 保留已有的 Hermes 技能,跳过同名导入
  • overwrite — 用 OpenClaw 技能覆盖
  • rename — 导入为 -imported 后缀副本

三、模型与 Provider 配置

内容OpenClaw 配置路径Hermes 目标说明
默认模型agents.defaults.modelconfig.yamlmodel支持字符串或 {primary, fallbacks} 对象
自定义 Providermodels.providers.*config.yamlcustom_providers映射 baseUrlapiType/api
Provider API 密钥models.providers.*.apiKey~/.hermes/.env需要 --migrate-secrets

四、Agent 行为配置

这部分涉及大量的配置项映射,迁移工具会自动转换格式:

内容OpenClaw 路径Hermes 路径转换规则
最大轮次agents.defaults.timeoutSecondsagent.max_turnstimeoutSeconds / 10,上限 200
详细模式agents.defaults.verboseDefaultagent.verboseoff / on / full
推理力度agents.defaults.thinkingDefaultagent.reasoning_effortalways/high/xhighhighauto/medium/adaptivemediumoff/low/none/minimallow
压缩agents.defaults.compaction.modecompression.enabledofffalse,其他 → true
压缩模型agents.defaults.compaction.modelcompression.summary_model直接复制
模拟人类延迟agents.defaults.humanDelay.modehuman_delay.modenatural / custom / off
延迟时间agents.defaults.humanDelay.minMs / .maxMshuman_delay.min_ms / .max_ms直接复制
时区agents.defaults.userTimezonetimezone直接复制
执行超时tools.exec.timeoutSecterminal.timeout直接复制
Docker 沙箱agents.defaults.sandbox.backendterminal.backenddockerdocker
Docker 镜像agents.defaults.sandbox.docker.imageterminal.docker_image直接复制

五、会话重置策略

OpenClaw 路径Hermes 路径说明
session.reset.modesession_reset.modedailyidle 或同时启用
session.reset.atHoursession_reset.at_hour每日重置的小时(0–23)
session.reset.idleMinutessession_reset.idle_minutes空闲多少分钟后重置

旧版兼容:如果没有 session.reset,工具会从 session.resetTriggers 数组推断。

六、消息平台迁移

这是很多用户最关心的部分。迁移工具支持 7 个主流平台:

Telegram

OpenClaw 路径Hermes 环境变量说明
channels.telegram.botToken.accounts.default.botTokenTELEGRAM_BOT_TOKEN支持字符串、环境模板和 SecretRef 三种格式
credentials/telegram-default-allowFrom.jsonTELEGRAM_ALLOWED_USERSallowFrom[] 数组逗号拼接

Discord

OpenClaw 路径Hermes 环境变量
channels.discord.token.accounts.default.tokenDISCORD_BOT_TOKEN
channels.discord.allowFromDISCORD_ALLOWED_USERS

Slack

OpenClaw 路径Hermes 环境变量
channels.slack.botTokenSLACK_BOT_TOKEN
channels.slack.appTokenSLACK_APP_TOKEN
channels.slack.allowFromSLACK_ALLOWED_USERS

WhatsApp

OpenClaw 路径Hermes 环境变量说明
channels.whatsapp.allowFromWHATSAPP_ALLOWED_USERS注意:WhatsApp 使用 Baileys QR 码配对,迁移后需要重新扫码

Signal

OpenClaw 路径Hermes 环境变量
channels.signal.accountSIGNAL_ACCOUNT
channels.signal.httpUrlSIGNAL_HTTP_URL
channels.signal.allowFromSIGNAL_ALLOWED_USERS

Matrix

OpenClaw 路径Hermes 环境变量说明
channels.matrix.accessTokenMATRIX_ACCESS_TOKEN注意是 accessToken,不是 botToken

Mattermost

OpenClaw 路径Hermes 环境变量
channels.mattermost.botTokenMATTERMOST_BOT_TOKEN

七、MCP 服务器配置

OpenClaw 字段Hermes 字段说明
mcp.servers.*.commandmcp_servers.*.commandStdio 传输
mcp.servers.*.argsmcp_servers.*.args命令参数
mcp.servers.*.envmcp_servers.*.env环境变量
mcp.servers.*.cwdmcp_servers.*.cwd工作目录
mcp.servers.*.urlmcp_servers.*.urlHTTP/SSE 传输
mcp.servers.*.tools.includemcp_servers.*.tools.include工具白名单
mcp.servers.*.tools.excludemcp_servers.*.tools.exclude工具黑名单

八、TTS 语音配置

迁移工具按优先级从三个位置读取 TTS 配置:

  1. messages.tts.providers.{provider}.*(标准位置)
  2. talk.providers.{provider}.*(回退)
  3. messages.tts.{provider}.*(最旧格式)

支持 ElevenLabs(voice_id、model_id)、OpenAI(model、voice)和 Edge TTS(voice)。

九、其他配置

内容OpenClaw 路径Hermes 路径说明
审批模式approvals.exec.modeconfig.yamlapprovals.modeautooffalwaysmanualsmartsmart
命令白名单exec-approvals.jsonconfig.yamlcommand_allowlist合并去重
浏览器 CDPbrowser.cdpUrlconfig.yamlbrowser.cdp_url直接复制
Brave 搜索密钥tools.web.search.brave.apiKey.envBRAVE_API_KEY需要 --migrate-secrets
Gateway 令牌gateway.auth.token.envHERMES_GATEWAY_TOKEN需要 --migrate-secrets
工作目录agents.defaults.workspace.envMESSAGING_CWD直接复制

API 密钥处理

当启用 --migrate-secrets 时,迁移工具从四个来源按优先级收集 API 密钥:

  1. 配置值openclaw.json 中的 models.providers.*.apiKey 和 TTS 密钥
  2. 环境文件~/.openclaw/.env(如 OPENROUTER_API_KEYANTHROPIC_API_KEY 等)
  3. 配置 env 子对象openclaw.json 中的 "env""env"."vars" 字段
  4. Auth 配置文件~/.openclaw/agents/main/agent/auth-profiles.json

支持迁移的密钥

OPENROUTER_API_KEYOPENAI_API_KEYANTHROPIC_API_KEYDEEPSEEK_API_KEYGEMINI_API_KEYZAI_API_KEYMINIMAX_API_KEYELEVENLABS_API_KEYTELEGRAM_BOT_TOKENVOICE_TOOLS_OPENAI_KEY

安全限制:不在白名单内的密钥不会被复制

SecretRef 格式处理

OpenClaw 中 token 和 API 密钥可能有三种格式,迁移工具都能处理:

// 1. 纯字符串
{ "botToken": "123456:ABC-DEF..." }

// 2. 环境变量模板
{ "botToken": "${TELEGRAM_BOT_TOKEN}" }

// 3. SecretRef 对象
{ "botToken": { "source": "env", "id": "TELEGRAM_BOT_TOKEN" } }

对于 source: "file"source: "exec" 类型的 SecretRef,无法自动解析,迁移工具会发出警告,需要手动通过 hermes config set 添加。


无法自动迁移的内容

以下内容没有直接的 Hermes 对应项,会被保存到 ~/.hermes/migration/openclaw/<timestamp>/archive/

文件归档位置如何在 Hermes 中重建
IDENTITY.mdarchive/workspace/IDENTITY.md合并到 SOUL.md
TOOLS.mdarchive/workspace/TOOLS.mdHermes 有内置的工具指令
HEARTBEAT.mdarchive/workspace/HEARTBEAT.md使用 cron 任务替代
BOOTSTRAP.mdarchive/workspace/BOOTSTRAP.md使用 context 文件或 skills
Cron 任务archive/cron-config.jsonhermes cron create 重建
插件archive/plugins-config.json参考 Hermes 插件文档
Hooks/Webhooksarchive/hooks-config.json使用 hermes webhook 或 gateway hooks
记忆后端archive/memory-backend-config.json通过 hermes honcho 配置
技能注册表archive/skills-registry-config.json使用 hermes skills config
UI/身份archive/ui-identity-config.json使用 /skin 命令
日志archive/logging-diagnostics-config.jsonconfig.yaml 的 logging 部分设置
多 Agent 列表archive/agents-list.json使用 Hermes profiles
频道绑定archive/bindings.json手动配置各平台
复杂频道配置archive/channels-deep-config.json手动配置各平台

迁移后检查清单

完成迁移后,按以下步骤逐一确认:

1. 查看迁移报告

迁移完成后会打印摘要,包含已迁移、已跳过和有冲突的项目数量。

2. 检查归档文件

查看 ~/.hermes/migration/openclaw/<timestamp>/archive/ 目录,里面是需要手动处理的文件。

3. 开启新会话

导入的技能和记忆条目需要新会话才能生效。

4. 验证 API 密钥

hermes status

检查各 provider 的认证状态。

5. 测试消息平台

如果迁移了平台 token,重启 gateway:

systemctl --user restart hermes-gateway

6. 确认会话策略

hermes config get session_reset

7. 重新配对 WhatsApp

WhatsApp 使用 Baileys QR 码配对,不能通过 token 迁移。需要重新运行:

hermes whatsapp

8. 清理旧目录

一切确认无误后,归档 OpenClaw 旧目录:

hermes claw cleanup

这会将遗留的 OpenClaw 目录重命名为 .pre-migration/


常见问题排查

"OpenClaw directory not found"

迁移工具默认检查 ~/.openclaw/~/.clawdbot/~/.moltbot/ 三个路径。如果你的安装在其他位置:

hermes claw migrate --source /path/to/your/openclaw

"No provider API keys found"

API 密钥可能分布在多个位置(取决于你的 OpenClaw 版本):

  • openclaw.json 中的 models.providers.*.apiKey
  • ~/.openclaw/.env
  • openclaw.json"env" 子对象
  • agents/main/agent/auth-profiles.json

迁移工具会检查所有四个位置。如果密钥使用了 source: "file"source: "exec" 类型的 SecretRef,需要手动添加:

hermes config set providers.openrouter.api_key YOUR_KEY

技能迁移后不显示

导入的技能位于 ~/.hermes/skills/openclaw-imports/。需要:

  1. 开启新会话
  2. 运行 /skills 命令确认加载状态

TTS 语音没有迁移

OpenClaw 在两个位置存储 TTS 设置:messages.tts.providers.* 和顶层 talk 配置。如果语音 ID 是通过 OpenClaw UI 设置的(存储在不同路径),需要手动设置:

hermes config set tts.elevenlabs.voice_id YOUR_VOICE_ID

小结

整个迁移流程可以概括为三步:

  1. hermes claw migrate --dry-run — 先预览,心里有数
  2. hermes claw migrate --preset full — 正式迁移
  3. 逐项检查 — 按清单确认每个模块

Hermes 的迁移工具覆盖面很广,大部分配置都能自动处理。少数不支持的项目会归档保存并给出提示,不会丢失数据。