Hermes Flightplan #1:打造全天候 Telegram AI Agent 的終極指南(附完整複製貼上程式碼)

@witcheer
英語3 週前 · 2026年6月22日
111K
232
34
5
759

TL;DR

本指南提供在 VPS 或 Mac 上部署 Hermes AI Agent 的詳細教學,包含 Telegram 整合、當機後自動恢復機制,以及使用 Nous Portal 進行安全設定的完整步驟。

你想要一個可以從手機傳訊息給它、在你關上筆電後仍持續運作、並在重新開機後自動恢復的 AI Agent 嗎?Hermes Agent 就能做到:它作為一個閘道器運行,你可以透過 Telegram 與它對話,只要設定得當,它就能在崩潰或斷電後自行重啟。

我在兩台機器上建立了相同的設定,一台是便宜的雲端 VPS,另一台是我桌上的 Mac Mini,這樣我就能完整記錄整個流程,不漏掉任何步驟。這是一條路徑。你只需要在兩個地方根據機器類型修改輸入內容:安裝指令,以及讓閘道器保持運作的部分。其餘所有步驟都完全相同。

以下所有內容都在我自己的硬體上運行。Linux 路徑使用的是 Hetzner CX23(x86,2 vCPU,4GB RAM,40GB 磁碟),作業系統為 Ubuntu 24.04.4 LTS;Mac 路徑使用的是 Mac Mini M4,作業系統為 macOS 15。兩台機器都運行 Hermes Agent v0.16.0。

你最終會得到的成果

  • 已安裝 Hermes Agent,以一般使用者身分(非 root)運行
  • 一個你可以從手機傳訊息的 Telegram 機器人,且僅限你的帳號使用
  • 閘道器以受管理服務的形式運行,因此能在崩潰或重新開機後自動恢復
  • 在 VPS 上,一個強化過的系統:僅允許金鑰 SSH 登入、禁止 root 登入、設有防火牆

選擇你的機器

VPS 是最便宜的入門方式。任何配備 4GB RAM 和大約 20GB 可用磁碟空間的 x86 機器都能運行;我使用的是 Hetzner CX23,每月 7.79 美元(Hetzner 美國定價,2026 年 6 月 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 的 swap 檔案、建立一個帶有你金鑰的非 root sudo 使用者、設定僅允許金鑰 SSH 並關閉 root 登入,以及建立一個僅允許 SSH 的防火牆。編輯腳本頂部的兩個變數,將它複製過去,然後以 root 身分執行:

bash
1scp secure-box.sh root@<你的-vps-ip>:
2ssh root@<你的-vps-ip> 'bash secure-box.sh'

這個 Ubuntu 映像檔出廠時將 PasswordAuthentication 設為 yes,即使我是用 SSH 金鑰建立的機器。腳本會將它關閉。在關閉 root 連線前,請開啟第二個終端機視窗,確認新使用者可以登入,這樣即使設定錯誤也不會把你鎖在外面:

bash
1ssh hermes@<你的-vps-ip>

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

在 Mac 上

無需強化步驟。這是你自己網路上的個人機器,不是公開伺服器。如果你還沒有 Homebrew,請先安裝(安裝程式會在下一步使用它),然後就準備好了。

步驟 2:安裝 Hermes

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

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

安裝程式會偵測你的作業系統,並將其自身的工具鏈(uv、Python 3.11、Node.js 22、ripgrep、ffmpeg、用於瀏覽器工具的 Playwright Chromium)拉取到 ~/.hermes 目錄下,因此絕不會影響你系統的 Python。在我的 Hetzner 機器上,它安裝了 Hermes Agent v0.16.0,使用 Python 3.11.15。

這是最耗費資源的步驟。在 VPS 上,磁碟使用量從 1.2GB 增加到 7.8GB,增加了約 6.6GB,其中大部分是瀏覽器引擎和 Node。請預留 20GB 的可用空間,這樣就不用擔心了。如果透過純 SSH 指令(無終端機)執行,安裝程式會顯示「Setup wizard skipped (no terminal available)」(設定精靈已跳過,無可用終端機),這沒關係,設定是下一步的工作。

在 Mac 上執行相同的指令,但有一個小問題:需要先安裝 Homebrew。如果已安裝 Homebrew,安裝程式會直接拉取 git 及其依賴項,無需提示。如果沒有 Homebrew,它會回退到 Apple 的命令列開發者工具,這可能會彈出一個需要你點擊確認的 macOS 對話框,而透過 SSH 是無法點擊對話框的(這是安裝程式中 macOS 分支的處理方式)。之後的流程就與上述相同。

步驟 3:指向一個模型

bash
1hermes setup --portal

這是針對 Nous Portal 的 OAuth 認證:它會輸出一個網址和一組驗證碼,你在瀏覽器中核准後,機器就能與模型通訊,而無需將 API 金鑰存放在檔案中。Nous Portal 提供免費方案,我整個過程都是在免費模型上運行的。如果你偏好使用自己的提供商,請執行 hermes model 並選擇一個;金鑰會存放在 ~/.hermes/.env 檔案中。

步驟 4:與它對話

在 VPS 上

當你的 SSH 連線中斷時,前景執行的會話也會隨之終止。tmux 可以讓會話持續運作:在 tmux 中啟動,然後分離,它就會繼續執行。

bash
1sudo apt-get install -y tmux
2tmux new -s hermes # 然後,在 tmux 內: hermes

使用 Ctrl-b 再按 d 分離,之後可以從任何地方重新連線:

bash
1ssh hermes@<你的-vps-ip>
2tmux attach -t hermes

互動式 Agent 首次啟動需要一些時間。我的機器花了約 30 秒載入模型和技能,然後才會出現提示符號。啟動後,斜線指令就能使用了。

/goal 是一個值得展示的指令:它可以設定一個持續性的目標,讓 Agent 在多次對話中努力達成,並在每次對話後由一個評判模型檢查目標是否已完成。

bash
1/goal 使用 shell 工具檢查這台機器的總 RAM 和可用磁碟空間,然後在一行中報告兩者,並將目標標記為完成

我的機器自己執行了 shell 指令,並在大約 15 秒後回報:「VPS 總 RAM:3.7Gi,可用磁碟空間:28G」。這就是 Agent 使用自身工具的能力。

請區分兩個概念:tmux 可以在 SSH 連線中斷後保持互動式會話開啟,但無法在重新開機後保持。要建立一個能在重啟後倖存、無人值守的閘道器,你需要一個受管理的服務,這就是步驟 6。

在 Mac 上

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

步驟 5:Telegram 閘道器

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

bash
1hermes gateway setup

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

設定只會寫入配置檔,不會啟動任何東西,所以機器人會保持靜默,這點常讓人困惑:目前還沒有任何東西在輪詢 Telegram。先在前景啟動一次,確認它能連線:

bash
1hermes gateway run

你應該會在日誌中看到:

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

輪詢模式表示閘道器會主動連線到 Telegram;沒有任何東西會連入你的機器,這就是為什麼防火牆除了 SSH 之外不需要開放任何入站埠口。傳訊息給你的機器人;它應該會回覆。然後用 Ctrl-C 停止前景的閘道器,因為你不能讓兩個東西同時輪詢同一個 token,下一步會將它作為服務運行。

步驟 6:讓它能從重新開機中恢復

這是兩台機器唯一不同的地方。

在 VPS 上:systemd

hermes gateway install 會將閘道器註冊為一個 systemd 服務,這樣它就能在崩潰時重啟,並在重新開機後恢復。在這個版本中,安裝程式會詢問兩個 [Y/n] 問題,而且沒有參數可以跳過它們。如果透過非互動式的 SSH 指令執行(這是腳本化設定機器時的自然做法),它會因為得不到回答而中止,什麼都不安裝。你需要將答案透過標準輸入傳入:

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

這兩個問題分別是「現在啟動閘道器嗎?」和「在登入/開機時自動啟動嗎?」。先回答 n 再回答 Y 的意思是:不要立即啟動,但要讓它在開機時啟用。安裝程式也會開啟使用者會話持續功能(user-session lingering),這允許使用者在登入前就能運行服務。請確認這一點,因為這才是讓「從重新開機中恢復」真正生效,而不僅僅是「從登出中恢復」的關鍵:

bash
1loginctl show-user $USER -p Linger # 期望看到:Linger=yes

啟動它並檢查狀態:

bash
1hermes gateway start
2systemctl --user status hermes-gateway

你應該會看到 active (running)NRestarts=0。在我的機器上,閘道器使用了約 280MB 記憶體,整台機器約 556MB,在 4GB 的環境下非常充裕。

現在進行真正的測試。重新開機,然後什麼都不要做:

bash
1sudo reboot

我的機器大約在 15 秒後恢復,閘道器自行啟動,重新連線到 Telegram,並回覆了下一則訊息,而且保留了重新開機前的對話歷史。這就是整個設定的核心目標。

在 Mac 上:launchd 和一個監控腳本

macOS 使用 launchd,而不是 systemd,而且這裡有一個陷阱。在 macOS 15 搭配 Hermes v0.16.0 的情況下,hermes gateway start 可能無法成功註冊 launchd 服務,並會在不告知你的情況下,回退到一個不受監控的背景程序。你會看到這個訊息:

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

如果你之前有運作正常的 launchd 任務,這個指令會將它卸載,而回退方案在第一次崩潰或重新開機前都能正常運作,但之後你的 Agent 就會消失,而且沒有任何通知。直接使用 launchctl 可以在 CLI 失敗時成功,包括透過 SSH:

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

這個 plist 檔案可以在登入時啟動閘道器,但無法在崩潰時重啟它。一個 cron 監控腳本可以同時解決這兩個問題,而且 cron 可以在無需登入的情況下於開機時運行。本指南提供了 gateway-watchdog.sh 腳本;它每 5 分鐘檢查一次閘道器程序是否存活,如果不存在則重新啟動它。將它安裝到排程中:

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

我親眼見證過這個流程在我自己的 Mac Mini 上恢復了一個降級的閘道器。重新開機,然後確認閘道器在五分鐘內恢復,且無需登入。

驗證你的設定

  1. 服務正在運行:在 Linux 上執行 systemctl --user status hermes-gateway(應顯示 active (running)),或在 macOS 上執行 launchctl print gui/$(id -u)/ai.hermes.gateway | grep state(應顯示 state = running
  2. 傳訊息給你的機器人:它會回覆你,並忽略不在你允許清單中的任何人
  3. 在 Linux 上,執行 loginctl show-user [$USER](https://x.com/search?q=%24USER&src=cashtag_click) -p Linger 應顯示 Linger=yes
  4. 重新開機,等待,然後在不重新登入的情況下再次傳訊息給機器人:它會回覆

成本

在 VPS 上,機器是唯一的開銷。我的 Hetzner CX23 每小時 0.012 美元,每月上限 7.79 美元(Hetzner 美國定價,2026 年 6 月 18 日;歐盟的 CX22 規格相同且更便宜)。

在 Mac 上,這是你已經擁有的機器,無需額外服務費用。兩種情況下,模型都可以免費使用 Nous Portal 的免費方案。

這裡,記憶體不是瓶頸:閘道器使用了約 280MB,整台機器約 556MB,所以 1GB 的 RAM 就非常足夠了。磁碟空間才是真正的限制:安裝檔案約 6.6GB,所以 1GB 或 10GB 的映像檔會很吃緊,請預留 20GB。另外,請使用 x86 架構,這是最安全的選擇。

自己動手做,以及下一步

兩台機器都有完整的配方,包含可直接運行的腳本:

你現在擁有了一個在 Telegram 上永遠在線、且能從重新開機中恢復的 Agent。

下一個 Flightplan 將以此為基礎:排程任務只在有重要事情發生時才傳訊息給你、一個 Agent 可以讀寫的 git 同步工作區,以及一個草稿與核准流程,確保每個公開操作都有人類參與。

感謝閱讀

一鍵儲存

使用 YouMind AI 深度閱讀爆款文章

保存原文、追問細節、總結觀點,並在一個 AI 工作空間裡把爆款文章沉澱成可複用筆記。

了解 YouMind
寫給創作者

把你的 Markdown 變成乾淨的 𝕏 文章

圖片上傳、表格、程式碼區塊,往 𝕏 上手動重排太痛苦。YouMind 把整篇 Markdown 一鍵轉成乾淨、可直接發佈的 𝕏 文章草稿。

試試 Markdown 轉 𝕏

更多可拆解樣本

近期爆款文章

探索更多爆款文章