AI 前沿

2026 便宜 VPS 部署 Hermes Agent Docker + Telegram 机器人:网关、配对与安全跑通

MacHTML Lab2026.05.29 约 16 分钟
2026 便宜 VPS 部署 Hermes Agent Docker + Telegram 机器人:网关、配对与安全跑通

Hermes AgentNousResearch/hermes-agent)专为每月约 5 美元的 VPS设计,而非只能跑在笔记本上。官方 Docker 镜像 nousresearch/hermes-agent 将所有状态写入宿主机挂载的 ~/.hermes:/opt/data 目录,gateway 进程在后台统一接入 Telegram、Discord、Slack 等平台。本文按步骤讲解在廉价 VPS 上安装 Docker、创建 Telegram 机器人、配置白名单安全策略,以及用 docker compose 持久运行。官方文档:Docker 用户指南消息网关团队 Telegram 助手教程

若你在 Apple 硬件上对比不同 Agent 框架,可阅读Hermes Agent 与 OpenClaw 在 macOS 与 Mac mini M4 上的对比。Telegram 长对话导致上下文膨胀后,可用Mac mini M4 上的 Hermes trajectory_compressor 记忆与 Token 调优。上述文章侧重本地预演;本页聚焦 Linux VPS + Docker 实现 Telegram 7×24 在线。

披露:MacHTML 提供可选的云 Mac mini 租用用于配置预演;本指南以 Linux VPS 与 Docker 为主,不强制使用 Mac。

为何在廉价 VPS 上用 Docker

Hermes 需要在你休息时仍持续在线的进程。笔记本合盖即断线;廉价 VPS(常见 1–2 vCPU2–4 GB 内存每月约 4–6 美元)可全天候运行 gateway run,不占用个人电脑。

对需要频繁部署的运维者,Docker 带来三项实际收益。其一,可复现安装:拉取 nousresearch/hermes-agent:latest,无需在每个新 VPS 上调试 Python 3.11、Node 与各发行版依赖。其二,隔离升级:更换容器镜像时保留宿主机 ~/.hermes,会话、记忆与 API 密钥不丢失。其三,可选 命令沙箱:设置 TERMINAL_BACKEND=docker,让 Agent 的 shell 工具在独立沙箱容器内执行,而非直接落在宿主机内核上。

Telegram 是验证整条链路最快的渠道。用 @BotFather 创建机器人,将 token 写入 ~/.hermes/.env,把你的数字用户 ID 加入 TELEGRAM_ALLOWED_USERS,数秒内即可发消息测试。网关默认策略拒绝未知用户;对具备终端能力的机器人切勿启用 GATEWAY_ALLOW_ALL_USERS=true

VPS 还提供稳定公网 IP 与可预期的在线时间,适合 cron 任务。Hermes 在 gateway 内每 60 秒 触发 cron;宿主机重启后,Compose 的 restart: unless-stopped 可自动恢复 gateway,无需人工介入。

与家庭 NAS 或树莓派相比,小型云 VM 通常对 Telegram API 与 LLM 提供商的出站连接更稳定,且云厂商快照便于灾备。务必 bind-mount ~/.hermes,在大版本升级前对该目录做快照。

若从中国大陆运维,请选择对 Telegram 与 LLM 端点出站稳定的区域,或规划代理路径。官方镜像从 Docker Hub 拉取;国内镜像加速可缓解慢链路,但镜像同步后应核对 digest。

Docker Compose 也便于团队协作:固定一份 compose 文件、一个数据目录与一套 pairing 流程,队友可在预发 VPS 上复现生产环境,再推广配置变更。

对只需 Telegram 私聊、不接 Dashboard 的个人用户,Minimum 规格往往足够;一旦启用 terminal.backend: docker 或多人管理,应升级到 Recommended 并监控内存峰值,避免 sandbox 容器与 gateway 争抢 RAM。

架构:容器内的 gateway

Internet → Telegram API → VPS:hermes container (gateway run)
                                              ↳ /opt/data  (bind-mount ~/.hermes)
                                                   ├─ .env          (TELEGRAM_BOT_TOKEN, API keys)
                                                   ├─ config.yaml   (terminal, models, cron)
                                                   ├─ sessions/     (per-chat history)
                                                   └─ memories/     (curated long-term memory)

gateway 是单一长驻进程,多路复用各消息平台。每个 Telegram 会话经 /opt/data/sessions/ 持久化,任务进入 Agent 循环,精选长期记忆写入 /opt/data/memories/。因 bind-mount ~/.hermes:/opt/data,上述状态均在宿主机上。

切勿将同一 /opt/data 挂载进两个 gateway 容器。会话文件不支持并发写入;双 gateway 共用数据目录会导致损坏与重复处理消息。生产模式是一个名为 hermes 的服务,command: gateway run

端口 8642 可选暴露 OpenAI 兼容 API 与健康检查端点。若仅使用 Telegram 可不发布该端口。启用时需设 API_SERVER_ENABLED=true,谨慎绑定地址,并以强 API_SERVER_KEY 与防火墙规则保护。

VPS 规格与成本

Telegram 流量稳定后,gateway 内存通常是首要瓶颈。Agent 容器持有模型上下文;启用 terminal.backend: docker 时沙箱容器会额外占用资源。磁盘随会话历史、技能包与记忆文件增长——cron 任务累积日志前请预留空间。

下表列出四种常见配置。Recommended 适合需要 shell 工具或多管理员;Budget lab 仅用于短时 pairing 验证,上线前务必升配。

配置vCPU内存磁盘月费参考适用场景
最低12 GB20 GB约 $4–5仅 Telegram 网关,无 Dashboard,单用户
推荐24 GB40 GB约 $6–8Gateway + TERMINAL_BACKEND=docker 沙箱 shell 工具
高配2+8 GB60 GB约 $12+Dashboard、cron、大型 skills 树、多管理员
预算实验11 GB15 GB约 $3–4仅冒烟测试与 pairing 验证,非生产

分步操作手册

  1. 在 VPS 上安装 Docker — Ubuntu 22.04 及以上执行 apt 安装 docker.io 与 docker-compose-v2,将用户加入 docker 组以便无需 sudo 运行 compose。
    sudo apt update && sudo apt install -y docker.io docker-compose-v2
                    sudo usermod -aG docker $USER
                    newgrp docker
  2. 创建持久化数据目录 — 所有密钥、会话与配置位于宿主机 ~/.hermes;升级镜像前请备份该目录。
    mkdir -p ~/.hermes
  3. 运行一次性交互 setup — 拉取 nousresearch/hermes-agent 并挂载 ~/.hermes:/opt/data,让向导写入 .env 与 config.yaml。
    docker run -it --rm                   -v ~/.hermes:/opt/data                   nousresearch/hermes-agent setup
  4. 创建 Telegram 机器人与白名单 — 用 @BotFather 获取 bot token,@userinfobot 查数字用户 ID。网关默认拒绝未知用户——具备终端权限时切勿设 GATEWAY_ALLOW_ALL_USERS=true。
    TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz
                    TELEGRAM_ALLOWED_USERS=987654321
  5. 批准 DM pairing 码(可选) — 若未预填白名单,未知用户会收到一小时有效的 pairing 码;在宿主机用 pairing approve 批准。
    docker run --rm -v ~/.hermes:/opt/data nousresearch/hermes-agent pairing approve telegram XKGH5N7P
  6. 前台 smoke-test gateway run — 交互式启动 gateway run,向机器人发送 /help,确认 /model、/compress 等命令后再上生产。
    docker run --rm -it                   -v ~/.hermes:/opt/data                   nousresearch/hermes-agent gateway run
  7. 用 Docker Compose 部署(生产) — 使用 restart: unless-stopped,bind-mount ~/.hermes:/opt/data,并限制内存/CPU,防止失控 Agent 拖垮 VPS。
    services:
                      hermes:
                        image: nousresearch/hermes-agent:latest
                        container_name: hermes
                        restart: unless-stopped
                        command: gateway run
                        volumes:
                          - ~/.hermes:/opt/data
                        deploy:
                          resources:
                            limits:
                              memory: 4G
                              cpus: "2.0"
    docker compose up -d
                    docker logs -f hermes
  8. 加固团队机器人的终端访问 — 在 config.yaml 设置 terminal.backend: docker,让 shell 工具在沙箱容器内运行而非宿主机内核。
    # ~/.hermes/config.yaml excerpt
                    terminal:
                      backend: docker
                      container_cpu: 1
                      container_memory: 5120
                      container_persistent: true

故障排查

机器人无回复,日志出现 Telegram 401

@BotFather 重新生成 token,更新 ~/.hermes/.env 中的 TELEGRAM_BOT_TOKEN,再执行 docker compose restart hermes。改名或撤销 token 后未更新是最常见的静默失败原因。

未授权消息或 endless pairing 提示

将个人数字 ID(非 bot ID)加入 TELEGRAM_ALLOWED_USERS,或运行 pairing approve telegram <code>。确认仅一个 gateway 容器挂载 ~/.hermes;重复 gateway 会竞争会话文件并误拒合法用户。

需要限定仓库读取、npm test 与受控自动修复?阅读 2026 Hermes Agent MCP 对接 Claude Opus 4.8:合规本地代码演练场

常见问题

能否在 Mac mini 而非 VPS 上跑 Hermes Docker?

可以——相同的 docker run 与 compose 模式适用于 Docker Desktop 或 Colima。纯 Telegram 7×24 场景 VPS 通常更便宜;需要本地 Apple 工具链或 Xcode 相关技能时 Mac mini M4 更合适。MacHTML 云 Mac 预演为可选项,非本 VPS 指南必需。

必须暴露 8642 端口吗?

仅 Telegram 聊天时不需要。仅在需要 OpenAI 兼容 API 或外部健康检查时启用 8642,并设置 API_SERVER_ENABLED=trueAPI_SERVER_HOST=0.0.0.0、足够强度的 API_SERVER_KEY 及防火墙规则。

与站内 OpenClaw Telegram 指南有何不同?

OpenClaw 文章面向云 Mac 上的 Node.js gateway 安装。Hermes 使用 hermes gateway 与原生 Telegram 适配器,文档以 Nous Research 的 Docker 方案为主。

应优先测试哪些斜杠命令?

首次成功回复后发送 /status/model/compress/new。管理员可执行受控命令;普通用户受 gateway 白名单限制。

在云端 Mac mini 上预演 Hermes

租用常驻 Mac mini M4,在本地验证 Docker 配置、Telegram 配对与斜杠命令,再把同一 ~/.hermes 目录推广到生产 VPS。

Mac 上的 Agent 沙箱
常驻预演环境