部署 OpenAB 搭配原生 Rust coding agent(openab-agent)作為 Discord/Slack 機器人。單一靜態 binary、無 Node.js 或 Python runtime、冷啟動 ~50ms。支援 Anthropic API key 或 OpenAI Codex(ChatGPT Plus/Pro)OAuth device flow 訂閱認證。 來源:https://github.com/openabdev/openab

一鍵部署 OpenAB 搭配 openab-agent——OpenAB 自帶的原生 Rust coding agent。無 Node.js、無 Python、無 adapter 層。
| openab-native | 其他 agent 模板 | |
|---|---|---|
| Runtime | 無(單一 Rust binary) | Node.js / Python |
| 冷啟動 | ~50ms | 1–3 秒 |
| Image 大小 | ~20MB 層 | 300–800MB |
| Adapter 層 | 無(ACP 內建) | 需 codex-acp / pi-acp / agy-acp |
| 工具 | 4 個:read / write / edit / bash | 依 CLI 而定 |
設計目標:快速、可預測的 agent loop,無 npm/pip 供應鏈風險。
beta 標籤。若要 pin 特定版本,請至 Zeabur Dashboard → 服務 → 設定修改映像標籤。/home/agent 掛載為持久化磁碟。Config 與認證 Token(~/.openab/agent/auth.json)會在重啟後保留。/home/agent/.config/openab/config.toml。之後直接編輯即可。DISCORD_BOT_TOKENbot、權限勾 Send Messages、Read Message History、Add Reactions 等方案 A — Anthropic API key(最簡單):
把 Anthropic API key 貼到 ANTHROPIC_API_KEY。Agent 預設用 claude-sonnet-4-20250514。完成。
方案 B — OpenAI Codex 訂閱(ChatGPT Plus/Pro):
ANTHROPIC_API_KEY 留空。部署後於 Zeabur Dashboard → Exec 分頁執行:
openab-agent auth codex-device
依畫面顯示的 URL 與 code 在瀏覽器完成授權。Token 會存於 ~/.openab/agent/auth.json,重啟後仍有效。
驗證:
openab-agent auth status
設定 OPENAB_ALLOWED_CHANNELS 限制 bot 回應的頻道;留空則允許所有頻道。
connections:write)app_mention、message.channels、message.groupsapp_mentions:read、chat:write、channels:history 等xoxb-... 與 xapp-... token於 Zeabur Dashboard → 服務 → 環境變數新增:
| 變數 | 預設 | 說明 |
|---|---|---|
OPENAB_AGENT_PROVIDER | auto-detect | anthropic 或 codex 強制指定 |
OPENAB_AGENT_MODEL | claude-sonnet-4-20250514(Anthropic) | 任何 Anthropic 模型 ID |
OPENAB_AGENT_OPENAI_MODEL | gpt-4.1-nano(Codex) | provider 為 codex 時使用 |
OPENAB_AGENT_MAX_TOKENS | 8192 | 輸出最大 token 數 |
Auto-detect 順序:先試 ANTHROPIC_API_KEY,再試 OAuth token store。
| 檔案 | 說明 |
|---|---|
/home/agent/.config/openab/config.toml | OpenAB 設定(sessions、reactions 等) |
/home/agent/.openab/agent/auth.json | OAuth token(Codex 流程) |
重置:rm /home/agent/.config/openab/config.toml 後重啟。
Native agent 的 bash 工具預設過濾環境變數——ANTHROPIC_API_KEY、*_TOKEN、*_SECRET 等不會傳給子程序,避免 prompt injection 攻擊外洩 API key。需要傳入特定安全變數可加到 OPENAB_AGENT_BASH_ENV_ALLOW(以逗號分隔)。