从 OpenClaw 迁移到 HermesAgent:一次丝滑的 AI 智能体搬家实战
前言:为什么我要"搬家"?
2026 年,AI 智能体(Agent)领域的发展速度简直可以用"日新月异"来形容。半年前还在用的工具,可能今天就被更强大的替代品超越了。作为一个深度依赖 AI 智能体来处理日常工作的人,我一直在关注这个领域的最新动态。
最近,我完成了一次从 OpenClaw 到 HermesAgent 的完整迁移。这不是一时冲动的决定,而是在实际使用中感受到两个工具的差异后,做出的深思熟虑的选择。
这篇文章会详细分享:
- 背景:OpenClaw 和 HermesAgent 分别是什么
- 迁移原因:为什么我要从 OpenClaw 迁移到 HermesAgent
- 迁移过程:如何一步步完成迁移,保留所有数据
- 踩坑记录:迁移过程中遇到的问题和解决方案
- 迁移后清理:如何彻底移除 OpenClaw 残留文件
- 迁移后体验:HermesAgent 带来了哪些新能力
- Q&A:常见问题解答
HermesAgent:由 Nous Research 开发的下一代 AI 智能体框架
1. OpenClaw:曾经的得力助手
1.1 OpenClaw 是什么?
OpenClaw 是一个开源的个人 AI 助手网关,由 Anthropic 团队开发。它的核心定位是:一个本地优先、多通道、可扩展的 AI 智能体平台。
OpenClaw 的主要特性包括:
- 多通道消息集成:支持 WhatsApp、Telegram、Slack、Discord、飞书、微信、QQ 等 20+ 消息平台
- 本地优先架构:Gateway 作为守护进程运行在本地,数据完全存储在
~/.openclaw/目录 - 可扩展的插件系统:通过 ClawHub 可以安装各种技能和插件
- 多智能体路由:支持将不同通道/账号路由到不同的智能体
- 语音能力:支持语音唤醒、语音对话等功能
1.2 我的 OpenClaw 使用场景
在我的日常工作中,OpenClaw 主要承担以下职责:
- 钉钉/飞书集成:通过钉钉机器人接收消息,自动执行任务
- 定时任务:每天早上 8 点自动执行内容选题策划,通过钉钉发送报告
- 多模型支持:使用 GLM-5.1 作为主模型,MiniMax-M2.7 作为备选
- 技能系统:维护了 10+ 个自定义技能,覆盖阿里云、K8s、MySQL 等场景
- 长期记忆:通过 SQLite 数据库存储跨会话的记忆
1.3 OpenClaw 的局限性
使用 OpenClaw 大半年后,我逐渐感受到了一些局限性:
- 记忆系统较弱:OpenClaw 的记忆系统主要是基于文件的,缺乏高级的语义搜索能力
- 技能自学习能力有限:技能需要手动创建和维护,无法从使用中自动改进
- 会话搜索能力不足:跨会话的历史搜索功能较弱,难以回忆起之前的讨论细节
- 模型切换不够灵活:虽然支持多模型,但切换过程不够流畅
- 社区活跃度下降:随着 HermesAgent 的崛起,OpenClaw 的社区活跃度有所下降
2. HermesAgent:新一代 AI 智能体
2.1 HermesAgent 是什么?

HermesAgent 是由 Nous Research 开发的开源 AI 智能体框架,目前在 GitHub 上已经获得了 172k+ 的 Star。它的核心理念是:一个能够自我改进的 AI 智能体。
HermesAgent 的主要特性包括:
- 自我改进的学习循环:能够从经验中创建技能,在使用过程中不断改进
- 强大的会话搜索:基于 FTS5 全文搜索 + LLM 摘要的跨会话回忆能力
- 用户建模:通过 Honcho 辩证用户建模,构建不断深化的用户画像
- 300+ 模型支持:通过 Nous Portal 或 OpenRouter 支持 300+ 种模型
- 多平台消息:支持 Telegram、Discord、Slack、WhatsApp、Signal 等平台
- 6 种终端后端:本地、Docker、SSH、Singularity、Modal、Daytona
- 内置 Cron 调度器:支持自然语言定时任务
- 并行子智能体:可以生成隔离的子智能体并行处理任务
2.2 HermesAgent vs OpenClaw
| 特性 | OpenClaw | HermesAgent |
|---|---|---|
| 开发语言 | Node.js | Python + Node.js |
| 记忆系统 | 文件 + SQLite | SQLite + FTS5 + LLM 摘要 |
| 技能系统 | 手动创建 | 自动创建 + 自我改进 |
| 会话搜索 | 基础 | FTS5 全文搜索 |
| 模型支持 | 10+ 提供商 | 300+ 模型 |
| 终端后端 | 本地 | 6 种后端 |
| 社区活跃度 | 下降中 | 非常活跃 |
| 学习曲线 | 中等 | 中等 |
2.3 为什么选择 HermesAgent?
经过对比,我选择 HermesAgent 的主要原因有:
- 自我改进能力:技能可以从使用中自动学习和改进,大大减少维护成本
- 强大的会话搜索:FTS5 + LLM 摘要的组合,让跨会话回忆变得非常准确
- 更活跃的社区:172k Star,9800+ commits,14 个 releases,社区非常活跃
- 更好的模型支持:300+ 模型支持,切换更灵活
- 更现代的架构:Python + Node.js 的组合,既有 Python 的 AI 生态优势,又有 Node.js 的 UI 能力
3. 迁移实战:一步一步搬家
OpenClaw → HermesAgent 迁移架构总览
3.1 迁移前准备
在开始迁移之前,我做了以下准备:
-
备份 OpenClaw 数据:虽然用户说已经做了整机备份,但我还是单独备份了
~/.openclaw/目录 -
了解 HermesAgent 的数据结构:
~/.hermes/config.yaml:主配置文件~/.hermes/SOUL.md:人格定义~/.hermes/memories/:记忆存储~/.hermes/skills/:技能存储~/.hermes/cron/:定时任务~/.hermes/.env:API 密钥
-
确认迁移工具:HermesAgent 内置了
hermes claw migrate命令,专门用于从 OpenClaw 迁移
3.2 安装 HermesAgent
首先,在目标机器上安装 HermesAgent:
# 安装 Python 依赖
pip install --break-system-packages hermes-agent
# 验证安装
hermes --version
安装过程中遇到了一个典型的 Debian 系统问题:Python 的 externally-managed-environment 限制。解决方案是使用 --break-system-packages 标志强制安装。
3.3 执行迁移命令
HermesAgent 提供了非常方便的迁移工具:
# 先进行干运行,查看会迁移哪些内容
hermes claw migrate --dry-run --migrate-secrets
# 确认无误后,执行实际迁移
hermes claw migrate --migrate-secrets --overwrite --no-backup --yes
迁移命令会自动处理以下内容:
- SOUL.md:人格定义文件
- 用户画像:
~/.hermes/memories/USER.md - 模型配置:
~/.hermes/config.yaml中的模型和提供商配置 - 技能:所有自定义技能迁移到
~/.hermes/skills/openclaw-imports/ - 日常记忆:
~/.hermes/memories/MEMORY.md - MCP 服务器:MiniMax MCP 配置
- 智能体配置:压缩、终端等配置
- 环境变量:API 密钥等
- 浏览器配置:Chrome headless 设置
3.4 迁移结果
迁移完成后,我检查了迁移结果:
✓ Migrated:
soul → ~/.hermes/SOUL.md
user-profile → ~/.hermes/memories/USER.md
model-config → ~/.hermes/config.yaml
shared-skills → ~/.hermes/skills/openclaw-imports/aliyun
shared-skills → ~/.hermes/skills/openclaw-imports/evomap
shared-skills → ~/.hermes/skills/openclaw-imports/k8s
shared-skills → ~/.hermes/skills/openclaw-imports/minimax-cli
shared-skills → ~/.hermes/skills/openclaw-imports/minimax-multimodal-toolkit
shared-skills → ~/.hermes/skills/openclaw-imports/minimax-usage
shared-skills → ~/.hermes/skills/openclaw-imports/mysql
shared-skills → ~/.hermes/skills/openclaw-imports/sls-query
shared-skills → ~/.hermes/skills/openclaw-imports/synology-nas
daily-memory → ~/.hermes/memories/MEMORY.md
mcp-servers → config.yaml mcp_servers.MiniMax
agent-config → config.yaml agent/compression/terminal
env-var → .env HERMES_GATEWAY_TOKEN
full-providers → config.yaml custom_providers[minimax]
env-var → .env OPENAI_CUSTOM_API_KEY
full-providers → config.yaml custom_providers[openai-custom]
browser-config → config.yaml browser
总共迁移了 20 项内容,非常完整。
3.5 手动补充:Cron 定时任务
迁移工具没有自动迁移 Cron 定时任务(提示 “No cron configuration found”),需要手动创建:
# 创建定时任务
hermes cron create --name '每日内容选题策划' '0 8 * * *' '请执行每日内容选题策划任务...'
创建成功后,验证任务已添加:
hermes cron list
输出:
┌─────────────────────────────────────────────────────────────────────────┐
│ Scheduled Jobs │
└─────────────────────────────────────────────────────────────────────────┘
fae3f9b245a2 [active]
Name: 每日内容选题策划
Schedule: 0 8 * * *
Repeat: ∞
Next run: 2026-05-30T08:00:00+08:00
Deliver: local
4. 踩坑记录:迁移中的问题与解决方案
4.1 问题一:Python 环境限制
问题表现:
error: externally-managed-environment
× This environment is externally managed
问题根因:Debian 12+ 系统默认启用了 PEP 668,禁止直接使用 pip install 安装系统级 Python 包。
解决方案:
# 方案一:使用 --break-system-packages 标志
pip install --break-system-packages hermes-agent
# 方案二:先安装缺失的依赖
pip install --break-system-packages --ignore-installed pyyaml==6.0.3
pip install --break-system-packages --ignore-installed PyJWT==2.12.1
pip install --break-system-packages --ignore-installed rich==14.3.3
pip install --break-system-packages hermes-agent
4.2 问题二:模型名称格式错误
问题表现:
HTTP 400: Model name not specified, model name cannot be empty
问题分析:
通过查看请求 dump,发现发送到 API 的 model 字段为空:
{
"model": "",
"messages": [...]
}
问题根因:
OpenClaw 的配置格式是:
{
"models": {
"providers": {
"openai-custom": {
"models": [{"id": "GLM-5.1"}]
}
}
}
}
迁移后,HermesAgent 的配置变成了:
model:
default: openai-custom/GLM-5.1
provider: openai-custom
问题在于 openai-custom/GLM-5.1 这个格式。HermesAgent 的模型名称解析器会把 / 前面的部分当作提供商名称,后面的部分当作模型名称。但 openai-custom 不是标准的提供商名称,导致模型名称解析失败。
解决方案:
修改配置文件,使用纯模型名称:
model:
default: GLM-5.1
provider: openai-custom
base_url: http://your-api-endpoint/v1
api_key: your-api-key
4.3 问题三:Cron 任务未自动迁移
问题表现:迁移工具提示 “No cron configuration found”,但实际上 OpenClaw 有 1 个定时任务。
问题根因:迁移工具在查找 Cron 配置时,可能使用了不同的路径或格式检测逻辑。
解决方案:手动使用 hermes cron create 命令创建定时任务。
4.4 问题四:hermes-agent 命令无法正常工作
问题表现:使用 hermes-agent 命令时,模型名称始终为空。
问题根因:hermes-agent 是 npm 包的入口点,它可能没有正确加载配置。而 hermes 命令是完整的 CLI 入口,能够正确解析配置。
解决方案:始终使用 hermes 命令,而不是 hermes-agent。
5. 迁移后清理:彻底移除 OpenClaw
迁移完成并确认 HermesAgent 运行稳定后,建议彻底清理 OpenClaw 的残留文件,避免占用磁盘空间和产生潜在冲突。
6.1 停用并删除 systemd 服务
OpenClaw 安装时注册了 3 个 systemd 单元,需要逐一清理:
# 停止服务
systemctl stop openclaw-gateway.service openclaw-gateway-healthcheck.service openclaw-gateway-healthcheck.timer
# 禁用服务(防止开机自启)
systemctl disable openclaw-gateway.service openclaw-gateway-healthcheck.service openclaw-gateway-healthcheck.timer
# 删除服务文件
rm -f /etc/systemd/system/openclaw-gateway.service
rm -f /etc/systemd/system/openclaw-gateway-healthcheck.service
rm -f /etc/systemd/system/openclaw-gateway-healthcheck.timer
# 重新加载 systemd 配置
systemctl daemon-reload
6.2 卸载 npm 全局包
OpenClaw 是通过 npm 全局安装的,需要使用 npm 卸载:
# 卸载全局 npm 包
npm uninstall -g openclaw
# 删除可能残留的二进制链接
rm -f /usr/local/bin/openclaw
这一步会同时移除 559 个 npm 依赖包,释放不少磁盘空间。
6.3 删除旧备份脚本残留
如果之前有备份脚本的残留文件,也需要一并清理:
# 删除旧备份脚本的备份文件
rm -f /usr/local/bin/openclaw-backup.sh.bak.codex
6.4 清理 OpenClaw 数据目录
这是最关键的一步,也是释放空间最多的一步。OpenClaw 的所有数据都在 ~/.openclaw/ 目录下:
# 确认目录大小
du -sh ~/.openclaw/
# 删除 OpenClaw 数据目录
rm -rf ~/.openclaw/
注意:这一步会删除 OpenClaw 的所有数据,包括配置、记忆、技能、凭证等。请确保:
- HermesAgent 已经运行稳定,迁移数据完整
- 已经做过整机备份(如有需要可随时恢复)
- 已确认不需要回滚到 OpenClaw
6.5 验证清理结果
清理完成后,验证是否还有残留:
# 检查 ~/.openclaw 目录
ls ~/.openclaw 2>&1
# 预期输出:No such file or directory
# 检查二进制链接
which openclaw 2>&1
# 预期输出:空(未找到)
# 检查 npm 全局包
npm list -g openclaw 2>&1
# 预期输出:(empty)
# 检查 systemd 服务
systemctl list-unit-files | grep openclaw
# 预期输出:空(无匹配)
清理完成后,共释放约 1.1G 磁盘空间,系统中不再有任何 OpenClaw 残留。
6. 迁移后体验:HermesAgent 的新能力
6.1 更强大的会话搜索
HermesAgent 的 FTS5 全文搜索能力让我印象深刻。之前在 OpenClaw 中,如果想回忆起某次讨论的细节,需要手动翻阅历史记录。现在,只需要用自然语言提问,HermesAgent 就能从历史会话中找到相关信息。
6.2 自我改进的技能系统
HermesAgent 的技能系统最大的特点是:技能会从使用中自动学习和改进。
例如,我之前在 OpenClaw 中创建了一个 “synology-nas” 技能,用于管理群晖 NAS。迁移到 HermesAgent 后,每次我使用这个技能执行任务,HermesAgent 都会:
- 记录任务执行过程
- 分析成功和失败的原因
- 自动更新技能文档,添加新的最佳实践
这意味着,随着时间的推移,技能会变得越来越强大,而我几乎不需要手动维护。
6.3 更灵活的模型切换
HermesAgent 的模型管理面板,支持 300+ 种模型
HermesAgent 支持 300+ 种模型,切换非常方便:
# 切换到 Nous Portal
hermes setup --portal
# 切换到 OpenRouter
hermes model
# 切换到自定义端点
hermes model --provider openai-custom --model GLM-5.1
6.4 更现代的终端界面
HermesAgent 的 TUI 终端界面
HermesAgent 的 TUI(终端用户界面)非常现代:
- 多行编辑
- 命令自动补全
- 会话历史
- 流式输出
- 工具执行进度显示
HermesAgent CLI 界面布局
6.5 内置的 Cron 调度器
HermesAgent 内置了强大的 Cron 调度器,支持自然语言定时任务:
# 创建定时任务
hermes cron create --name '每日备份' '0 2 * * *' '执行数据库备份...'
# 查看任务列表
hermes cron list
# 查看任务执行日志
hermes cron logs
7. Q&A:常见问题解答
Q1:迁移会丢失数据吗?
A:不会。HermesAgent 的迁移工具会完整复制所有数据,不会删除源数据。而且,迁移前建议先做一次干运行(--dry-run),确认会迁移哪些内容。
Q2:迁移后 OpenClaw 还能用吗?
A:可以。迁移不会删除 OpenClaw 的数据,两个系统可以并行运行。但建议最终切换到一个系统,避免消息冲突。
Q3:迁移后需要重新配置所有东西吗?
A:大部分配置会自动迁移,包括:
- 模型配置
- API 密钥
- 技能
- 记忆
- 浏览器配置
- MCP 服务器
需要手动配置的:
- Cron 定时任务
- 某些特殊的消息平台配置
Q4:HermesAgent 的学习曲线如何?
A:如果你已经熟悉 OpenClaw,学习 HermesAgent 会非常容易。两者的概念非常相似:
- SOUL.md → SOUL.md(人格定义)
- Skills → Skills(技能)
- Memory → Memories(记忆)
- Cron → Cron(定时任务)
主要区别在于命令行接口和一些高级功能。
Q5:HermesAgent 支持哪些消息平台?
A:HermesAgent 支持以下消息平台:
- Telegram
- Discord
- Slack
- Signal
对于飞书和钉钉,可能需要通过 MCP 服务器或自定义集成来实现。
Q6:迁移后性能有变化吗?
A:在实际使用中,我没有感受到明显的性能差异。HermesAgent 的响应速度和 OpenClaw 相当,某些场景下甚至更快,特别是涉及跨会话搜索时。
Q7:如何回滚到 OpenClaw?
A:分两种情况:
情况一:尚未清理 OpenClaw 残留(参考第 5 章节)
- 停止 HermesAgent 的 Gateway
- 重新启动 OpenClaw 的 Gateway
- OpenClaw 的数据仍然在
~/.openclaw/目录,可以直接使用
情况二:已清理 OpenClaw 残留
- 停止 HermesAgent 的 Gateway
- 重新安装 OpenClaw:
npm install -g openclaw - 从整机备份中恢复
~/.openclaw/目录 - 重新注册 systemd 服务:
openclaw gateway install - 启动 OpenClaw Gateway:
openclaw gateway start
建议:在确认 HermesAgent 运行稳定之前,不要急于清理 OpenClaw 残留文件。建议至少观察 1-2 周后再执行清理操作。
8. 最佳实践与建议
8.1 迁移前的检查清单
- 备份
~/.openclaw/目录 - 确认目标机器的 Python 版本 >= 3.11
- 确认有足够的磁盘空间
- 先执行
--dry-run查看迁移预览 - 记录当前的 Cron 定时任务配置
8.2 迁移后的验证步骤
- 验证配置:
hermes config - 验证技能:
hermes skills list - 验证记忆:
hermes memory list - 验证定时任务:
hermes cron list - 测试对话:
hermes -z '你好,测试一下' - 测试 Gateway:
hermes gateway start - 清理 OpenClaw 残留:参考第 5 章节,彻底移除 OpenClaw
8.3 性能优化建议
- 启用压缩:在
config.yaml中启用上下文压缩 - 配置 FTS5:确保会话搜索使用 FTS5 索引
- 定期清理:使用
hermes sessions prune清理旧会话 - 监控资源:使用
hermes status监控系统资源
9. 总结
从 OpenClaw 迁移到 HermesAgent 是一次非常顺利的体验。HermesAgent 的 hermes claw migrate 命令让迁移过程变得几乎零门槛,大部分配置和数据都能自动迁移。
迁移后,我获得了:
- 更强大的会话搜索能力
- 自我改进的技能系统
- 更灵活的模型切换
- 更现代的终端界面
- 更活跃的社区支持
此外,迁移完成后,通过清理 OpenClaw 的残留文件(systemd 服务、npm 包、数据目录等),释放了约 1.1G 的磁盘空间,系统变得更加干净整洁。
如果你也在使用 OpenClaw,并且感受到了它的局限性,我强烈推荐尝试 HermesAgent。迁移过程简单、安全,而且能够立即获得更强大的能力。
参考资料
本文首次发布于 魔都水滴,作者:Margrop