Open Agent Broker — stdio JSON-RPC を通じて Discord を ACP 対応の coding CLI(Claude Code、Codex、Gemini、Kiro、Cursor)にブリッジする軽量な Rust ハーネス。このテンプレートは Gemini バリアントをデプロイします。 ソース:https://github.com/openabdev/openab

OpenAB は、stdio JSON-RPC を通じて Discord を Agent Client Protocol 対応の coding CLI にブリッジする軽量なオープンソース Rust ハーネスです。
このテンプレートは Gemini バリアント(openab-gemini)をデプロイし、gemini --acp をエージェントバックエンドとして使用します。
0.8.3-beta.4)を使用します。アップグレードするには、Zeabur Dashboard → サービス → 設定でイメージタグを変更してください。利用可能なタグ:GitHub Packages。/home/node が永続ボリュームとしてマウントされます。プラグイン、設定、config、認証情報は再起動後も保持されます。bot にチェック → 権限にチェック:Send Messages、Send Messages in Threads、Create Public Threads、Read Message History、Add Reactions、Manage Messages最速: デプロイ時に GEMINI_API_KEY テンプレート変数を入力すれば、サービス起動時にそのまま使えます。
その他の方法: デプロイ後、Zeabur Dashboard → サービス → Exec で実行:
runuser -u node -- gemini
画面の指示に従って認証方法を選択し、完了させてください。認証情報は永続ボリュームに保存され、新しい会話に自動的に適用されます — 再起動は不要です。
API キーを 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/に保存されます。
123456789012345678,234567890123456789テンプレート変数を入力してデプロイをクリック。サービスは自動的に Discord に接続します。
Telegram、LINE、Feishu/Lark、Google Chat、MS Teams を接続するには、同じ Zeabur プロジェクトに OpenAB Gateway テンプレート をデプロイしてから、このサービスに次の環境変数を設定してください:
GATEWAY_URL = ws://openab-gateway:8080/wsGATEWAY_PLATFORM = telegram、line、feishu、googlechat、teams のいずれかサービスを再起動すると、起動スクリプトが config.toml に [gateway] セクションを自動追加します。
| ファイル | 説明 |
|---|---|
/home/node/.config/openab/config.toml | OpenAB 設定(sessions、reactions、STT など) |
config.toml は初回起動時に内蔵テンプレートから作成されます。以降の変更はファイルを直接編集してください。環境変数は初期設定時のみ使用されます。デフォルトに戻すにはファイルを削除して再起動:rm /home/node/.config/openab/config.toml
設定オプションは OpenAB ドキュメント を参照。
デフォルトでは、openab は他の bot や webhook からのメッセージを無視します。webhook がトリガーするメッセージ(自動テストや CI パイプラインなど)を許可するには、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 を空にしてください。サービスはクラッシュせずスリープ状態になります。