← 返回首頁

Fly.io 推出 Hermes Agent 部署指南,成本約每月 15 美元

Fly.io
Fly.io
@flydotio
135🔁 16
𝕏 (Twitter)🔥
AI 中文摘要Claude 生成

Fly.io 推出 Hermes Agent 部署指南,成本約每月 15 美元,即可在 Telegram、Discord 等聊天應用中與自進化 AI Agent 互動。

Fly.io 提供簡易部署方式,將 Nous Research 的「Hermes Agent」轉化為 Machine app,讓使用者透過 Telegram、Discord、Slack、WhatsApp 或 Signal 等平台隨時聊天,Agent 具學習、記憶與互動能力,第一則訊息僅需數分鐘準備時間。

部署成本與規格
預設配置為 shared-cpu-2x / 2 GB RAM / 10 GB volume,24/7 運行每月約 15 美元(依地區而異),僅按實際機器運行時間與 volume 儲存計費,可依需求擴展或關閉以節省費用。Fly.io 計算器可精算具體金額。

前置準備需求

  • 安裝並登入 flyctl,參考官方安裝指南。
  • Fly.io 帳戶需綁定信用卡(Machines 與 volumes 非免費階層)。
  • LLM API 金鑰,推薦 OpenRouter(單一金鑰支援數百模型),Anthropic、OpenAI 或 Nous Portal 亦相容。
  • Telegram bot token:透過 @BotFather 建立 /newbot 並複製 123456:ABC… token。
  • Telegram 使用者 ID:訊息 @userinfobot 取得數字 ID,用以限制 bot 僅回應特定使用者。
    其他平台如 Discord 或 Slack,則參考 Hermes 訊息文件設定憑證。

快速部署步驟

  1. 複製儲存庫:git clone https://github.com/fly-apps/hermes-flyio.git && cd hermes-flyio && git clone https://github.com/NousResearch/hermes-agent.git
  2. 產生全球唯一 app 名稱:export APP="hermes-$(whoami)-$(openssl rand -hex 3)",並替換 fly.toml 中的 my-hermes
  3. 建立 app 與 volume:fly apps create $APP && fly volumes create hermes_data --region sjc --size 10 --yes --app $APP(指令具冪等性,若名稱衝突重跑步驟 2)。
  4. 設定祕密:fly secrets set OPENROUTER_API_KEY=sk-or-your-key-here --app $APPfly secrets set TELEGRAM_BOT_TOKEN=123456:ABC-your-token-here --app $APP
  5. 部署:複製 fly.tomlDockerfile.append 至 hermes-agent,執行 fly deploy hermes-agent/ --app $APP。首次建置需數分鐘(安裝 uv、Node、Playwright 的 Chromium 及 Hermes [all] 額外依賴),後續部署因層緩存加速。成功後 fly logs 顯示「⚕ Hermes Gateway Starting...」與無使用者白名單警告(預期行為)。

首次設定流程
透過 SSH 執行互動精靈 fly ssh console --pty --app $APP -C "hermes setup"

  • 選擇「Quick Setup」。
  • 工具配置(如 Exa、Firecrawl、Browserbase、FAL、ElevenLabs、Tinker)可全跳過(Enter)。
  • 選 Telegram,貼上 bot token 與使用者 ID。
    設定後執行 fly apps restart $APP 重啟機器(精靈內重啟僅限 SSH 工作階段)。搜尋 Telegram bot 名稱,傳 /start 開始聊天,同時 fly logs --app $APP 監控日誌。若 SSH 連線失敗,先查 fly logs 診斷閘道崩潰。

更新與持久化
更新僅需 git -C hermes-agent pull 後重複部署步驟,配置、記憶、技能與會話歷史存於 /opt/data volume,不受影響。綁定技能於啟動時自動調和,不覆寫使用者修改。

備份機制
所有學習內容(記憶、技能、SOUL.md、會話 DB、cron jobs)存於 hermes_data volume,Fly.io 每日自動快照,預設保留 5 天(可調 1-60 天)。

  • 延長保留:fly volumes update <volume-id> --snapshot-retention 30 --app $APP,或於 fly.toml [mounts] 設定 snapshot_retention = 30
  • 查詢與還原:fly volumes snapshots list <volume-id> --app $APPfly volumes create hermes_data_restored --snapshot-id <snapshot-id> --size 10 --app $APP
    快照前 10 GB 免費,之後增量 $0.08/GB/月,Hermes 部署通常免費內。每日快照有風險(主機故障前學習遺失),建議手動備份:fly ssh console --pty --app $APP -C "hermes backup create /opt/data/backup.tar.gz" && fly sftp get /opt/data/backup.tar.gz --app $APP

聊天與除錯方式
主要透過設定平台(如 Telegram)聊天,閘道確保手機或桌面隨時存取。另可 SSH 進入原生終端 UI:fly ssh console --pty --app $APP -C "hermes"/quit 退出),適用除錯、hermes doctor 或快速會話。TUI 與閘道共享 /opt/data,記憶與歷史同步。

擴展與效能調整
預設 shared-cpu-2x / 2 GB 適合單人多平台,重度技能、Playwright 瀏覽或 RL 任務需升級:fly scale vm shared-cpu-4x --memory 4096 --app $APPfly volumes extend <volume-id> --size 20 --app $APP。預設 fly.toml 24/7 運行(min_machines_running = 1auto_stop_machines = "off"),純 webhook 模式可改 auto_stop_machines = "suspend" 閒置暫停。

Webhook 整合(GitHub、Stripe 等)
預設無公網入口(無 HTTP 服務、無 IP 分配),訊息平台僅需出站連線,故 https://<your-app>.fly.dev 無內容。啟用入站 webhook:

  1. 解註 fly.toml[http_service],於 [env]HERMES_HOME = "/opt/data"WEBHOOK_HOST = "0.0.0.0"WEBHOOK_PORT = "8644"
  2. SSH 執行 hermes gateway setup,新增「webhook」平台。
  3. 重新部署並分配 IP:fly deploy ... && fly ips allocate-v6 --app $APP && fly ips allocate-v4 --shared --app $APP
    外部服務可 POST 至 https://<your-app-name>.fly.dev/webhooks/<route-name>,路由經 hermes webhook subscribe …config.yaml 下的 platforms.webhook.extra.routes 定義,支援 HMAC 驗證。

配置參考表
所有祕密經 fly secrets set 設定(絕不提交程式碼),非祕密變數置 fly.toml [env]:

變數 設定方式 用途
OPENROUTER_API_KEY / ANTHROPIC_API_KEY / OPENAI_API_KEY / NOUS_API_KEY fly secrets set LLM 提供者憑證(任選一)
TELEGRAM_BOT_TOKEN fly secrets set Telegram bot token
DISCORD_TOKEN fly secrets set Discord bot token
SLACK_BOT_TOKEN / SLACK_APP_TOKEN fly secrets set Slack Socket Mode 憑證
WEBHOOK_SECRET fly secrets set 入站 webhook HMAC 祕密(僅 webhook 啟用時)
HERMES_HOME fly.toml 固定 /opt/data 確保寫入 volume
WEBHOOK_HOST / WEBHOOK_PORT fly.toml webhook 入站時設定

完整清單見 Hermes 環境變數文件。

內部運作原理
部署時以 Hermes 儲存庫為建置脈絡,注入 fly.tomlDockerfile.append

  • 附加 shim /usr/local/bin/hermes,經 gosu 切換 hermes 使用者呼叫 venv 二進位,簡化 fly ssh console -C "hermes ..."
  • CMD 設 ["gateway", "run"],容器啟動直入前景閘道(gateway start 僅適用主機 systemd)。
    上游機制不變:
  • Entrypoint (docker/entrypoint.sh) 以 root 擁有 /opt/data(Fly volume root 掛載),切 hermes 使用者,初始化 .envconfig.yamlSOUL.md,同步技能,exec 閘道。
  • /opt/dataHERMES_HOME,儲存配置、記憶、技能、DB、cron、hooks、plans、workspace 與工具 $HOME。
  • Playwright Chromium 建置時置 /opt/hermes/.playwright,避開 volume 覆蓋。
    更多細節參 Hermes 文件。

此部署凸顯 Fly.io 在邊緣運算的優勢,讓 Hermes Agent 無縫融入日常聊天,無需公網暴露即具高可用性,備份與擴展設計貼合長期使用,成本透明且彈性。