Open Agent Broker — stdio JSON-RPC を通じて Discord と Slack を ACP 対応の coding CLI にブリッジする軽量な Rust ハーネス。このテンプレートは Nous Research の Hermes Agent をバックエンドとして使用します — OAuth により 30+ の LLM プロバイダー(xAI Grok、Anthropic、OpenAI、Nous Portal など)に対応した multi-provider inference gateway です。 ソース:https://github.com/openabdev/openab

OpenAB は、stdio JSON-RPC を通じて Discord と Slack を Agent Client Protocol 対応の coding CLI にブリッジする軽量なオープンソース Rust ハーネスです。
このテンプレートは Hermes バリアントを使用します:Nous Research の Hermes Agent をバックエンドとして採用しています。Hermes 自体が multi-provider inference gateway であり、OAuth トークンのライフサイクル、認証情報の保存、プロバイダーのルーティングを内部で処理します。30+ の LLM プロバイダー(xAI Grok、Anthropic、OpenAI、Nous Portal など)に対応しているため、OpenAB 側でプロバイダー認証を扱う必要はありません。
0.8.3-beta.10)を使用しています。アップグレードするには、Zeabur Dashboard → サービス → 設定でイメージタグを変更してください。利用可能なタグ:GitHub Packages。/home/agent が永続ボリュームとしてマウントされます。Hermes の認証情報、プラグイン、設定、config は再起動後も保持されます。hermes auth add <provider> を実行して、使用したい各 LLM プロバイダーを紐付けてください。bot にチェック → 権限にチェック:Send Messages、Send Messages in Threads、Create Public Threads、Read Message History、Add Reactions、Manage Messages123456789012345678,234567890123456789変数を入力してデプロイをクリック。サービスは自動的に Discord に接続しますが、ステップ 4 で少なくとも 1 つのプロバイダーで認証するまで LLM 応答は生成されません。
サービスが起動した後、Zeabur Dashboard → サービス → Exec ターミナルを開いてください。Hermes は多数のプロバイダーをサポートしています — まずは 1 つ選んで始めましょう。一般的な 2 つの選択肢を以下に示します。
runuser -u agent -- hermes auth add nous
表示される URL を開いて OAuth を完了してください。
⚠️ 有効な SuperGrok 有料プラン($30/月)が必要です。 サブスクリプションがなくても認証は成功しますが、API は黙って空のレスポンスを返します — bot は動作しているように見えても、決して返信しません。
xAI の OAuth はコンテナ内の 127.0.0.1:56121 へのループバックリダイレクトを使用します。Zeabur はこのポートを公開しないため、「2 つのターミナル」のテクニックを使用します:
ターミナル 1 — auth listener を起動:
runuser -u agent -- hermes auth add xai-oauth --no-browser
&state=XXXXX を含む authorize URL が出力され、http://127.0.0.1:56121/callback で待機します。
ブラウザ側 — その authorize URL を開く → 承認。ブラウザは http://127.0.0.1:56121/callback?code=... にリダイレクトされ、失敗します("Could not establish connection")。URL バーから code の値をコピーしてください。
ターミナル 2 — もう 1 つの Exec セッションを開いて、callback をローカルに送信:
runuser -u agent -- curl "http://127.0.0.1:56121/callback?code=<CODE>&state=<STATE>"
ターミナル 1 に Added xai-oauth OAuth credential #1 と表示されるはずです。code は数秒で期限切れになります — invalid_grant が表示された場合は、hermes auth add xai-oauth を再実行してやり直してください。
インタラクティブピッカーを使用:
runuser -u agent -- hermes model
…または provider と model を 2 つの別々の key として設定します(これが hermes-acp に必要な形式です — hermes config set の例で示される provider/model の結合形式は standalone CLI 用であり、openab では 動作しません):
runuser -u agent -- hermes config set provider xai-oauth
runuser -u agent -- hermes config set model grok-4-latest
設定は /home/agent に保存され、再起動後も保持されます。新しい Discord セッションは自動的に新しい model を使用します — 再起動は不要です。
その他のプロバイダー(Anthropic、OpenAI など)については、Hermes Agent ドキュメント を参照してください。
OpenAB は Socket Mode 経由で Slack をサポートします — 公開 URL は不要です。
connections:write で App-Level Token を生成 → xapp-... token をコピー(SLACK_APP_TOKEN)app_mention、message.channels、message.groupsapp_mentions:read、chat:write、channels:history、groups:history、channels:read、groups:read、reactions:write、files:read、users:readxoxb-... token をコピー(SLACK_BOT_TOKEN)/invite @YourAppName を実行デプロイ前に SLACK_BOT_TOKEN と SLACK_APP_TOKEN 変数を入力してください。Discord と Slack は同時に使用できます。
Telegram、LINE、Feishu/Lark、Google Chat、MS Teams、WeCom を接続するには、同じ Zeabur プロジェクトに OpenAB Gateway テンプレート をデプロイしてから、このサービスに次の環境変数を設定してください:
GATEWAY_URL = ws://openab-gateway:8080/wsGATEWAY_PLATFORM = telegram、line、feishu、googlechat、teams、wecom のいずれかサービスを再起動すると、起動スクリプトが config.toml に [gateway] セクションを自動追加します。
| ファイル | 説明 |
|---|---|
/home/agent/.config/openab/config.toml | OpenAB 設定(sessions、reactions、STT など) |
/home/agent/.config/hermes/ | Hermes 認証情報とプロバイダー設定(hermes auth / hermes model で管理) |
config.toml は初回起動時に内蔵テンプレートから作成されます。以降の変更はファイルを直接編集してください。環境変数は初期設定時のみ使用されます。デフォルトに戻すにはファイルを削除して再起動:rm /home/agent/.config/openab/config.toml
OpenAB の設定オプションは OpenAB ドキュメント を、Hermes プロバイダーのオプションは Hermes ドキュメント を参照してください。
デプロイ時に Discord Bot Token と SLACK_BOT_TOKEN の両方を空にしてください。サービスはクラッシュせずスリープ状態になります。