logo
icon

OpenAB OpenCode

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

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

OpenAB OpenCode

OpenAB は、stdio JSON-RPC を通じて Discord を Agent Client Protocol 対応の coding CLI にブリッジする軽量なオープンソース Rust ハーネスです。

このテンプレートは OpenCode をエージェントバックエンドとして使用し、75+ の LLM プロバイダーをサポートします。

注意事項

  • イメージタグ: このテンプレートは固定バージョン(0.8.1-beta.5)を使用します。アップグレードするには、Zeabur Dashboard → サービス → 設定でイメージタグを変更してください。
  • 永続ストレージ: /home/node が永続ボリュームです。設定、認証情報、opencode.json が再起動後も保持されます。
  • ファイル権限: コンテナは root で起動後、node ユーザーに切り替えて openab を実行します。

セットアップ

1. Discord Bot トークンを取得

  1. https://discord.com/developers/applicationsNew Application をクリック
  2. Bot タブ → Reset Token → トークンをコピー
  3. 同ページで Message Content Intent を有効化
  4. OAuth2 → URL Generator → scope bot → 必要な権限を選択 → URLでBotを招待

2. LLM プロバイダーを設定(デプロイ後)

Zeabur Dashboard → サービス → 変数 で以下の環境変数を設定します:

変数名プロバイダー
OPENCODE_API_KEYOpenCode ネイティブ(opencode.ai で取得)
ANTHROPIC_API_KEYAnthropic Claude
OPENAI_API_KEYOpenAI GPT
GOOGLE_GENERATIVE_AI_API_KEYGoogle Gemini
GROQ_API_KEYGroq
MISTRAL_API_KEYMistral
DEEPSEEK_API_KEYDeepSeek
OPENROUTER_API_KEYOpenRouter(100+ モデルをプロキシ)

少なくとも 1 つ設定してサービスを再起動してください。

インタラクティブログイン(代替方法)

runuser -u node -- opencode auth login

⚠️ 必ず node ユーザーで実行してください。

3. チャンネル ID を取得

Discord → ユーザー設定 → 詳細 → 開発者モードを有効化 → チャンネルを右クリック → チャンネル ID をコピー

使い方

  • 許可されたチャンネルで Bot を @mention して会話を開始
  • OpenAB は自動的に thread を作成してマルチターン会話
  • 各 thread は OpenCode セッション(デフォルト 24 時間 TTL)に対応

カスタマイズ

ファイル説明
/home/node/.config/openab/config.tomlOpenAB 設定(sessions、reactions、STT など)
/home/node/opencode.jsonOpenCode モデル/プロバイダー設定
/home/node/.opencode/OpenCode 認証情報と状態

config.toml は初回起動時に内蔵テンプレートから作成されます。以降は直接ファイルを編集してください。デフォルトにリセットするには:rm /home/node/.config/openab/config.toml

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 を空のままにすると、サービスはクラッシュせずにスリープモードに入ります。

リンク