Fly.io 推出 Hermes Agent 部署指南,成本約每月 15 美元
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 訊息文件設定憑證。
快速部署步驟
- 複製儲存庫:
git clone https://github.com/fly-apps/hermes-flyio.git && cd hermes-flyio && git clone https://github.com/NousResearch/hermes-agent.git。 - 產生全球唯一 app 名稱:
export APP="hermes-$(whoami)-$(openssl rand -hex 3)",並替換fly.toml中的my-hermes。 - 建立 app 與 volume:
fly apps create $APP && fly volumes create hermes_data --region sjc --size 10 --yes --app $APP(指令具冪等性,若名稱衝突重跑步驟 2)。 - 設定祕密:
fly secrets set OPENROUTER_API_KEY=sk-or-your-key-here --app $APP與fly secrets set TELEGRAM_BOT_TOKEN=123456:ABC-your-token-here --app $APP。 - 部署:複製
fly.toml與Dockerfile.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 $APP與fly 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 $APP 與 fly volumes extend <volume-id> --size 20 --app $APP。預設 fly.toml 24/7 運行(min_machines_running = 1,auto_stop_machines = "off"),純 webhook 模式可改 auto_stop_machines = "suspend" 閒置暫停。
Webhook 整合(GitHub、Stripe 等)
預設無公網入口(無 HTTP 服務、無 IP 分配),訊息平台僅需出站連線,故 https://<your-app>.fly.dev 無內容。啟用入站 webhook:
- 解註
fly.toml的[http_service],於[env]加HERMES_HOME = "/opt/data"、WEBHOOK_HOST = "0.0.0.0"、WEBHOOK_PORT = "8644"。 - SSH 執行
hermes gateway setup,新增「webhook」平台。 - 重新部署並分配 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.toml 與 Dockerfile.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使用者,初始化.env、config.yaml、SOUL.md,同步技能,exec 閘道。 /opt/data為HERMES_HOME,儲存配置、記憶、技能、DB、cron、hooks、plans、workspace 與工具 $HOME。- Playwright Chromium 建置時置
/opt/hermes/.playwright,避開 volume 覆蓋。
更多細節參 Hermes 文件。
此部署凸顯 Fly.io 在邊緣運算的優勢,讓 Hermes Agent 無縫融入日常聊天,無需公網暴露即具高可用性,備份與擴展設計貼合長期使用,成本透明且彈性。
Hermes Agents are so cool.
— Fly.io (@flydotio) April 16, 2026
They learn, remember, and talk to you from your chat app of choice--Discord, Slack, Signal, and more!
Deploy your next Hermes Agent on https://t.co/IEvUZCp50G – check it out:https://t.co/Usurky0cav
