Open Agent Broker — stdio JSON-RPC を通じて Discord を ACP 対応の coding CLI にブリッジする軽量な Rust ハーネス。このテンプレートは OpenCode を使用し、75+ の LLM プロバイダーをサポートします。 ソース:https://github.com/openabdev/openab

OpenAB は、stdio JSON-RPC を通じて Discord を Agent Client Protocol 対応の coding CLI にブリッジする軽量なオープンソース Rust ハーネスです。
このテンプレートは OpenCode をエージェントバックエンドとして使用し、75+ の LLM プロバイダーをサポートします。
0.8.3-beta.4)を使用します。アップグレードするには、Zeabur Dashboard → サービス → 設定でイメージタグを変更してください。/home/node が永続ボリュームです。設定、認証情報、opencode.json が再起動後も保持されます。node ユーザーに切り替えて openab を実行します。bot → 必要な権限を選択 → URLでBotを招待Zeabur Dashboard → サービス → 変数 で以下の環境変数を設定します:
| 変数名 | プロバイダー |
|---|---|
OPENCODE_API_KEY | OpenCode ネイティブ(opencode.ai で取得) |
ANTHROPIC_API_KEY | Anthropic Claude |
OPENAI_API_KEY | OpenAI GPT |
GOOGLE_GENERATIVE_AI_API_KEY | Google Gemini |
GROQ_API_KEY | Groq |
MISTRAL_API_KEY | Mistral |
DEEPSEEK_API_KEY | DeepSeek |
OPENROUTER_API_KEY | OpenRouter(100+ モデルをプロキシ) |
少なくとも 1 つ設定してサービスを再起動してください。
インタラクティブログイン(代替方法)
runuser -u node -- opencode auth login
⚠️ 必ず
nodeユーザーで実行してください。
API キーを agent に渡す: openab は
env_clear()で agent サブプロセスを分離するため、env var ルートには allowlist が必要です。初回起動後に/home/node/.config/openab/config.tomlを編集し、[agent]セクションに追加:[agent] inherit_env = ["OPENCODE_API_KEY", "ANTHROPIC_API_KEY", "OPENAI_API_KEY", "GOOGLE_GENERATIVE_AI_API_KEY", "GROQ_API_KEY", "MISTRAL_API_KEY", "DEEPSEEK_API_KEY", "OPENROUTER_API_KEY"]
opencode auth loginは編集不要 — 認証情報は~/.opencode/に保存されます。
Discord → ユーザー設定 → 詳細 → 開発者モードを有効化 → チャンネルを右クリック → チャンネル ID をコピー
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 など) |
/home/node/opencode.json | OpenCode モデル/プロバイダー設定 |
/home/node/.opencode/ | OpenCode 認証情報と状態 |
config.toml は初回起動時に内蔵テンプレートから作成されます。以降は直接ファイルを編集してください。デフォルトにリセットするには:rm /home/node/.config/openab/config.toml
デフォルトでは、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 を空のままにすると、サービスはクラッシュせずにスリープモードに入ります。