引言#
今天我們來介紹一下,如何將 OpenAB 完整安裝並跑起來。
OpenAB 的架構本質上就像是一座橋樑,連接了「通訊平台」(例如 Discord、Slack)與「實際運行 Coding Agent 的主機」。換句話說,這等於讓你在通訊軟體上直接使用 Coding Agent——當你在頻道中輸入指令時,OpenAB 會將這些內容轉送給 Agent 來執行。
透過這樣的架構,你就能在習慣的通訊軟體裡,隨時調用自己訂閱的 Coding Agent 帳號(例如 Codex 或 Agy)。
準備 Discord Bot#
在 OpenAB 官方 GitHub 上可以看到多個通訊平台的整合文件,但目前對 Discord 的支援度最完整,因此這篇文章會以 Discord 作為主要範例(可參考官方 Discord 文件)。
1. 建立 Application 與 Bot#
首先,前往 Discord Developer Portal 新增一個應用程式(Application),設定名稱並點選建立。
接著切換到 Bot(機器人) 頁籤,往下拉找到 Privileged Gateway Intents,將以下三個選項啟用:
Presence IntentServer Members IntentMessage Content Intent
啟用這些權限後,你的 Bot 才能獲得接收與讀取訊息的互動能力。

2. 設定 OAuth2 權限與邀請#
接下來,我們需要設定 Bot 的權限。切換到 OAuth2 頁籤中的 URL Generator,並在 Scopes 中勾選 bot。

勾選 bot 後下方會出現 Bot Permissions,你可以參考下方的圖示進行對應的權限設定:

設定完成後,複製最下方產生的 URL,並在瀏覽器中打開它。這個步驟就是將你的 Bot 授權並邀請到你指定的 Discord 伺服器中,直接完成授權即可。
3. 啟用 Discord 開發者模式#
之後的設定會需要頻繁用到頻道、使用者或 Bot 的 ID。因此,你必須先打開 Discord 的開發者模式:
前往 Discord 設定 -> 進階 -> 啟用「開發者模式」
啟用後,只要在任何頻道、機器人或使用者頭像上按滑鼠右鍵,就能直接點擊「複製 ID」。無論你之後想限制 Bot 只能在特定的頻道發言,或是設定只接受特定使用者的對話,這些 ID 都會是關鍵設定。
在 Local K3s 架設 OpenAB#
OpenAB 的架構預設是設計來運行在 Kubernetes (k8s) 或 K3s 底下的。這種容器化設計是為了解決基本的安全性問題——既然 Agent 是在獨立的 pod 中執行,它能存取哪些檔案、擁有什麼系統權限,完全可以由你來嚴格定義與限制。
使用 AI Agent 輔助安裝#
其實起手式非常簡單。如果你跟我一樣對 K3s 沒有特別深入的研究,最省事的方法就是直接在 Host 主機上裝好你平常用的 Coding Agent CLI(例如 Claude Code),開啟後直接下達需求:
help me install k3s in local and openab , per https://github.com/openabdev/openab接著,AI 就會自己摸索,把 K3s 跟 OpenAB 順便一起幫你全部裝好。這些 Prompts 不需要死記,用你習慣的口吻告訴 Agent 你的需求,它自己就會想辦法安裝完成。




當然,AI 不一定每次都能一次做對。例如這次它跟我說安裝好了,但實際上我用指令查看,狀態顯示為 ERROR。

不過沒關係,這就是有 Agent 的好處——直接把報錯丟回去給它,它會自己 debug 並修正問題。

待狀態正常後,因為 Agent CLI(例如 Claude Code)在初始化時可能需要授權,我們需要先 exec 進入跑好的 pod 裡,完成對應的登入授權步驟:

授權完畢,就可以直接到 Discord 頻道中,開始跟你的 Bot 說話互動了!


系統架構簡圖#
如果你對 K3s 和容器架構不太熟悉,可以參考下面這張簡單的示意圖,了解整套系統是怎麼運作的:
+-----------------------------------------------------------------------------+
| [ 外部使用者環境 ] |
| |
| +---------------------------------------------------------------+ |
| | Discord / Slack 聊天軟體 | |
| +-------------------------------+-------------------------------+ |
+--------------------------------------|--------------------------------------+
| (傳送你的指令,例如:「幫我寫一個網頁」)
v
===============================================================================
| [ k3s 雲端主機環境 ] (負責管理與分配伺服器資源) |
| |
| +---------------------------------------------------------------------+ |
| | 【 openab-pod 】(透過 Image 跑起來的獨立網頁後端貨櫃) | |
| | | |
| | +-------------------------------------------------------------+ | |
| | | 【中樞調度】OpenAB Core (Rust 引擎) | | |
| | | * 24小時在線,負責跟外部的 Discord 連線與接收指令 | | |
| | +------------------------------+------------------------------+ | |
| | | (在 Pod 內部直接呼叫) | |
| | v | |
| | +-------------------------------------------------------------+ | |
| | | 【AI 執行官】Coding Agent CLI (如 Claude Code) | | |
| | | * 真正動手在 Pod 裡寫網頁、改 Code 與跑測試的地方 | | |
| | +------------------------------+------------------------------+ | |
| | | |
| +----------------------------------|----------------------------------+ |
+--------------------------------------|--------------------------------------+
| (遇到不會的問題時)
v
+-----------------------------------------------------------------------------+
| [ 雲端 AI 大腦 ] |
| |
| +---------------------------------------------------------------+ |
| | Anthropic / OpenAI API 雲端服務 | |
| +---------------------------------------------------------------+ |
+-----------------------------------------------------------------------------+持久化設定:本地目錄映射#
在預設情況下,Pod 內 Agent 的家目錄會存放在 PVC (Persistent Volume Claim) 中進行持久化:


但老實說,如果要進到 K3s 的 PVC 裡改檔案、看程式碼,流程超級不方便也不直覺。
於是我要求 Coding Agent 幫我修改設定:我希望可以直接在 Host 主機的 ~/openab/bot-ghost 路徑下,存取並編輯對應於 Pod 家目錄的檔案。
Agent 收到後就自己去修改 K3s 的 deployment 檔案並重新部署:

這樣設定完就舒服多了!現在我可以直接在 Host 主機的 ~/openab/bot-ghost/ 新增 AGENTS.md 來調整設定,並直接在 Discord 上進行測試:


後記#
其實還有很多調整的細節與內容,都很難整理成文章來特別發一篇文章,因為 openab 自由度太高了,需求不同、解法也不同,他只提供最基本的框架,不限制固定玩法,你可以自己用不一樣的方式來搭建,牽涉到的細節與技巧又都不太一樣。所以在這個過程當中,即便是有想要分享的內容,也很難彙整成一個主題,往往就會是散落凌亂的各種想法跟tip
使用 k3s / k8s 是官方原先預設的方式;為了要感受一下 openab 帶來的方便,甚至也提供了相當於試玩版的 windows binary(這個玩一下就好,感受到威力就可以考慮換k3s or 其他方式了);而在最近的軟體趨勢下,openab 也緊跟著技術前沿,不止前陣子推出了openshell的方式來安裝運行,現在更是推出了Amazon Bedrock AgentCore Runtime的支援,我相信不管對初學入門、進階玩家、高級用戶,都可以找到合適,且能運用到的場景
例如每天幫你收集財經資訊;或者全家人的群組中可以放一隻機器人,讓他來幫你找到大家都有空的時間,規劃旅遊行程(這個案例是社群分享的真實案例);又或者是人在外面,有靈感就透過discord發指令給機器人說:我想要寫一篇關於XXX的文章,然後文章就在短時間內依照你的寫文風格撰寫完畢,你要作的只是同意發布
他的靈活度很高,佈署很方便,支援很多平台,重視資安且企業導向,未來有機會我再慢慢分享給大家 也歡迎到社群逛逛 Openab Discord