hermes-agent/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/guides/migrate-from-openclaw.md
Teknium 76135b329d
docs(i18n): translate all docs into Simplified Chinese (zh-Hans) (#31942)
Translates the full English docs corpus (335 files) into Simplified
Chinese under website/i18n/zh-Hans/. Combined with PR #31895 (cross-
locale link fix), the 简体中文 locale toggle now serves a complete
Chinese site with working cross-page navigation.

Pipeline:
- Claude Sonnet 4.6 via OpenRouter, 8-way concurrent
- Preserves frontmatter keys, code blocks, MDX/JSX, link URLs, brand
  names, and technical jargon (prompt/token/hook/MCP/ACP/etc.)
- Translates only frontmatter title/description and prose
- Two largest files (configuration.md 93KB, research-paper-writing.md
  107KB) retried with 64K max_tokens after initial fence-drift
- 3 manual post-fixes for MDX edge cases the model didn't escape:
  < in optional-skills-catalog table, double-quotes in an alt= tag,
  and a bare URL adjacent to a full-width period

Cost: ~$30 total (Sonnet 4.6 input $3/M + output $15/M).

Verified `npm run build` succeeds for both en and zh-Hans locales,
no double-prefixed /docs/zh-Hans/docs/ URLs in rendered output,
all in-page navigation resolves correctly.

Translations are machine-generated and may need human review on
specific pages — but they're an enormous improvement over the
previous state (3 zh-Hans pages out of 335).
2026-05-25 01:47:38 -07:00

15 KiB
Raw Blame History

sidebar_position title description
10 从 OpenClaw 迁移 将 OpenClaw / Clawdbot 配置迁移到 Hermes Agent 的完整指南——包括迁移内容、配置键映射及迁移后的检查事项。

从 OpenClaw 迁移

hermes claw migrate 将你的 OpenClaw或旧版 Clawdbot/Moldbot配置导入 Hermes。本指南详细说明迁移内容、配置键映射以及迁移后的验证步骤。

快速开始

# 预览后迁移(始终先显示预览,再要求确认)
hermes claw migrate

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

# 完整迁移,包含 API 密钥,跳过确认
hermes claw migrate --preset full --migrate-secrets --yes

迁移操作在执行任何更改前,始终会显示完整的导入预览。请检查列表后确认继续。

默认从 ~/.openclaw/ 读取。旧版 ~/.clawdbot/~/.moltbot/ 目录会被自动检测,旧版配置文件名(clawdbot.jsonmoltbot.json)同理。

选项

选项 说明
--dry-run 仅预览——显示将迁移的内容后停止。
--preset <name> full(所有兼容设置)或 user-data(排除基础设施配置)。两种预设默认均不导入密钥——需显式传入 --migrate-secrets
--overwrite 冲突时覆盖已有 Hermes 文件(默认:计划存在冲突时拒绝执行)。
--migrate-secrets 包含 API 密钥。即使使用 --preset full 也需要显式指定——没有任何预设会静默导入密钥。
--no-backup 跳过迁移前对 ~/.hermes/ 的 zip 快照备份(默认在执行前写入单个还原点归档,位于 ~/.hermes/backups/pre-migration-*.zip;可通过 hermes import 还原)。
--source <path> 自定义 OpenClaw 目录。
--workspace-target <path> AGENTS.md 的放置位置。
--skill-conflict <mode> skip(默认)、overwriterename
--yes 跳过预览后的确认提示。

迁移内容

Persona角色设定、记忆与指令

内容 OpenClaw 来源 Hermes 目标 备注
Persona workspace/SOUL.md ~/.hermes/SOUL.md 直接复制
工作区指令 workspace/AGENTS.md --workspace-target 中的 AGENTS.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.default/workspace-main/ 作为备用路径进行检测OpenClaw 在近期版本中将 workspace/ 重命名为 workspace-main/,多 Agent 配置下使用 workspace-{agentId})。

Skills技能4 个来源)

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

Skill 冲突由 --skill-conflict 处理:skip 保留现有 Hermes skilloverwrite 替换,rename 创建带 -imported 后缀的副本。

模型与 Provider 配置

内容 OpenClaw 配置路径 Hermes 目标 备注
默认模型 agents.defaults.model config.yamlmodel 可为字符串或 {primary, fallbacks} 对象
自定义 providers models.providers.* config.yamlcustom_providers 映射 baseUrlapiType/api——同时处理短格式("openai"、"anthropic")和带连字符格式("openai-completions"、"anthropic-messages"、"google-generative-ai"
Provider API 密钥 models.providers.*.apiKey ~/.hermes/.env 需要 --migrate-secrets。参见下方 API 密钥解析

Agent 行为

内容 OpenClaw 配置路径 Hermes 配置路径 映射规则
最大轮次 agents.defaults.timeoutSeconds agent.max_turns timeoutSeconds / 10,上限 200
详细模式 agents.defaults.verboseDefault agent.verbose "off" / "on" / "full"
推理强度 agents.defaults.thinkingDefault agent.reasoning_effort "always"/"high"/"xhigh" → "high""auto"/"medium"/"adaptive" → "medium""off"/"low"/"none"/"minimal" → "low"
压缩 agents.defaults.compaction.mode compression.enabled "off" → false其他 → true
压缩模型 agents.defaults.compaction.model compression.summary_model 直接字符串复制
人工延迟 agents.defaults.humanDelay.mode human_delay.mode "natural" / "custom" / "off"
人工延迟时间 agents.defaults.humanDelay.minMs / .maxMs human_delay.min_ms / .max_ms 直接复制
时区 agents.defaults.userTimezone timezone 直接字符串复制
执行超时 tools.exec.timeoutSec terminal.timeout 直接复制(字段名为 timeoutSec,非 timeout
Docker 沙箱 agents.defaults.sandbox.backend terminal.backend "docker" → "docker"
Docker 镜像 agents.defaults.sandbox.docker.image terminal.docker_image 直接复制

会话重置策略

OpenClaw 配置路径 Hermes 配置路径 备注
session.reset.mode session_reset.mode "daily"、"idle" 或两者
session.reset.atHour session_reset.at_hour 每日重置的小时023
session.reset.idleMinutes session_reset.idle_minutes 不活跃分钟数

注意OpenClaw 还有 session.resetTriggers(简单字符串数组,如 ["daily", "idle"])。若结构化的 session.reset 不存在,迁移将回退到从 resetTriggers 推断。

MCP 服务器

OpenClaw 字段 Hermes 字段 备注
mcp.servers.*.command mcp_servers.*.command stdio 传输
mcp.servers.*.args mcp_servers.*.args
mcp.servers.*.env mcp_servers.*.env
mcp.servers.*.cwd mcp_servers.*.cwd
mcp.servers.*.url mcp_servers.*.url HTTP/SSE 传输
mcp.servers.*.tools.include mcp_servers.*.tools.include 工具过滤
mcp.servers.*.tools.exclude mcp_servers.*.tools.exclude

TTS文字转语音

TTS 设置从 OpenClaw 配置的两个位置读取,优先级如下:

  1. messages.tts.providers.{provider}.*(规范位置)
  2. 顶层 talk.providers.{provider}.*(备用)
  3. 旧版扁平键 messages.tts.{provider}.*(最旧格式)
内容 Hermes 目标
Provider 名称 config.yamltts.provider
ElevenLabs voice ID config.yamltts.elevenlabs.voice_id
ElevenLabs model ID config.yamltts.elevenlabs.model_id
OpenAI 模型 config.yamltts.openai.model
OpenAI 语音 config.yamltts.openai.voice
Edge TTS 语音 config.yamltts.edge.voiceOpenClaw 将 "edge" 重命名为 "microsoft"——两者均可识别)
TTS 资源文件 ~/.hermes/tts/(文件复制)

消息平台

平台 OpenClaw 配置路径 Hermes .env 变量 备注
Telegram channels.telegram.botToken.accounts.default.botToken TELEGRAM_BOT_TOKEN Token 可为字符串或 SecretRef,支持扁平和 accounts 两种布局
Telegram credentials/telegram-default-allowFrom.json TELEGRAM_ALLOWED_USERS allowFrom[] 数组逗号拼接
Discord channels.discord.token.accounts.default.token DISCORD_BOT_TOKEN
Discord channels.discord.allowFrom.accounts.default.allowFrom DISCORD_ALLOWED_USERS
Slack channels.slack.botToken.accounts.default.botToken SLACK_BOT_TOKEN
Slack channels.slack.appToken.accounts.default.appToken SLACK_APP_TOKEN
Slack channels.slack.allowFrom.accounts.default.allowFrom SLACK_ALLOWED_USERS
WhatsApp channels.whatsapp.allowFrom.accounts.default.allowFrom WHATSAPP_ALLOWED_USERS 通过 Baileys 二维码配对认证——迁移后需重新配对
Signal channels.signal.account.accounts.default.account SIGNAL_ACCOUNT
Signal channels.signal.httpUrl.accounts.default.httpUrl SIGNAL_HTTP_URL
Signal channels.signal.allowFrom.accounts.default.allowFrom SIGNAL_ALLOWED_USERS
Matrix channels.matrix.accessToken.accounts.default.accessToken MATRIX_ACCESS_TOKEN 使用 accessToken(非 botToken
Mattermost channels.mattermost.botToken.accounts.default.botToken MATTERMOST_BOT_TOKEN

其他配置

内容 OpenClaw 路径 Hermes 路径 备注
审批模式 approvals.exec.mode config.yamlapprovals.mode "auto"→"off""always"→"manual""smart"→"smart"
命令白名单 exec-approvals.json config.yamlcommand_allowlist 模式合并并去重
浏览器 CDP URL browser.cdpUrl config.yamlbrowser.cdp_url
浏览器无头模式 browser.headless config.yamlbrowser.headless
Brave 搜索密钥 tools.web.search.brave.apiKey .envBRAVE_API_KEY 需要 --migrate-secrets
Gateway 认证 token gateway.auth.token .envHERMES_GATEWAY_TOKEN 需要 --migrate-secrets
工作目录 agents.defaults.workspace .envMESSAGING_CWD

已归档(无对应 Hermes 等效项)

以下内容保存至 ~/.hermes/migration/openclaw/<timestamp>/archive/ 供人工审查:

内容 归档文件 在 Hermes 中的重建方式
IDENTITY.md archive/workspace/IDENTITY.md 合并至 SOUL.md
TOOLS.md archive/workspace/TOOLS.md Hermes 内置工具说明
HEARTBEAT.md archive/workspace/HEARTBEAT.md 使用 cron 作业执行周期性任务
BOOTSTRAP.md archive/workspace/BOOTSTRAP.md 使用上下文文件或 skills
Cron 作业 archive/cron-config.json 通过 hermes cron create 重建
插件 archive/plugins-config.json 参见 插件指南
Hooks/webhooks archive/hooks-config.json 使用 hermes webhook 或 gateway hooks
记忆后端 archive/memory-backend-config.json 通过 hermes honcho 配置
Skills 注册表 archive/skills-registry-config.json 使用 hermes skills config
UI/身份 archive/ui-identity-config.json 使用 /skin 命令
日志 archive/logging-diagnostics-config.json config.yaml 日志部分设置
多 Agent 列表 archive/agents-list.json 使用 Hermes profiles
频道绑定 archive/bindings.json 按平台手动配置
复杂频道配置 archive/channels-deep-config.json 手动配置各平台

API 密钥解析

启用 --migrate-secretsAPI 密钥按以下优先级从四个来源收集:

  1. 配置值openclaw.json 中的 models.providers.*.apiKey 及 TTS provider 密钥
  2. 环境文件~/.openclaw/.env(如 OPENROUTER_API_KEYANTHROPIC_API_KEY 等)
  3. 配置 env 子对象openclaw.json"env""env"."vars"(部分配置将密钥存于此处而非单独的 .env 文件)
  4. 认证档案~/.openclaw/agents/main/agent/auth-profiles.json(每个 Agent 的凭据)

配置值优先级最高,后续来源依次填补剩余空缺。

支持的密钥目标

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 密钥的值支持三种格式:

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

// 环境变量模板
"channels": { "telegram": { "botToken": "${TELEGRAM_BOT_TOKEN}" } }

// SecretRef 对象
"channels": { "telegram": { "botToken": { "source": "env", "id": "TELEGRAM_BOT_TOKEN" } } }

迁移会解析所有三种格式。对于环境变量模板和 source: "env" 的 SecretRef 对象,会从 ~/.openclaw/.envopenclaw.json 的 env 子对象中查找值。source: "file"source: "exec" 的 SecretRef 对象无法自动解析——迁移会对此发出警告,相关值需通过 hermes config set 手动添加至 Hermes。

迁移后

  1. 检查迁移报告 — 完成后打印,包含已迁移、已跳过和冲突项的计数。

  2. 审查归档文件~/.hermes/migration/openclaw/<timestamp>/archive/ 中的所有内容需要人工处理。

  3. 开启新会话 — 导入的 skills 和记忆条目在新会话中生效,当前会话不受影响。

  4. 验证 API 密钥 — 运行 hermes status 检查 provider 认证状态。

  5. 测试消息平台 — 若迁移了平台 token重启 gatewaysystemctl --user restart hermes-gateway

  6. 检查会话策略 — 验证 hermes config get session_reset 是否符合预期。

  7. 重新配对 WhatsApp — WhatsApp 使用二维码配对Baileys不支持 token 迁移。运行 hermes whatsapp 进行配对。

  8. 清理归档 — 确认一切正常后,运行 hermes claw cleanup 将残留的 OpenClaw 目录重命名为 .pre-migration/(防止状态混淆)。

故障排查

"OpenClaw directory not found"

迁移依次检查 ~/.openclaw/~/.clawdbot/~/.moltbot/。若你的安装路径不同,请使用 --source /path/to/your/openclaw

"No provider API keys found"

根据 OpenClaw 版本不同,密钥可能存储在多个位置:openclaw.jsonmodels.providers.*.apiKey 内联、~/.openclaw/.envopenclaw.json"env" 子对象,或 agents/main/agent/auth-profiles.json。迁移会检查所有四个位置。若密钥使用 source: "file"source: "exec" 的 SecretRef则无法自动解析——请通过 hermes config set 手动添加。

迁移后 skills 未出现

导入的 skills 位于 ~/.hermes/skills/openclaw-imports/。开启新会话后生效,或运行 /skills 验证是否已加载。

TTS 语音未迁移

OpenClaw 在两处存储 TTS 设置:messages.tts.providers.* 和顶层 talk 配置。迁移会检查两处。若你的 voice ID 是通过 OpenClaw UI 设置的(存储路径不同),可能需要手动设置:hermes config set tts.elevenlabs.voice_id YOUR_VOICE_ID