ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenClaw migrate-hermes 插件完全指南:从 Hermes 无缝迁移配置、记忆、技能与凭据

OpenClaw migrate-hermes 插件完全指南:从 Hermes 无缝迁移配置、记忆、技能与凭据 OpenClaw migrate-hermes 插件完全指南从 Hermes 无缝迁移配置、记忆、技能与凭据【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclawOpenClaw 内置的migrate-hermes插件包名openclaw/migrate-hermes提供了一条从 Hermes 到 OpenClaw 的完整迁移通道负责导入 Hermes 的模型配置、记忆文件、技能与受支持的凭据。它遵循先预览、后应用的安全模型所有变更都先以逐项计划Migration Plan展示应用前自动创建并校验备份并在计划、输出与迁移报告中自动脱敏嵌套的密钥类字段。读完本文你将掌握 Hermes 源目录的发现规则、openclaw migrate与openclaw onboard --flow import两条导入路径、逐类迁移项的含义、归档与手动复核边界以及从预览到验证的完整实战流程。插件定位与分发方式根据插件参考文档docs/plugins/reference/migrate-hermes.md该插件完成的核心职责是Imports Hermes configuration, memories, skills, and supported credentials into OpenClaw。包名openclaw/migrate-hermes安装途径随 OpenClaw 内置分发included in OpenClaw无需单独安装对外契约ContractsmigrationProviders从 扩展清单 可以看到它只依赖dotenv解析.env与yaml解析config.yaml两个运行时库其余能力全部来自 OpenClaw 的插件 SDK其openclaw.plugin.json声明了migrationProviders契约。插件入口index.ts通过definePluginEntry注册在register(api)阶段调用api.registerMigrationProvider(buildHermesMigrationProvider(...))向迁移系统注册 id 为hermes的迁移提供者。架构总览detect / plan / apply 三段式Hermes 迁移提供者provider.ts实现了标准的三阶段接口阶段方法职责检测detect(ctx)调用discoverHermesSource定位 Hermes 状态目录返回found、source路径与置信度high/low规划plan(ctx)构建完整的迁移计划buildHermesPlan逐项列出将执行的动作应用apply(ctx, plan?)按计划执行导入applyHermesPlan写入迁移报告并返回结果提供者对外暴露的标签为 Hermes描述为 Import Hermes config, memories, skills, and supported credentials.声明支持的条目类型supportedItemKinds: [memory]并针对仅导入记忆的调用面onboarding 记忆页、Control UI 记忆导入页做了专门处理——此时只检测memories/MEMORY.md与memories/USER.md。Hermes 源目录的发现规则源发现逻辑集中在 source.ts 的discoverHermesSource中规则如下显式路径优先传入--from path或 onboarding 的--import-source path时直接采用且不再启用全局回退环境变量读取HERMES_HOME若其已指向某个 profile 目录父目录名为profiles或处于HERMES_S6_SUPERVISED_CHILD监督子进程环境则直接信任该路径平台默认值macOS/Linux 为~/.hermesWindows 为%LOCALAPPDATA%\hermes旧版~/.hermes作为后备检测到状态即优先采用活动 Profile 解析读取根目录下active_profile文件正则^[a-z0-9][a-z0-9_-]{0,63}$校验若指向非default的 profile 且profiles/active目录存在则切换到该 profile 目录。发现完成后源码会探测以下文件/目录是否存在作为可选字段返回config.yaml、.env、auth.json、全局auth.jsonprofiles上一级的认证文件、OpenCodeauth.json$XDG_DATA_HOME/opencode/auth.json、父目录.local/share/opencode/auth.json或$HOME回退、SOUL.md、AGENTS.md、memories/MEMORY.md、memories/USER.md、skills/目录。hasHermesSource会据此判断是否真的检测到了 Hermes 状态。迁移计划的构成九类迁移项buildHermesPlanplan.ts按类别构造迁移项MigrationItem每类都有明确的语义kind说明典型动作configOpenClaw 配置补丁模型、Provider、MCP、记忆插件槽位、技能配置patchworkspaceSOUL.md、AGENTS.md复制进 Agent 工作区copymemoryMEMORY.md、USER.md追加到工作区记忆文件appendskill带SKILL.md的技能目录复制到工作区skills/copyauth认证凭据导入Hermes OAuth、OpenCode OAuth、GitHub Copilot 等applysecret.env中受支持的 API Key / Tokenapplyarchive无法安全解释的状态仅归档进迁移报告archivemanual需要人工复核后激活的设置manualmodel-provider模型与 Provider 的关联配置patch规划阶段会为每个文件类条目检查目标是否存在目标已存在且未传--overwrite时标记为conflict原因MIGRATION_REASON_TARGET_EXISTS。模型条目与 Provider 条目之间存在依赖检查若模型引用的 Provider 配置冲突模型条目也会被标记为冲突HERMES_REASON_MODEL_PROVIDER_CONFLICT。计划的warnings数组还会输出一系列可操作提示包括检测到认证凭据但未导入建议交互重跑或加--include-secrets、导入 OpenAI OAuth 后 Hermes 与 OpenClaw 不可共用同一 refresh grant、存在冲突需--overwrite重跑、存在仅归档文件、存在需人工复核项等。记忆追加的幂等性记忆文件采用追加而非覆盖策略helpers.ts写入内容前会带上!-- Imported from Hermes: basename --头若目标文件中已包含该导入块则跳过标记 already imported from Hermes保证重复导入幂等空源文件也会被跳过。追加使用appendRegularFile并拒绝符号链接父路径体现安全写入约束。技能发现与组织镜像技能发现skills.ts递归扫描skills/下所有含SKILL.md的目录排除.git、.github、.venv、node_modules、site-packages、__pycache__等目录以及references、templates、assets、scripts等技能支持目录。嵌套技能会被扁平化sanitize 后作为路径段复制进工作区skills/名称冲突时目标已存在会标记冲突。组织镜像仅导入_org/.active_org指定的活跃组织未激活的镜像保留在磁盘但不会迁移。技能名优先读取SKILL.mdfrontmatter 的name字段解析失败时保留目录名继续复制。SQLite 归档快照归档条目中若源文件是.db数据库apply.ts插件不会直接复制原始文件而是以只读方式打开数据库PRAGMA busy_timeout 30000用VACUUM INTO生成一份自包含的 SQLite 快照前缀openclaw-migrate-hermes-sqlite-避免因state.db-wal中未提交的行导致快照不完整快照权限收紧为0600。快照失败时降级为连同-wal、-shm一并复制的恢复归档并标记错误供人工处理。这体现了归档仅供人工审阅、绝不自动加载的安全底线。导入内容全景模型与 Provider 配置默认模型从 Hermesconfig.yaml解析默认模型选择写入config:default-model配合--agent id时模型仅归属该 Agent共享默认值与其他 Agent 不受影响Provider 映射读取model、providers、custom_providers将 Hermes 的传输别名映射为 OpenClaw Provider。映射表在 model.ts 中清晰可见例如claude → anthropic、claude-code → anthropic、gemini → google、bedrock → amazon-bedrock、copilot / github-models → github-copilot、glm / zhipu → zai、kimi-cn → moonshot、vertex → google-vertex、azure-foundry → microsoft-foundry、minimax-cn → minimax、minimax-portal → minimax-portal、qwen / dashscope / aliyun → qwen等已停用的 Hermes Qwen Portal OAuth 与 Qwen CLI 凭据无法被 OpenClaw 复用规划阶段会自动插入 manual 项建议迁移后执行openclaw onboard --auth-choice qwen-api-key改用 API Key 认证。MCP 服务器从mcp_servers或mcp.servers导入 MCP 服务器定义覆盖禁用状态、超时、并行工具支持、OAuth scope、TLS 校验开关、客户端证书/私钥分离路径以及 Hermes 原生/资源/提示词工具策略。字面量环境变量与请求头需要凭据导入同意。Hermes 独有、OpenClaw 不支持的字段生命周期、sampling、elicitation、preflight、keepalive、CA bundle、口令保护的 client key、预注册 OAuth client会转为 manual 复核项而非无效配置。空tools.include会保持原生工具禁用但保留资源/提示词工具设置Hermes 的?与括号通配模式、不支持的排除模式需要人工复核。工作区文件与记忆SOUL.md、AGENTS.md复制进 OpenClaw Agent 工作区memories/MEMORY.md、memories/USER.md追加到工作区对应记忆文件记忆专用场景onboarding 记忆页、Control UI 记忆导入页改为将两个文件复制到memory/imports/hermes/供索引召回不动既有工作区记忆——该分支由isMemoryOnlyMigrationmemory.ts当itemKinds全部为memory时触发路由。记忆配置与外部 ProviderHermes 的memory.provider为builtin/file/files时选择 OpenClaw 默认文件记忆plugins.slots.memory memory-core为honcho时以插件条目形式保留设置并要求人工安装/复核后再启用其他未知名 Provider 转为 manual 项建议手动安装等价插件。技能配置skills.config中的逐技能配置与skills.disabled全局禁用状态会保留Hermes 自身的手册技能hermes-agent即使出现在skills.disabled中也不会被禁用。禁用列表若以 JSON/Python 数组字符串形式持久化如[skill-a]插件会用 YAML 解析器安全还原为数组解析失败时按单个技能名处理。认证凭据与.env键交互式openclaw migrate默认询问是否导入认证凭据默认选是。支持的凭据包括当前 Hermes OpenAI Codex OAuth 条目OpenCode OpenAI OAuth 与 GitHub Copilot 条目受支持的 Hermes.env键完整列表见 docs/cli/migrate.mdAI_GATEWAY_API_KEY、ANTHROPIC_API_KEY、OPENAI_API_KEY、GEMINI_API_KEY、DASHSCOPE_API_KEY、QWEN_API_KEY、DEEPSEEK_API_KEY、KIMI_API_KEY、MOONSHOT_API_KEY、MINIMAX_API_KEY、MISTRAL_API_KEY、XAI_API_KEY、ZAI_API_KEY、GH_TOKEN、GITHUB_TOKEN、HF_TOKEN、HUGGINGFACE_HUB_TOKEN、OPENROUTER_API_KEY、TOGETHER_API_KEY、FIREWORKS_API_KEY、GROQ_API_KEY、CEREBRAS_API_KEY、NVIDIA_API_KEY、VENICE_API_KEY等数十个 Provider Key。导入 Hermes OAuth 后不要让 Hermes 与 OpenClaw 继续共用同一 refresh grant——同时运行前必须重新认证其中一方。未被列入支持清单的其他.env变量会被忽略。归档边界什么不会自动加载以下 Hermes 状态会被复制进迁移报告目录供人工审阅但不会加载进 OpenClaw 的活跃配置或凭据源码中对应HERMES_ARCHIVE_DIRS与HERMES_ARCHIVE_FILES常量见 source.ts目录plugins/、sessions/、logs/、cron/、mcp-tokens/、plans/、workspace/、skins/、kanban/、pairing/、platforms/文件state.db、hermes_state.db、projects.db、response_store.db、memory_store.db、verification_evidence.db、kanban.db、retaindb_queue.db、gateway_state.json、channel_directory.json、channel_aliases.json、processes.json、feishu_comment_pairing.json原因正如 docs/install/migrating-hermes.md 所述这些状态的格式与信任假设可能随系统漂移OpenClaw 拒绝自动执行或信任它们需要你在审阅归档后按需手工搬移。两种导入路径路径一Onboarding 向导适合全新安装# 自动检测活跃 Hermes home/profile 并预览 openclaw onboard --flow import # 显式指定来源 openclaw onboard --import-from hermes --import-source ~/.hermesOnboarding 导入要求全新 OpenClaw 环境。它把暂存的配置、凭据与文件先放入 staging在 staging 内验证/修复导入后的推理能力再以0600权限的 promotion journal 发布工作区与 Agent 状态——中断后可续跑或回滚不会重放已导入的本地数据。路径二openclaw migrateCLI适合脚本化、可重复执行openclaw migrate list # 查看已注册的迁移 Provider openclaw migrate hermes --dry-run # 仅预览计划 openclaw migrate hermes # 交互式预览 凭据询问 确认 openclaw migrate apply hermes --yes # 应用跳过确认仅导入非密钥状态 openclaw migrate apply hermes --include-secrets --yes # 无人值守导入凭据 openclaw migrate hermes --from /actual/path --dry-run # 覆盖源路径常用参数完整参考见 docs/cli/migrate.md参数作用--dry-run只构建计划不改变任何状态--from path覆盖 Hermes 源目录发现总是优先于环境变量与平台默认值--agent id将导入的模型归属到指定 Agent--include-secrets无人值守--yes模式下也导入受支持的凭据--no-auth-credentials跳过认证凭据导入含交互询问--overwrite计划存在冲突时允许覆盖目标会先做条目级备份--yes跳过确认非交互模式下必需--json以 JSON 输出计划或应用结果--json且不带--yes时只打印计划安全模型与冲突处理openclaw migrate是预览优先的先预览后变更Provider 在任何改动前返回逐项计划冲突、跳过项、敏感项一目了然JSON 计划、应用输出与迁移报告都会脱敏嵌套的密钥类字段API Key、Token、Authorization 头、Cookie、密码备份应用前自动创建并校验 OpenClaw 备份若本地尚无 OpenClaw 状态则跳过备份直接迁移。已有状态时跳过备份需要同时传--no-backup与--force冲突计划存在冲突时 apply 拒绝继续。--overwrite仅应在确实有意替换目标时使用被覆盖的文件仍可能产生条目级备份存于迁移报告目录部分失败若应用中途出现意外冲突如配置文件竞态该条目标记为冲突其余独立文件、技能、凭据、归档与配置条目继续执行。解决冲突项后重跑即可——记忆导入幂等可安全重放。应用完成后迁移报告写入stateDir/migration/hermes目录未指定reportDir时标题为 Hermes Migration Report。自动化与 JSON 输出openclaw migrate hermes --dry-run --json # 打印 JSON 计划 openclaw migrate apply hermes --json --yes # 应用并输出 JSON 结果openclaw migrate hermes --json不带--yes时仅打印计划、不落地。非交互式apply必须带--yes。部分失败时返回完整 JSON 报告并以退出码1结束便于 CI 解析summary与items定位部分结果。推荐实战流程完整的四步走与 docs/install/migrating-hermes.md 一致# 1. 预览计划 openclaw migrate hermes --dry-run # 2. 带备份应用交互式应答凭据询问或加 --include-secrets 无人值守 openclaw migrate apply hermes --yes # 3. 健康检查 openclaw doctor # 4. 重启并验证 openclaw gateway restart openclaw statusopenclaw doctor会重新应用挂起的配置迁移并检查导入引入的问题重启网关后确认导入的模型、记忆与技能已加载。故障排查速查apply 因冲突被拒检查计划输出每个冲突项都会给出源路径与既有目标路径逐项决定跳过、编辑目标或加--overwrite重跑Hermes 不在~/.hermesCLI 传--from /actual/pathOnboarding 传--import-source /actual/pathOnboarding 在已有环境上拒绝导入Onboarding 导入要求全新环境——要么重置状态重新 onboarding要么直接用支持--overwrite与显式备份控制的openclaw migrate apply hermesAPI Key 未导入交互模式需在凭据询问时选择接受非交互--yes需加--include-secretsOnboarding 需加--import-secrets。且只有受支持的.env键会被识别其余变量忽略Hermes state was not found源目录缺少可识别的 Hermes 标记config.yaml、.env、auth.json、active_profile、SOUL.md、AGENTS.md、skills、memories或归档目录/文件请用--from指定正确路径。延伸阅读从 Hermes 迁移用户向指南两条导入路径、导入/归档清单与推荐流程openclaw migrateCLI 参考完整参数、安全模型、Provider 契约与 JSON 输出形状插件实现源码index.ts、provider.ts、source.ts、plan.ts、apply.ts、model.ts、skills.ts、memory.ts相关插件契约文档插件 SDK 总览 与 迁移 Provider 契约【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表