前言
上周,两位开发同学因为一台机器吵了起来:到底装 Hermes,还是装 OpenClaw?
我听完愣了一下:为什么不全都要?
于是,我自己动手把 Hermes Agent 和 OpenClaw 都装了一遍。先说结论:可以共存,而且搭配起来很好用。
不过,安装过程中也遇到了几个只有真正跑过一遍才会碰到的问题,例如模型配置没有完全切换、PATH 没对齐、pnpm 明明装成功却找不到命令,以及 OpenClaw UI 构建失败但安装脚本仍然提示完成。
这篇文章记录完整安装流程,也把我踩过的坑集中整理出来,方便以后重装时直接抄作业。
Hermes和OpenClaw什么关系?
第一次听到 Hermes Agent 和 OpenClaw,我们会下意识把它们当成竞品。
其实两者并不是完全互斥的竞品,也不是泾渭分明的上下游。它们都有工具调用、记忆和消息渠道能力,只是侧重点不同:Hermes 更强调持续学习、技能沉淀和深度任务执行;OpenClaw 更强调自托管 Gateway、多渠道接入与个人助理体验。
| 对比项 | Hermes Agent | OpenClaw |
|---|---|---|
| 典型场景 | 本地终端交互、工程任务执行、脚本编写、长期积累上下文 | 接入聊天渠道、运行 Gateway、提供 Web 控制台、承接自动化任务 |
| 核心优势 | 分层长期记忆:MEMORY.md、SQLite 会话归档、Skills 技能库;本地 FTS 召回速度快;适合持续积累上下文 | 原生支持 Telegram、Discord、WhatsApp 等渠道;支持语义向量记忆搜索;提供 Web 控制台;跨渠道共享用户偏好 |
| 记忆特点 | 热记忆与冷检索结合,主动提醒 Agent 存档,越用越熟悉你的工作方式 | Markdown 记忆文件与向量混合检索结合,不同渠道的对话进入同一记忆池 |
| 配置目录 | ~/.hermes | ~/.openclaw |
| 启动方式 | 通过 hermes 进入 REPL | 通过 openclaw gateway 启动服务 |
| 更像什么 | 一个坐在你旁边、能直接干活的工程师同事 | 一个随时在线、帮你接收消息和调度任务的私人助理 |
打个比方:Hermes 更像坐在你工位旁边的工程师同事,记得你上周讨论过什么,也擅长写脚本、执行任务;OpenClaw 更像一个能够接入 Telegram、钉钉和定时任务的私人助理,你在哪里,它就在哪里。
一个负责“动手”,一个负责“接话”。 配置文件也分别放在不同目录,不会互相打架。
机器与环境要求
我在以下环境中跑通过,供参考:
- Ubuntu 22.04 / 24.04
- Debian 11 / 12
- Fedora 38+
- Arch Linux
- WSL2
使用 WSL2 时,建议直接在 WSL 环境内部安装,不要在 Windows 原生 PowerShell 中硬装 Linux 版本。
硬件建议
| 项目 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 2 核 | 4 核及以上 |
| 内存 | 2 GB | 4 GB 及以上;如果 VPS 只有 1 GB,可以使用后文的 Swap 补救方案 |
| 磁盘 | 20 GB | 建议使用 SSD;编译 OpenClaw UI 时会产生较多临时文件 |
检查git 和 curl
安装脚本会自动拉取源码和依赖,但在开始之前,需要确认系统中已经安装 git 和 curl:
git:用于从 GitHub 克隆 Hermes 和 OpenClaw 源码。没有它,安装脚本会直接报错退出。curl:用于下载远程安装脚本。后面的curl -fsSL ... | bash就依赖它。
git --version
curl --version如果两条命令都能正常输出版本号,可以直接进入下一步。
如果提示 command not found,根据 Linux 发行版安装依赖:
# Ubuntu / Debian
sudo apt update && sudo apt install -y git curl build-essential
# Fedora
sudo dnf install -y git curl gcc gcc-c++ make
# Arch Linux
sudo pacman -S --needed git curl base-devel安装完成后,再执行一次:
git --version
curl --version安装脚本还会自动准备以下运行时,通常不需要手动处理:
- Hermes:Python 3.11(由 uv 管理)、Node.js 22、uv、ripgrep、ffmpeg
- OpenClaw:Node.js 24(最低兼容版本为 Node.js 22.19+)、pnpm、前端构建链
安装 Hermes
执行官方安装脚本:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash也可以使用 GitHub 源:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash安装完成后,执行 hermes 进入交互向导,也可以直接手动配置 LLM。
hermes config set model.provider custom
hermes config set model.base_url https://dashscope.aliyuncs.com/compatible-mode/v1
hermes config set model.api_key "sk-你的百炼密钥"
hermes config set model.default qwen-plus最后一行 model.default 千万不要漏掉。
我第一次安装时就漏了这一项。结果 Hermes 仍然请求安装时默认的 Claude 路由,最终报错:
HTTP 404 model is not found我对着配置文件看了好几分钟,才反应过来默认模型根本没有切换成功。
模型 ID 可以按需替换,例如:
qwen-plusqwen-maxqwen-flash
完整列表可以查看 百炼模型文档。
安装完成后的关键目录:
~/.hermes/ # 配置与数据
~/.local/bin/hermes # CLI 入口安装 OpenClaw
执行官方安装脚本:
curl -fsSL https://openclaw.ai/install.sh | bash安装完成后,运行 Onboarding 向导,并注册系统服务:
openclaw onboard --install-daemon如果希望用户退出登录后 Daemon 仍然继续运行,可以执行:
loginctl enable-linger "$USER"OpenClaw 的模型配置位于:
~/.openclaw/openclaw.json在 models.providers 中新增一个 DashScope 配置项:
{
"models": {
"providers": {
"dashscope": {
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"apiKey": "sk-你的百炼密钥",
"api": "openai-completions",
"models": [
{
"id": "qwen-plus",
"name": "Qwen Plus",
"reasoning": false,
"contextWindow": 131072,
"maxTokens": 8192
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "dashscope/qwen-plus"
}
}
}
}同时,确保 Gateway 模式设置为 local:
openclaw config set gateway.mode local注意: DashScope 接口不支持 OpenAI 的developer角色。配置中建议保持reasoning: false。如果遇到 HTTP 400 报错,可以先检查 OpenClaw 版本是否过旧,或者参考 相关兼容修复说明。
安装完成后的关键目录:
~/.openclaw/ # 配置与数据
~/.local/bin/openclaw # CLI 入口关键问题:PATH 对齐
Hermes 安装过程中,会把 npm 全局 Prefix 改到:
~/.hermes/node随后,OpenClaw 安装脚本会执行:
npm install -g pnpm@10问题在于:pnpm 可能已经安装成功,但 command -v pnpm 仍然找不到命令。原因并不是安装失败,而是对应的 bin 目录没有加入当前 Shell 的 PATH。
如果遇到:
pnpm installation failed不要反复重装,先执行:
export PATH="$HOME/.hermes/node/bin:$HOME/.local/bin:$PATH"
corepack enable
corepack prepare pnpm@10 --activate
npm install -g pnpm@10然后重新运行 OpenClaw 安装脚本。
这不是你的操作问题,而是两个安装器之间的 PATH 默契没有对齐。
启动与验证
刷新 Shell 环境
安装脚本会向 PATH 中添加新目录,但当前终端不一定已经加载最新配置。
执行:
source ~/.bashrc # 如果使用 zsh,请改为 source ~/.zshrc
hermes --version
openclaw --version两个命令都能正常输出版本号,才算安装完成。
启动服务
建议先启动 OpenClaw Gateway:
nohup openclaw gateway --verbose > ~/.openclaw/gateway.log 2>&1 &打开浏览器控制台:
openclaw dashboard # 默认地址:http://localhost:18789启动 Hermes:
hermes也可以只执行一次命令,完成后立即退出:
hermes -z "列出当前目录下所有 .py 文件"健康检查
安装完成后,建议跑一遍完整检查:
# Hermes 是否真的连上模型
hermes config get model.default
hermes -z "回复 OK 就行"
# OpenClaw Gateway 是否正常运行
openclaw gateway status
openclaw config get gateway.mode
curl -s http://localhost:18789/health
# 从进程和端口层面再次确认
ps aux | grep -E 'hermes|openclaw'
ss -tlnp | grep 18789我习惯在安装后执行一遍这套检查,而不是只看日志末尾的:
Installation Complete!因为有时候,这句话只能说明“脚本执行结束了”,并不代表 UI 构建成功,也不代表 Gateway 真的可以启动。
踩坑博物馆
这部分是整篇文章里最值得保留的内容:下面的问题,都是我实际安装过程中踩出来的。
坑 1:Hermes 报错 404 model is not found
原因: model.default 没有设置,或者模型 ID 与 Provider 对不上。
解决方法:
hermes config set model.default custom/qwen-plus坑 2:OpenClaw 提示 Control UI assets not found
情况 A:从源码安装
进入源码目录后补充构建:
pnpm install
pnpm ui:build
pnpm build情况 B:通过官方脚本或 npm 全局安装
优先升级或重新安装 OpenClaw。若问题出现在刚发布的新版本中,可以查看官方 Issue,并临时回退到已验证可用的版本。
坑 3:Gateway start blocked — set gateway.mode=local
直接执行:
openclaw config set gateway.mode local坑 4:hermes: command not found
原因: 当前 Shell 没有刷新 PATH。
临时生效:
export PATH="$HOME/.local/bin:$HOME/.hermes/node/bin:$PATH"永久写入:
echo 'export PATH="$HOME/.local/bin:$HOME/.hermes/node/bin:$PATH"' >> ~/.bashrc坑 5:GitHub 克隆超时(国内网络环境,可选)
可以为 Git 配置代理地址:
git config --global url."https://ghproxy.cn/https://github.com".insteadOf "https://github.com"若要恢复配置:
# 恢复默认 GitHub 地址
git config --global --unset-all \
url."https://ghproxy.cn/https://github.com".insteadOf坑 6:1 GB VPS 编译 OpenClaw 时 OOM
如果 VPS 内存不足,可以增加 Swap:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstabDocker用户(可选)
原生安装的开发体验更好。如果需要隔离环境,或者准备部署到生产环境,也可以使用 Docker。
Hermes
mkdir -p ~/.hermes
docker run -it --rm \
-v ~/.hermes:/opt/data \
nousresearch/hermes-agent setup
docker run -d \
--name hermes \
--restart unless-stopped \
-v ~/.hermes:/opt/data \
-p 8642:8642 \
nousresearch/hermes-agent gateway run将 API 服务暴露到外部网络时,需要额外考虑鉴权和安全配置。
OpenClaw
OpenClaw 的镜像与 Compose 方案更新较快,建议直接以 官方文档 为准。
卸载与清理
如果体验后觉得不合适,或者准备彻底重装,可以执行:
# Hermes
hermes uninstall
# OpenClaw:清理服务、状态与工作区
openclaw uninstall --all
# 如果 OpenClaw 是通过 npm 全局安装,可继续移除 CLI
npm uninstall -g openclaw# 停止 OpenClaw
openclaw gateway stop 2>/dev/null || pkill -f "openclaw gateway"
# 删除 Hermes
rm -rf ~/.hermes ~/.local/bin/hermes
# 删除 OpenClaw
rm -rf ~/.openclaw ~/.local/bin/openclaw一键抄作业
# 安装 Hermes
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
# 安装 OpenClaw
curl -fsSL https://openclaw.ai/install.sh | bash
openclaw onboard --install-daemon
# 启动 OpenClaw Gateway
openclaw gateway --verbose &
# 启动 Hermes
hermes
# 打开控制台
openclaw dashboard
# 验证
hermes -z "ping"
openclaw gateway status总结
Hermes 和 OpenClaw 安装在同一台 Linux 机器上,技术上没有明显障碍:配置目录分开,默认端口不冲突,进程也各自独立运行。
真正花时间的地方,主要集中在两类问题:
- LLM 配置是否完全切换成功。
- 两个安装器之间的
PATH、npm Prefix 和pnpm是否对齐。
我的建议是:先安装 Hermes,再安装 OpenClaw。
如果遇到 pnpm 找不到命令,按照前面的步骤补齐 PATH 即可。安装完成后,务必跑一遍健康检查,不要只相信日志末尾那句 Installation Complete!。
TIPS
如果不想分别安装和排查问题,可以尝试 Agent Pack。这是 OpenSenseNova 提供的统一安装器,用于把 Hermes 和 OpenClaw 串到同一条安装链路中。
它的主要特点包括:
- 一次交互,双端安装: 选择
Both后,可以同时安装 Hermes 和 OpenClaw。 - LLM 配置前置: 安装开始前填写 Provider 与 API Key,安装结束后即可使用。
- 自动处理常见共存问题: 包括
pnpm的PATH冲突、gateway.mode默认值,以及 UI 构建失败后的重试。 - 国内网络环境适配: 自动探测 CN 环境,必要时切换 apt、npm 和 GitHub 镜像。
- 支持非交互模式: 适合 VPS 或脚本化部署,不需要一直盯着终端。
对于第一次上手,或者不想逐项排查安装器兼容问题的用户,这种统一安装方式会更省心。
具体用法请查看 Agent Pack 仓库。
接入 Telegram、钉钉、飞书与企业微信
Hermes 和 OpenClaw 都可以接入即时通信平台。不同平台的机器人创建方式、鉴权参数和事件订阅机制差异较大,建议直接以官方文档或对应 GitHub 文档为准: