AI / 自動化

2026-05-28 租用 Mac mini M4 設定 Hermes Agent Telegram 閘道(港/日/韓/新/美

可在已透過 SSH 構建 iOS 應用的同一台 Mac mini M4 上,將 Hermes Agent 設定為 Telegram 機器人。閘道程序(hermes gateway)保存 BotFather 令牌、執行數位使用者 ID 白名單,並把聊天訊息轉發進 Hermes 工具迴圈——無需常開筆電,也能在手機上審批 CI 修復或詢問架構問題。

披露:MacXCode 在港/日/韓/新/美及台灣節點營運租用 Apple Silicon 雲端 Mac。Hermes Agent 為第三方 MIT 專案;Telegram 與模型 API 受各自服務商條款約束。本文為運維文件,不構成對任何廠商訂閱的背書。

若需 Modal/Daytona 無伺服器終端後端與近零算力方案,請參閱Hermes Serverless Modal/Daytona 冬眠指南

租用 Mac mini M4 雲端 Mac 上的 Hermes Agent Telegram 閘道設定

為何在構建機上使用 Telegram

Telegram 適合無頭租用主機:閘道預設使用出站長輪詢,由 Mac 主動發起對 Telegram API 的 HTTPS 連線,無需在共享構建機上暴露入站連接埠(與需要公網 HTTPS 入口的 webhook 模式相對)。

團隊在租用主機上為 Hermes 接入 Telegram 的常見原因:

  • 值班排障——GitHub Actions 或 xcodebuild 夜間失敗時,在手機上回覆,由 agent 在 NVMe 上讀取日誌。
  • 職責分離——用 OpenClaw 做儲存庫自動化、Hermes 做個人/運維聊天;僅當你接受兩個閘道程序(RAM 與令牌隔離)時再並行。
  • 從 OpenClaw 訊息能力遷移——上游 README 記載 hermes claw migrate;在同一台 16 GB 主機上同時跑兩個閘道前,請先閱讀我們的 Hermes 對比 OpenClaw 與 OpenHuman 選型矩陣。

Apple Mac mini 規格16–24 GB 統一記憶體。在疊加 Xcode 並行測試前,請為 hermes gateway 與模型工作集預留約 1–2 GB。港/日/韓/新/美及台灣節點出口頻寬可穩定承載 Telegram 輪詢;勿將 bot token 提交到 git。

Telegram 閘道如何協同工作

Hermes 將 CLI 對話hermes TUI)與訊息閘道hermes gateway)分離。Telegram 設定寫入 ~/.hermes/.env(或精靈輸出),日誌位於 ~/.hermes/logs/gateway.log,macOS 上可選 launchd 服務。

元件路徑 / 命令作用
安裝curl -fsSL …/install.sh | bashPython 3.11 + hermes CLI
模型 / 認證hermes setup模型服務商 API 金鑰(自備或 Nous Portal)
Telegram 設定hermes gateway setupBot 令牌 + + TELEGRAM_ALLOWED_USERS
前台測試hermes gateway長輪詢 bot,直至 Ctrl+C
系統服務hermes gateway installhermes gateway startmacOS launchd, 登出後仍執行
健康檢查hermes doctor, hermes gateway status設定與程序檢查

資料流(輪詢模式):

  1. 你在 Telegram 中向 bot 發訊息。
  2. 閘道透過 Telegram Bot API(出站輪詢)接收更新。
  3. Hermes agent 在已設定的終端後端(本地、Docker 或 SSH 至同主機)上執行工具。
  4. 回覆文字(及可選 MEDIA:/path 附件)經閘道返回 Telegram。

重要安全預設值: 上游在 TELEGRAM_ALLOWED_USERS 中使用數位使用者 ID,而非 @使用者名稱。任何持有 bot 令牌 者均可冒充該 bot——請將令牌視同 API 金鑰,洩露後透過 BotFather /revoke 輪換。

官方參考:Hermes Telegram 文件(BotFather、隱私模式、webhook)。

BotFather 與存取控制

建立 bot

  1. 開啟 @BotFather/newbot
  2. 設定顯示名(如 Builder Hermes)和以 bot 結尾的使用者名稱。
  3. 複製形如 123456789:ABCdefGHIjklMNOpqrs… 的令牌——存入密碼管理器,勿寫入 git。

將使用者 ID 加入白名單

@userinfobot 發訊息取得數位 ID(如 123456789)。設定 TELEGRAM_ALLOWED_USERS 後,Hermes 會拒絕陌生人。

共享租用主機上的可選加固:

  • 單使用者白名單——在理解工具作用域前勿使用萬用「團隊」 ID。
  • 環境隔離 bot(預發 vs 生產租用)——避免預發令牌洩露影響生產 workspace。
  • 在驗證私聊行為前停用群組存取。

為 Telegram 設定 Hermes

互動式(推薦)

hermes setup # 全新安裝時先設定模型服務商 hermes gateway setup # 選擇 Telegram → 貼上令牌 → 填寫允許的使用者 ID

手動編輯 ~/.hermes/.env

TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrSTUvwxYZ TELEGRAM_ALLOWED_USERS=123456789 # 可選團隊: TELEGRAM_ALLOWED_USERS=111111111,222222222

確認檔案權限為 600,且勿同步到不可信的 dotfile 備份。

前台冒煙測試:

hermes gateway

在 Telegram 傳送 hello,數秒內應收到回覆。安裝 launchd 前用 Ctrl+C 停止。

Mac mini M4 無頭部署八步清單

  1. 安裝 Hermes — 在租用使用者帳戶(非 root)執行官方 install.sh
  2. 執行 hermes setup — 設定模型服務商;確認 hermes doctor 無報錯。
  3. 建立 BotFather 令牌 — 並取得數位使用者 ID(見上文)。
  4. 執行 hermes gateway setup — 選擇 Telegram;確認 ~/.hermes/.env 含令牌與白名單。
  5. 前台測試hermes gateway,向 bot 發訊息,觸發無害工具(如 agent 執行 pwd);Ctrl+C 停止。
  6. 安裝服務hermes gateway installhermes gateway start(macOS launchd)。
  7. 為守護程序持久化環境 — 確保 ~/.hermes/.env 中的 API 金鑰對 launchd 可讀(與安裝同一使用者);若僅背景失敗,可參考 OpenClaw launchd PATH 說明
  8. 監控hermes gateway statustail -f ~/.hermes/logs/gateway.log,設定變更後用 Telegram /new 重置異常工作階段。

可引用運維規則:一個閘道程序可服務多平台(Telegram、Discord、Slack 等)——無需為每個聊天應用單獨起守護程序。

launchd 與僅 SSH 租用

在 macOS 租用上,hermes gateway install 會註冊使用者級 launchd 任務——與本站介紹的 OpenClaw openclaw onboard --install-daemon 模式類似。

hermes gateway install hermes gateway start hermes gateway status tail -f ~/.hermes/logs/gateway.log

SSH 斷開後,閘道應在執行 install 的同一 Unix 使用者下保持執行。若任務停止,請檢查:

  • launchctl list | grep -i hermes
  • 日誌中是否有 TELEGRAM_BOT_TOKEN / 認證錯誤
  • 租用策略是否在登出時終止長時間使用者 agent(專用 M4 少見;共享 shell 較常見)

Docker 後端說明:terminal.backend: docker,經 MEDIA:/path 傳送的檔案須存在於閘道可讀的主機路徑——不能僅在容器內。請按上游 telegram.md 掛載主機可見卷。

群組聊天(可選)

Telegram 隱私模式 預設開啟——群內 bot 通常僅見 /commands、回覆 bot 的訊息或管理員可見流量。要擴大上下文,在 BotFather 關閉隱私(Bot Settings → Group Privacy → Turn off),並對每個群移除後重新加入 bot,或將 bot 設為群管理員

若需「觀察但不 @ 不回覆」,上游提供 TELEGRAM_OBSERVE_UNMENTIONED_GROUP_MESSAGES 與允許的 chat ID——請先閱讀 telegram.md 群組章節。

故障排查

症狀:bot 無回覆(輪詢靜默)

檢查項命令 / 修復
閘道是否在執行?hermes gateway status; 重啟 hermes gateway start
令牌是否有效?從 BotFather 重新貼上;若洩露則 /revoke 舊令牌
使用者未在白名單?將數位 ID 加入 TELEGRAM_ALLOWED_USERS 並重啟閘道
模型/認證失敗?hermes doctor; 先本地測試 hermes CLI
日誌grep -i error ~/.hermes/logs/gateway.log | tail -20

症狀:401 Unauthorized 或 Conflict: terminated by other getUpdates

  • 401: 錯誤的或已撤銷的 TELEGRAM_BOT_TOKEN
  • Conflict: 兩個程序輪詢同一 bot——停止重複的前台 hermes gateway 或第二台使用同一令牌的主機。

hermes gateway stop pkill -f "hermes gateway" 2>/dev/null || true hermes gateway start

症狀:前台正常、launchd 下失敗

  • launchd 環境變數極少——確認 ~/.hermes/.env 可讀且含服務商金鑰。
  • 對比 SSH 與 launchctl print gui/$(id -u)PATH(macOS);若外掛呼叫 shell,對齊 Node 等路徑。

症狀:群內僅見 /commands

  • BotFather 隱私模式仍為 ON——關閉或設 bot 為管理員;重新將 bot 加入群組。

常見問題

Hermes Telegram 能替代 OpenClaw 的 Telegram 綁定嗎?+
兩者是不同的閘道。可用 hermes claw migrate 遷移設定,但在同一主機同時執行兩個 bot 會重複占用 RAM 並可能衝突自動化。每個租用主機建議只選一個訊息閘道。
Telegram 需要公網 URL 嗎?+
預設長輪詢不需要。Webhook 模式需要 HTTPS 入口(Fly.io、Railway 等)——通常不必在僅 SSH 的 Mac mini 租用上配置。
16 GB M4 能同時跑 Xcode CI 和 Telegram 嗎?+
可以,但需串行化重負載任務。在 archive 與閘道峰值期間測量 memory_pressure;必要時在大規模 xcodebuild 矩陣期間暫停閘道。
Bot 令牌足以保護系統嗎?+
不夠。令牌控制 bot 身份。工具執行仍遵循 Hermes 工具權限與終端後端範圍——鎖定 workspace,多租戶主機上避免以 root 執行閘道。
官方 Telegram 文件在哪裡?+

無頭 M4 承載 Hermes Telegram 閘道

港/日/韓/新/美 SSH 優先 Apple Silicon—Telegram 長輪詢與 launchd 可 24/7 執行。