logo
icon

OpenAB OpenCode

Open Agent Broker — 輕量的 Rust 程式,透過 stdio JSON-RPC 將 Discord 橋接到任何 ACP 相容的 coding CLI。此模板使用 OpenCode 作為 agent 後端,支援 75+ LLM 供應商(Ollama Cloud、OpenAI、Anthropic、Google 等)。 來源:https://github.com/openabdev/openab

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

OpenAB OpenCode

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

此模板使用 OpenCode 作為 agent 後端,支援 75+ LLM 供應商。

注意事項

  • 映像標籤: 此模板使用固定版本(0.8.1-beta.5)。如需升級,請在 Zeabur Dashboard → 服務 → 設定中更改映像標籤。
  • 持久化儲存: /home/node 掛載為持久化磁碟。設定、config、認證資料和 opencode.json 會在重啟後保留。
  • 檔案權限: 容器以 root 啟動後切換為 node 用戶執行 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. 設定 LLM 供應商(部署後)

OpenCode 需要連接 LLM 供應商。最簡單的方式是在 Zeabur Dashboard → 服務 → 變數中設定環境變數:

變數名供應商
OPENCODE_API_KEYOpenCode 原生(在 opencode.ai 取得)
ANTHROPIC_API_KEYAnthropic Claude
OPENAI_API_KEYOpenAI GPT
GOOGLE_GENERATIVE_AI_API_KEYGoogle Gemini
GROQ_API_KEYGroq
MISTRAL_API_KEYMistral
DEEPSEEK_API_KEYDeepSeek
OPENROUTER_API_KEYOpenRouter(代理 100+ 模型)

設定至少一個變數後重啟服務,OpenCode 會自動讀取。

互動式登入(替代方式)

如需使用瀏覽器 OAuth 的供應商(如 AWS Bedrock、Azure OpenAI),在 Zeabur Dashboard 開啟服務終端並執行:

runuser -u node -- opencode auth login

⚠️ 必須以 node 身份執行。以 root 執行會把認證檔寫到 /root/,該路徑未持久化,重啟後會遺失。

3. 模型選擇(選填)

如需設定特定模型,建立或編輯 /home/node/opencode.json

{
  "provider": "anthropic",
  "model": "claude-sonnet-4-20250514"
}

詳見 OpenCode 文件

4. 取得 Discord 頻道 ID

  1. 開啟 Discord → 前往 使用者設定進階 → 啟用 開發者模式
  2. 對頻道按右鍵 → 複製頻道 ID
  3. 多個頻道用逗號分隔

5. 部署

填入 Discord Bot Token 後點擊部署。服務會自動連線到 Discord。然後使用上述方法認證 OpenCode。

使用方式

  • 在允許的頻道中 @mention Bot 即可開始對話
  • OpenAB 會自動建立 thread 進行多輪對話
  • 每個 thread 對應一個持久的 OpenCode session(預設 24 小時 TTL)

自訂設定

檔案說明
/home/node/.config/openab/config.tomlOpenAB 設定
/home/node/opencode.jsonOpenCode 模型/供應商設定
/home/node/.opencode/OpenCode 認證資料與狀態

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 留空即可。

連結