logo
icon

OpenAB Gemini

Open Agent Broker — 輕量的 Rust 程式,透過 stdio JSON-RPC 將 Discord 橋接到任何 ACP 相容的 coding CLI(Claude Code、Codex、Gemini、Kiro、Cursor)。此模板部署 Gemini 變體。 來源:https://github.com/openabdev/openab

template cover
部署次數24
發布者zeaburZeabur
建立於2026-04-20
最低規格2 核心4 GB
推薦規格4 核心8 GB
標籤
AIDeveloper ToolsDiscord

OpenAB Gemini

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

此模板部署的是 Gemini 變體(openab-gemini),使用 gemini --acp 作為 agent 後端。

注意事項

  • 映像標籤: 此模板使用固定版本(0.8.3-beta.4)。如需升級,請在 Zeabur Dashboard → 服務 → 設定中更改映像標籤。可用標籤:GitHub Packages
  • 持久化儲存: /home/node 掛載為持久化磁碟。Plugins、設定、config 和認證資料會在重啟後保留。
  • 檔案權限: 容器以 root 啟動後切換為 node 用戶(uid 1000)執行 openab。如遇權限問題,重啟服務即可 — 啟動時會自動修正權限。

設定步驟

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. 認證

最快: 部署時填 GEMINI_API_KEY 模板變數即可,服務啟動就直接用。

其他方式: 部署完成後,在 Zeabur Dashboard → 服務 → Exec 執行:

runuser -u node -- gemini

依照畫面提示選擇並完成認證。認證資料會存在持久化磁碟,新對話會自動套用,不需重啟。

將 API key 傳給 agent: openab 會以 env_clear() 隔離 agent 子程序,因此 GEMINI_API_KEY 路徑需要 env allowlist。首次啟動後編輯 /home/node/.config/openab/config.toml,在 [agent] 區塊加入:

[agent]
inherit_env = ["GEMINI_API_KEY", "GOOGLE_API_KEY", "GOOGLE_GENERATIVE_AI_API_KEY"]

互動登入不需修改 — 認證資料存在 ~/.gemini/

3. 取得 Discord 頻道 ID

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

4. 部署

填入模板變數後點擊部署即可。服務會自動連線到 Discord。

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

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

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

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

使用方式

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

自訂設定

檔案說明
/home/node/.config/openab/config.tomlOpenAB 設定(sessions、reactions、STT 等)

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

設定選項請參閱 OpenAB 文件

Webhook / Bot 整合

OpenAB 預設忽略其他 bot 和 webhook 的訊息。若要允許 webhook 觸發的訊息(例如自動化測試或 CI pipeline),在 config.toml 加入以下設定:

[discord]
allow_bot_messages = "mentions"

設定後,openab 會回應任何 @mention 它的 bot 或 webhook 訊息。若要限制為特定 webhook,也可加入:

trusted_bot_ids = ["YOUR_WEBHOOK_USER_ID"]

Webhook 用戶 ID 為 webhook URL 中的數字 ID:https://discord.com/api/webhooks/<ID>/...

停用

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

連結