H繁中版
FlowsHermes Flightplan #1:終極零開始打造永遠在線的 Telegram AI Agent
指南中級14 分鐘閱讀by witcheer
<!-- Source: https://hermesbible.com/flows/hermes-flightplan-1-always-on-telegram-agent -->

想要一個你可以從手機訊息互動的 AI Agent——它在你關上筆電後繼續運行,重啟後自動恢復?Hermes Agent 做得到:它以閘道的形式運行,你透過 Telegram 與它對話,一旦正確設定,它會在崩潰或斷電後自行重啟。

我在兩台機器上建構了相同的設定——一台便宜的雲端 VPS 和我桌上的 Mac Mini——這樣我就能把整條路徑寫下來,不跳過任何步驟。這是一條路徑。機器只改變你輸入的兩個地方:安裝指令,以及保持閘道存活的部分。中間的所有內容都相同。

以下所有內容都在我的硬體上執行:

  • Linux 路徑: 一台 Ubuntu 24.04.4 LTS 的 Hetzner CX23(x86,2 vCPU,4GB RAM,40GB 磁碟)
  • Mac 路徑: 一台 macOS 15 上的 Mac Mini M4

兩者都執行 Hermes Agent v0.16.0

最終你會擁有什麼

  • Hermes Agent 已安裝,以一般使用者運行,非 root
  • 一個 Telegram bot,你從手機訊息互動,僅限你的帳號
  • 閘道作為受管理的服務運行,崩潰或重啟後自動恢復
  • 在 VPS 上:一台加固的機器——僅金鑰 SSH、停用 root 登入、防火牆

選擇你的機器

VPS 是最便宜的入門方式。任何 4GB RAM 且約有 20GB 可用磁碟的 x86 機器都能運行;我的是 Hetzner CX23,每月 $7.79(Hetzner 美國定價,2026-06-18)。租用後它就永遠在線了。

你已擁有的 Mac 是另一個選擇。任何持續供電的 Apple Silicon Mac 都可以,運行成本除了模型之外為零。代價是 macOS 上的耐久性層比較麻煩,我在最後會說明。

你需要在自己的機器上有一把 SSH 金鑰(如果沒有的話 ssh-keygen -t ed25519)、一個 Telegram 帳號,以及一個 Agent 使用的模型。本指南指向 Nous Portal,它使用 OAuth,所以沒有 API 金鑰需要存在檔案中。Hermes 需要一個至少 64k 上下文的模型。

步驟 1:準備機器

在 VPS 上

在你的供應商處建立伺服器:Ubuntu 24.04,x86 實例(不是 Arm——參見成本說明),建立時貼上你的 SSH 公鑰。

一台新的公開機器需要幾分鐘的加固才能放上 Agent。食譜中的 secure-box.sh 一次搞定:apt 升級、2GB swapfile、一個帶有你金鑰的非 root sudo 使用者、停用 root 登入的僅金鑰 SSH,以及僅允許 SSH 的防火牆。編輯頂部的兩個變數,複製過去,以 root 執行:

scp secure-box.sh root@<your-vps-ip>:
ssh root@<your-vps-ip> 'bash secure-box.sh'

這個 Ubuntu 映像的 PasswordAuthentication 設為 yes,即使我是用 SSH 金鑰建立的。腳本會將它關閉。在你關閉 root 會話之前,打開第二個終端確認新使用者可以登入,這樣錯誤就不會把你鎖在外面:

ssh hermes@<your-vps-ip>

從這裡開始你就是 hermes,不是 root

在 Mac 上

不需要加固。它在你自己網路上的機器,不是公開的盒子。如果沒有安裝 Homebrew 就安裝它(安裝程式在下一步需要它),然後就準備好了。

步驟 2:安裝 Hermes

安裝只需一行指令,兩台機器相同,以你的普通使用者執行:

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
source ~/.bashrc
hermes --version

安裝程式會偵測你的作業系統並拉取自己的工具鏈(uv、Python 3.11、Node.js 22、ripgrep、ffmpeg、用於瀏覽器工具的 Playwright Chromium)到 ~/.hermes,所以它不會碰你的系統 Python。在我的 Hetzner 機器上,它安裝了 Python 3.11.15 上的 Hermes Agent v0.16.0。

這是重頭戲。在 VPS 上它將磁碟用量從 1.2GB 增加到 7.8GB——大約 6.6GB,大部分是瀏覽器引擎和 Node。預留 20GB 可用空間就不用擔心了。透過沒有終端的純 SSH 指令執行時,安裝程式會印出 Setup wizard skipped (no terminal available),這沒問題——設定是下一步。

在 Mac 上執行相同的指令,有一個小問題:先安裝 Homebrew。有 Homebrew 的情況下,安裝程式會不需提示就拉取 git 及其依賴。沒有的話,它會回退到 Apple 的 Command Line Tools,這會開啟一個你需要點擊的 macOS 對話框——而對話框在 SSH 上是沒用的(這在安裝程式的 macOS 分支中)。之後就和上面一樣了。

步驟 3:指向一個模型

hermes setup --portal

這是對 Nous Portal 的 OAuth:它印出一個 URL 和一個碼,你在瀏覽器中批准,現在機器就對接了一個模型,沒有 API 金鑰存在檔案中。Nous Portal 有免費方案,我全程使用免費模型。如果你想要自帶提供者,執行 hermes model 選一個;金鑰會存在 ~/.hermes/.env 中。

步驟 4:與它對話

在 VPS 上與它對話

你的 SSH 斷開的那一刻,前景會話也會死亡。tmux 讓會話保持存活:在 tmux 中啟動、分離,它就會繼續運行。

sudo apt-get install -y tmux
tmux new -s hermes        # 然後在裡面:  hermes

Ctrl-b 然後 d 分離,稍後從任何地方重新連接:

ssh hermes@<your-vps-ip>
tmux attach -t hermes

互動式 Agent 的首次啟動需要一點時間。我的大約花了 30 秒載入模型和技能,然後提示才出現。一旦啟動,斜線指令就能運作了。

/goal 是值得展示的:它設定一個 Agent 跨回合持續工作的常駐目標,每回合後由一個判斷模型檢查是否完成。

/goal check this box total RAM and free disk using shell tools, then report both on one line and mark the goal done

我的執行了 shell 指令本身,大約 15 秒後回覆 VPS total RAM: 3.7Gi, free disk space: 28G。那就是 Agent 使用自己的工具。

請區分兩個概念:tmux 讓互動式會話在 SSH 斷開後保持存活,但不能跨越重啟。 對於不需要登入就能在重啟後存活的無人看守閘道,你需要受管理的服務,也就是步驟 6。

在 Mac 上與它對話

你坐在機器前,所以可以在終端中執行 hermes。如果你從筆電 SSH 過來,tmux 仍然有幫助,但在這裡是可選的。

步驟 5:Telegram 閘道

這部分在兩台機器上完全相同。建立一個 bot:在 Telegram 上訊息 @BotFather,發送 /newbot,複製 token。從 @userinfobot 取得你的數字使用者 ID。然後設定閘道:

hermes gateway setup

選擇 Telegram,貼上 token,將允許的使用者設定為你的數字 ID,這樣只有你能與它對話。token 存入 ~/.hermes/.env,其餘存入 ~/.hermes/gateway.json

設定只寫入配置。它不會啟動任何東西,所以 bot 保持沉默——這會讓一些人困惑:還沒有任何東西在輪詢 Telegram。先在前景啟動一次確認它能連接:

hermes gateway run

你會在日誌中看到:

gateway.run: Connecting to telegram...
[Telegram] Connected to Telegram (polling mode)
gateway.run: ✓ telegram connected

輪詢模式意味著閘道主動連接 Telegram;沒有東西連入你的機器,所以防火牆不需要除了 SSH 之外的任何入站埠。訊息你的 bot;它應該會回覆。然後用 Ctrl-C 停止前景閘道,因為你不能有兩個東西同時輪詢同一個 token,下一步會將它作為服務運行。

步驟 6:讓它在重啟後存活

這是兩台機器分歧的地方。

在 VPS 上:systemd

hermes gateway install 將閘道註冊為 systemd 服務,這樣它崩潰後會重啟,重啟後會恢復。在這個版本上,安裝程式會問兩個 [Y/n] 問題,沒有參數可以跳過它們。透過非互動式 SSH 指令執行——在編寫機器腳本時很自然——它得不到回答,中止,什麼都不安裝。在 stdin 上提供答案:

printf 'n\nY\n' | hermes gateway install

兩個問題是「現在啟動閘道嗎?」和「登入/啟動時自動啟動嗎?」。n 然後 Y 表示:不要現在啟動,但要在開機時啟用。安裝程式還會啟用使用者會話的 lingering,這就是讓使用者服務在你登入之前就能運行的機制。確認它,因為這是讓「重啟後存活」成真而不僅僅是「登出後存活」的關鍵:

loginctl show-user $USER -p Linger     # 期望:Linger=yes

啟動並檢查:

hermes gateway start
systemctl --user status hermes-gateway

你會看到 active (running)NRestarts=0。在我的機器上,閘道使用大約 280MB,整台機器大約 556MB——在 4GB 上很舒適。

現在真正的測試。重啟,不要碰它:

sudo reboot

我的大約 15 秒後恢復,閘道已經自行啟動,重新連接到 Telegram,並且帶著重啟前的完整對話歷史回覆了下一則訊息。這就是全部重點。

在 Mac 上:launchd 和看門狗

macOS 使用 launchd,不是 systemd,而且有一個陷阱。在 macOS 15 上使用 Hermes v0.16.0 時,hermes gateway start 可能無法註冊 launchd 服務並回退——不告訴你——到一個無人看守的背景程序。你會看到:

Bootstrap failed: 5: Input/output error
⚠ launchd cannot manage the gateway on this macOS version (launchctl exit 5)
✓ Started gateway as a background process instead
  It will NOT auto-start at login or auto-restart on crash.

如果你之前有一個運作中的 launchd job,這個指令卸載了它,回退方案在第一次崩潰或重啟前運作良好——然後你的 Agent 就消失了,沒有任何東西告訴你。原始的 launchctl 在 CLI 失敗的地方有效,包括透過 SSH:

launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/ai.hermes.gateway.plist
launchctl print gui/$(id -u)/ai.hermes.gateway | grep state    # 期望:state = running

plist 在登入時啟動閘道,但不會在崩潰時重啟。一個 cron 看門狗彌補了這兩個缺口,而 cron 在開機時運行,不需要登入。食譜提供了 gateway-watchdog.sh;它每 5 分鐘檢查閘道程序是否存活,如果不在就重新啟動。安裝排程:

(crontab -l 2>/dev/null; echo '*/5 * * * * $HOME/scripts/gateway-watchdog.sh >/dev/null 2>&1') | crontab -

我親眼見過這個序列在我的 Mac Mini 上恢復了一個降級的閘道。重啟它,確認閘道在五分鐘內恢復,不需要登入。

驗證你的設定

  • 服務正在運行: Linux 上 systemctl --user status hermes-gatewayactive (running)),或 macOS 上 launchctl print gui/$(id -u)/ai.hermes.gateway | grep statestate = running
  • 訊息你的 bot: 它回覆你,並忽略不在你允許使用者名單中的任何人
  • 在 Linux 上, loginctl show-user $USER -p Linger 顯示 Linger=yes
  • 重啟機器, 等待,不重新登入就再次訊息 bot:它回覆了

成本

在 VPS 上,機器是唯一的花費。我的是 Hetzner CX23,每小時 $0.012,上限 每月 $7.79(Hetzner 美國定價,2026-06-18;歐盟的 CX22 規格相同但更便宜)。

在 Mac 上,它是一台你已經擁有的機器——零額外服務。兩種情況下模型都在 Nous Portal 的免費方案中免費使用。

這裡,記憶不是限制:閘道使用大約 280MB,整台機器大約 556MB,所以 1GB RAM 就很充足了。磁碟才是真正的限制: 安裝大約 6.6GB,所以 1GB 或 10GB 的映像會很緊——給它 20GB。並使用 x86,那是安全的選擇。

自己跑起來,以及接下來是什麼

兩台機器都有完整的食譜,包含確切的腳本,可以直接執行:

  • VPS 路徑:cheap-vps
  • Mac 路徑:mac-mini-24-7

你現在有一個在 Telegram 上永遠在線的 Agent,能在重啟後存活。

下一個 Flightplan 在這基礎上建構:排程任務只在有重要事項時才訊息你、一個 git 同步的工作區供 Agent 讀寫,以及讓人類在每個公開行動上保持把關的草稿-核准流程。