logo
icon

OpenAB Hermes

Open Agent Broker — 輕量的 Rust 程式,透過 stdio JSON-RPC 將 Discord 和 Slack 橋接到任何 ACP 相容的 coding CLI。此模板使用 Nous Research 的 Hermes Agent 作為後端 — 一個 multi-provider inference gateway,透過 OAuth 支援 30+ LLM 供應商(xAI Grok、Anthropic、OpenAI、Nous Portal 等)。 來源:https://github.com/openabdev/openab

template cover
部署次數0
發布者zeaburZeabur
建立於2026-05-17
最低規格2 核心4 GB
推薦規格4 核心8 GB
標籤
AIDeveloper ToolsDiscordSlack

OpenAB Hermes

OpenAB 是一個輕量的開源 Rust 程式,透過 stdio JSON-RPC 將 Discord 和 Slack 橋接到任何支援 Agent Client Protocol 的 coding CLI。

此模板使用 Hermes 變體:以 Nous Research 的 Hermes Agent 為後端。Hermes 本身是一個 multi-provider inference gateway — 內建管理 OAuth token、認證儲存、provider 路由,可串接 30+ LLM 供應商(xAI Grok、Anthropic、OpenAI、Nous Portal 等),OpenAB 不需自行處理供應商認證。

注意事項

  • 映像標籤: 此模板使用固定版本(0.8.3-beta.10)。如需升級,請在 Zeabur Dashboard → 服務 → 設定中更改映像標籤。可用標籤:GitHub Packages
  • 持久化儲存: /home/agent 掛載為持久化磁碟。Hermes 認證、plugins、設定、config 會在重啟後保留。
  • 認證僅能在容器內進行: Hermes 採用各供應商的 OAuth 流程,沒有單一 API key 變數。部署完成後請在服務終端執行 hermes auth add <provider> 來綁定要使用的 LLM 供應商。

設定步驟

1. 取得 Discord Bot Token

  1. 前往 https://discord.com/developers/applications,點擊 New Application
  2. 進入 Bot 頁籤 → 點擊 Reset Token → 複製 token
  3. 同一頁面往下滑,在 Privileged Gateway Intents 下啟用 Message Content Intent
  4. 前往 OAuth2 → URL Generator → 勾選 scope bot → 勾選權限:Send Messages、Send Messages in Threads、Create Public Threads、Read Message History、Add Reactions、Manage Messages
  5. 複製產生的 URL,在瀏覽器中開啟以邀請 Bot 到你的伺服器

2. 取得 Discord 頻道 ID

  1. 開啟 Discord → 前往 使用者設定(齒輪圖示)→ 進階 → 啟用 開發者模式
  2. 對你要 Bot 回應的頻道按右鍵 → 複製頻道 ID
  3. 多個頻道用逗號分隔:123456789012345678,234567890123456789

3. 部署

填入變數後點擊部署即可。服務會自動連線到 Discord,但在你完成步驟 4 認證之前,bot 不會產生任何 LLM 回覆。

4. 認證 Hermes Provider

服務啟動後,在 Zeabur Dashboard → 服務 → Exec 開啟容器終端。Hermes 支援多家供應商,以下是兩種常見的選擇。

選項 A:Nous Portal(最簡單)

runuser -u agent -- hermes auth add nous

依照提示開啟畫面顯示的 URL 完成 OAuth。

選項 B:xAI Grok OAuth(推薦給一般用途)

⚠️ 需要 SuperGrok 付費訂閱($30/月)。 沒有訂閱時 auth 仍會成功,但 API 回傳空字串 — bot 看似運作卻不會回覆任何訊息。

xAI OAuth 採用 loopback 重新導向 127.0.0.1:56121。Zeabur 不會對外暴露此 port,請使用「雙終端」流程:

終端 1 — 啟動 auth listener:

runuser -u agent -- hermes auth add xai-oauth --no-browser

畫面會印出含 &state=XXXXX 的授權 URL,並在 http://127.0.0.1:56121/callback 等待。

在你的瀏覽器 — 開啟該授權 URL → 同意授權。瀏覽器會被導向 http://127.0.0.1:56121/callback?code=... 並顯示連線失敗(這是預期的)。從網址列複製 code 的值

終端 2 — 在 Zeabur 再開一個 Exec session,在容器內把 callback 餵回去:

runuser -u agent -- curl "http://127.0.0.1:56121/callback?code=<CODE>&state=<STATE>"

終端 1 應該會印出 Added xai-oauth OAuth credential #1code 數秒後就會失效,若出現 invalid_grant 請重新執行 hermes auth add xai-oauth 再試。

認證完成後:選擇預設 model

用互動式 picker:

runuser -u agent -- hermes model

…或手動把 provider 和 model 分成兩個 key 設定(這是 hermes-acp 能讀到的格式 — hermes config set 範例中合併成 provider/model 的寫法只有 standalone CLI 認得,openab spawn 出的 hermes-acp 不會生效):

runuser -u agent -- hermes config set provider xai-oauth
runuser -u agent -- hermes config set model grok-4-latest

設定會寫入 /home/agent,重啟後仍保留。新的 Discord session 會自動套用新 model,不需重啟服務

其他供應商(Anthropic、OpenAI 等)請參閱 Hermes Agent 文件

Slack 設定(選用)

OpenAB 支援透過 Socket Mode 連接 Slack,不需要公開 URL。

  1. 前往 https://api.slack.com/appsCreate New AppFrom scratch
  2. Socket Mode → 啟用 → 產生 App-Level Token,scope 選 connections:write → 複製 xapp-... token(SLACK_APP_TOKEN
  3. Event Subscriptions → 啟用 → 新增 bot events:app_mentionmessage.channelsmessage.groups
  4. OAuth & Permissions → Bot Token Scopes → 新增:app_mentions:readchat:writechannels:historygroups:historychannels:readgroups:readreactions:writefiles:readusers:read
  5. Install App → 安裝到工作區 → 複製 xoxb-... token(SLACK_BOT_TOKEN
  6. 在每個要使用 Bot 的 Slack 頻道執行 /invite @YourAppName

部署前填入 SLACK_BOT_TOKENSLACK_APP_TOKEN 變數。Discord 和 Slack 可同時運作。

新增通訊平台(Telegram / LINE / Feishu / Google Chat / MS Teams / WeCom)

若要橋接 Telegram、LINE、Feishu/Lark、Google Chat、MS Teams 或 WeCom(企業微信),請在同一個 Zeabur 專案中部署 OpenAB Gateway 模板,然後在此服務新增以下環境變數:

  • GATEWAY_URL = ws://openab-gateway:8080/ws
  • GATEWAY_PLATFORM = telegramlinefeishugooglechatteamswecom 其中之一

重新啟動服務後,啟動腳本會自動在 config.toml 中加入 [gateway] 區塊。

使用方式

  • 在允許的 Discord 或 Slack 頻道中 @mention Bot 即可開始對話
  • OpenAB 會自動建立 thread 進行多輪對話 — 後續訊息不需要再 @mention
  • 每個 thread 對應一個持久的 Hermes session(預設 24 小時 TTL)

自訂設定

檔案說明
/home/agent/.config/openab/config.tomlOpenAB 設定(sessions、reactions、STT 等)
/home/agent/.config/hermes/Hermes 認證與 provider 設定(由 hermes auth / hermes model 管理)

config.toml 在首次啟動時從內建範本建立。之後請直接編輯檔案,環境變數僅用於初始設定。要恢復預設值請刪除後重啟:rm /home/agent/.config/openab/config.toml

OpenAB 設定選項請參閱 OpenAB 文件。Hermes provider 選項請參閱 Hermes 文件

停用

部署時將 Discord Bot TokenSLACK_BOT_TOKEN 都留空即可。服務會進入 sleep 狀態,不會崩潰。

連結