← Hermes Agent 中文介绍

安装指南

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.Xplugins.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.authplugins.* 改了必须重启;热更新只覆盖 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 网关,不用自己搞 Docker 和 TLS,10 秒部署。

立即部署