Hermes Agent(NousResearch/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 vCPU、2–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 | 記憶體 | 磁碟 | 月費參考 | 適用情境 |
|---|---|---|---|---|---|
| 最低 | 1 | 2 GB | 20 GB | 約 $4–5 | 僅 Telegram 閘道,無 Dashboard,單一使用者 |
| 推薦 | 2 | 4 GB | 40 GB | 約 $6–8 | Gateway + TERMINAL_BACKEND=docker 沙箱 shell 工具 |
| 高規格 | 2+ | 8 GB | 60 GB | 約 $12+ | Dashboard、cron、大型 skills 樹、多管理員 |
| 預算實驗 | 1 | 1 GB | 15 GB | 約 $3–4 | 僅冒煙測試與 pairing 驗證,非正式環境 |
逐步操作手冊
- 在 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 - 建立持久化資料目錄 — 所有金鑰、工作階段與設定位於主機 ~/.hermes;升級映像前請備份該目錄。
mkdir -p ~/.hermes - 執行一次性互動 setup — 拉取 nousresearch/hermes-agent 並掛載 ~/.hermes:/opt/data,讓精靈寫入 .env 與 config.yaml。
docker run -it --rm -v ~/.hermes:/opt/data nousresearch/hermes-agent setup - 建立 Telegram 機器人與白名單 — 用 @BotFather 取得 bot token,@userinfobot 查數字使用者 ID。閘道預設拒絕未知使用者——具終端權限時切勿設 GATEWAY_ALLOW_ALL_USERS=true。
TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz TELEGRAM_ALLOWED_USERS=987654321 - 核准 DM pairing 碼(選用) — 若未預填白名單,未知使用者會收到一小時有效的 pairing 碼;在主機以 pairing approve 核准。
docker run --rm -v ~/.hermes:/opt/data nousresearch/hermes-agent pairing approve telegram XKGH5N7P - 前景 smoke-test gateway run — 互動式啟動 gateway run,向機器人傳送 /help,確認 /model、/compress 等指令後再上線。
docker run --rm -it -v ~/.hermes:/opt/data nousresearch/hermes-agent gateway run - 以 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 - 強化團隊機器人的終端存取 — 在 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=true、API_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 白名單限制。