安装指南
Hermes Agent 安装与配置中文完整指南
用一个 docker-compose 文件把 Hermes Agent 跑起来,附完整 hermes.json 配置示例、凭证目录踩坑点、TLS 反向代理方案,以及哪些字段改了必须重启。如果你只想用但不想自己运维,文末有托管方案。
准备工作
- 一台 Linux 服务器(Debian / Ubuntu 皆可),至少 2 GB 内存,推荐 4 GB
- Docker Engine 24+ 以及
docker compose插件(v2) - 一个指向该服务器的公网域名(仅当你要对外开放 Web UI 时需要)
- 一个 OpenRouter / Anthropic / OpenAI 的 API Key
- Telegram Bot Token(如果你要接 Telegram,大多数人都会接)
目录结构
所有文件集中到一个目录下,方便打包备份:
/opt/hermes/
docker-compose.yml
hermes.json # agent 主配置
credentials/ # 各渠道的 session 文件
data/ # 记忆、技能状态
logs/
docker-compose.yml 一键部署
services:
hermes:
image: ghcr.io/nousresearch/hermes-agent:latest
container_name: hermes
restart: unless-stopped
ports:
- "127.0.0.1:8642:8642" # 仅绑定本机,Caddy 做 TLS
environment:
OPENROUTER_API_KEY: "${OPENROUTER_API_KEY}"
TELEGRAM_BOT_TOKEN: "${TELEGRAM_BOT_TOKEN}"
volumes:
- ./hermes.json:/app/hermes.json:ro
- ./credentials:/root/.hermes/credentials
- ./data:/root/.hermes/data
- ./logs:/root/.hermes/logs
几个关键点:
- 端口绑定到
127.0.0.1:永远不要直接把 8642 暴露到公网,一定要在前面放一层 Caddy / Nginx 做 HTTPS。 credentials/必须提前创建:否则 Telegram 配对会静默丢消息(最常见的坑)。- 配置文件用
:ro挂载:防止容器把 hermes.json 改掉。 - 生产环境请固定镜像版本:比如
v2026.4.16,不要用:latest。
hermes.json 最小可用配置
{
"gateway": {
"host": "0.0.0.0",
"port": 8642,
"auth": { "token": "换成一长串随机字符串" },
"controlUi": { "allowInsecureAuth": true }
},
"models": {
"default": "openrouter/anthropic/claude-sonnet-4.6",
"providers": {
"openrouter": { "apiKey": "${OPENROUTER_API_KEY}" }
}
},
"channels": {
"telegram": {
"enabled": true,
"token": "${TELEGRAM_BOT_TOKEN}",
"dmPolicy": "pairing"
}
},
"plugins": {
"entries": {
"telegram": { "enabled": true }
}
}
}
后面想加 Discord、WhatsApp、飞书 或 微信,在这里继续开启对应的 channels.X 和 plugins.entries.X。两处都要开,少一处渠道启动不了。
首次启动
mkdir -p /opt/hermes/credentials /opt/hermes/data /opt/hermes/logs
cd /opt/hermes
cp docker-compose.yml hermes.json .
export OPENROUTER_API_KEY=...
export TELEGRAM_BOT_TOKEN=...
docker compose up -d
docker compose logs -f hermes
正常的日志最后应看到 gateway 监听在 8642、telegram plugin 已连接。如果看到“credentials dir missing”或反复的 channels login 警告,基本都是 credentials/ 挂载没搞对,处理好再重启即可。
用 Caddy 加上 HTTPS
在同一份 docker-compose.yml 里加上 Caddy,自动申请证书:
caddy:
image: caddy:2
container_name: caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
volumes:
caddy_data:
caddy_config:
一行 Caddyfile:
hermes.example.com {
reverse_proxy hermes:8642
}
DNS 解析指过来,docker compose up -d,Web UI 就能在 https://hermes.example.com/ui 打开,证书自动续期。
常见坑
- 生产用
:latest— 两次重启之间上游一更新你的配置就炸了,务必固定版本。 - 忘挂
credentials/— Telegram 看似能配对,但消息全丢。 - 不做反向代理 — gateway 本身是明文 HTTP,token 会被抓走。
- 以为改完配置就生效 —
gateway.auth、plugins.*改了必须重启;热更新只覆盖 channels、models、agents。 - 默认 token 不换 — 示例里的 token 全网都知道,一定要生成一长串随机字符串。
备份
一条 tar 命令搞定:
tar czf /opt/backups/hermes-$(date +%F).tar.gz \
-C /opt/hermes credentials data hermes.json
credentials/ 里是各渠道的登录态,一定要加密存储。
不想自己运维?用 OpenClaw Launch
上面那套东西跑起来不难,跑稳才难 — 证书续期、镜像版本、渠道插件安装、凭证备份、监控、OOM 凌晨救火,都是你的。 Hermes 托管 直接在 OpenClaw Launch 上跑同一套 Hermes Agent 网关:同样的配置、同样的渠道、同样的技能,配上 warm pool、自动 HTTPS、备份,一键 10 秒部署。首月 $3,之后 $6/月。
下一步
- Hermes Agent 中文介绍 — 先搞清楚 Hermes 到底是什么
- Hermes Agent Web UI — 自带的浏览器控制台怎么用
- Hermes Agent 接入飞书 — 国内办公场景最常用
- 搭建智能体中文指南 — 选型思路