logo
icon

OpenAB Gemini

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

template cover
展開済み24
発行者zeaburZeabur
作成日2026-04-20
最小構成2 コア4 GB
推奨構成4 コア8 GB
タグ
AIDeveloper ToolsDiscord

OpenAB Gemini

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、認証情報は再起動後も保持されます。
  • ファイル権限: コンテナは root で起動し、openab 実行前に node ユーザー(uid 1000)に切り替わります。権限の問題が発生した場合、サービスを再起動してください — 起動時に自動的に権限が修正されます。

セットアップ

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 キーを 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] セクションを自動追加します。

使い方

  • 許可されたチャンネルで Bot を @mention して会話を開始
  • 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 パイプラインなど)を許可するには、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 を空にしてください。サービスはクラッシュせずスリープ状態になります。

リンク