最近我从 OpenClaw 切换到 Hermes Agent 使用,需要把原先 OpenClaw 上已经安装好的技能全部迁移到 Hermes Agent。这篇文章我把自己实际迁移过程和遇到的问题都记录下来,希望能帮到有同样需求的朋友。
Hermes Agent 的技能默认从
~/.hermes/skills/ 目录加载,而 OpenClaw 的技能通常存放在 ~/.openclaw/workspace/skills/ 或者安装目录下。迁移过程很简单:
- 找到 OpenClaw 原技能目录
- 复制整个技能目录到
~/.hermes/skills/ - 适配配置信息,将 API/账号密码信息写入配置文件
- 测试技能是否能正常加载和使用
🔍 第一步:找到原技能存放位置
如果找不到技能,可以用 find 全局搜索:
find /opt/1panel/apps/openclaw/openclaw/data/workspace/skills -name "skill-name"
我这里原来 OpenClaw 的技能都在 /opt/1panel/apps/openclaw/openclaw/data/workspace/skills/ 目录下。
📦 第二步:复制技能到 Hermes 目录
逐个复制,以 wordpress 技能为例:
# 以 wordpress 技能为例
mkdir -p ~/.hermes/skills/wordpress
cp -r /path/to/openclaw/skills/wordpress/* ~/.hermes/skills/wordpress/
✅ 第三步:验证 Hermes 能否正常加载
复制完成后,在 Hermes Agent 中测试加载:
skill_view(name="wordpress")
如果能正常读出技能说明,说明目录结构正确,已经可以被 Hermes 识别。
⚙️ 第四步:统一管理配置信息
Hermes 推荐将所有技能的配置信息统一存放在 ~/.hermes/skills-config.json,格式如下:
{
"skills": {
"entries": {
"skill-name": {
"env": {
"API_KEY": "***"
}
}
}
}
}
这样做的好处是所有配置集中管理,完全脱离 OpenClaw 独立存在。
🛠️ 第五步:修改脚本读取配置的路径
如果原技能脚本是从 ~/.openclaw/openclaw.json 读取配置,需要修改路径到 ~/.hermes/skills-config.json。以 amap-traffic 为例:
# 修改前
config_paths = [
"/home/admin/.openclaw/openclaw.json",
os.path.expanduser("~/.openclaw/openclaw.json")
]
# 修改后
config_paths = [
os.path.expanduser("~/.hermes/skills-config.json")
]
📋 本次迁移完成的技能清单
本文完成时,共迁移了 12 个常用技能:
| 技能名 | 用途 | 是否需要 API |
| agent-browser | 浏览器自动化 | 否 |
| amap-traffic | 高德地图路况查询 | 是(高德 API Key) |
| wordpress | WordPress REST API 操作 | 是(应用密码) |
| github | GitHub 命令行交互 | 否 |
| markdown-converter | 文档转 Markdown | 否 |
| ontology | 结构化知识图谱 | 否 |
| skill-finder-cn | ClawHub 技能搜索 | 否 |
| word-docx | Word 文档编辑 | 否 |
| nas-website-edit | NAS 网站首页维护 | 是(FTP 账号) |
| humanizer-enhanced | AI 写作去痕迹 | 否 |
| email-receiver | 邮件收取 | 是(IMAP 密码) |
| email-sender | 邮件发送 | 是(SMTP 密码) |
🔧 常用技能配置参考
📍 amap-traffic(高德地图)
"amap-traffic": {
"apiKey": "***"
}
🌐 WordPress
"wordpress": {
"env": {
"WP_BASE_URL": "https://your-blog.com",
"WP_USER": "username",
"WP_APP_PASSWORD": "application-password"
}
}
📥 邮件收取
"email-receiver": {
"enabled": true,
"env": {
"EMAIL_IMAP_HOST": "imap.qq.com",
"EMAIL_IMAP_PORT": "993",
"EMAIL_IMAP_USER": "your@email.com",
"EMAIL_IMAP_PASS": "password-or-auth-code"
}
}
📤 邮件发送
"email-sender": {
"enabled": true,
"env": {
"EMAIL_SMTP_HOST": "smtp.qq.com",
"EMAIL_SMTP_PORT": "465",
"EMAIL_SMTP_USER": "your@email.com",
"EMAIL_SMTP_PASS": "password-or-auth-code"
}
}
🖥️ NAS 网站维护
"nas-website-edit": {
"enabled": true,
"env": {
"FTP_HOST": "your-domain.com",
"FTP_PORT": "21",
"FTP_USER": "username",
"FTP_PASS": "password",
"FTP_BASE_PATH": "/home/yourname/work",
"WEB_DIR": "/web"
}
}
⚠️ 迁移过程需要注意这些问题
通过 skillhub.cn 安装的技能默认会放在
~/.hermes/hermes-agent/skills/ 目录下,Hermes Agent 无法从这里加载,必须手动移动到 ~/.hermes/skills/ 才能正常识别。
建议把所有技能配置都集中放在
~/.hermes/skills-config.json,这样完全脱离 OpenClaw,便于维护。
修改配置后一定要验证 JSON 格式是否正确:
python3 -c "import json; json.load(open('/home/nicky/.hermes/skills-config.json')); print('OK')"
每迁移完一个技能都要测试加载,确认可以正常使用再进行下一个。
📁 迁移完的目录结构
迁移完成后的目录结构:
/home/nicky/.hermes/
├── skills/
│ ├── agent-browser/
│ ├── amap-traffic/
│ ├── wordpress/
│ ├── github/
│ ├── markdown-converter/
│ ├── ontology/
│ ├── skill-finder-cn/
│ ├── word-docx/
│ ├── nas-website-edit/
│ ├── humanizer-enhanced/
│ ├── email-receiver/
│ └── email-sender/
└── skills-config.json
所有技能和配置都在 Hermes 目录下,完全独立,不再依赖 OpenClaw。
🧪 测试验证功能正常
迁移完成后,可以测试一下关键技能是否正常工作。比如测试高德路况:
cd ~/.hermes/skills/amap-traffic/scripts
python3 amap_traffic.py "起点地址" "终点地址"
如果能正常输出路线和路况信息,说明配置读取成功,技能工作正常。
📌 总结一下
- 复制技能目录到正确位置
- 统一集中管理配置
- 修改读取路径
- 测试验证
按照这个方法,我顺利把 12 个 OpenClaw 技能全部迁移到 Hermes Agent,现在可以正常使用了。Hermes Agent 的加载机制更清晰,配置管理也更灵活,使用体验很好。
希望这篇迁移指南能帮助到需要的朋友。
本文记录个人实战迁移经验,基于 Hermes Agent 最新版本测试通过