logo
icon

OpenAB Hermes

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

template cover
展開済み0
発行者zeaburZeabur
作成日2026-05-17
最小構成2 コア4 GB
推奨構成4 コア8 GB
タグ
AIDeveloper ToolsDiscordSlack

OpenAB Hermes

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 はプロバイダーごとに OAuth ベースで認証を行います。単一の API key 変数はありません — デプロイ後、サービス内で hermes auth add <provider> を実行して、使用したい各 LLM プロバイダーを紐付けてください。

セットアップ

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. Discord チャンネル ID の取得

  1. Discord を開く → ユーザー設定(歯車アイコン)→ 詳細設定開発者モード を有効化
  2. Bot に応答させたいチャンネルを右クリック → チャンネル ID をコピー
  3. 複数チャンネルはカンマで区切る:123456789012345678,234567890123456789

3. デプロイ

変数を入力してデプロイをクリック。サービスは自動的に Discord に接続しますが、ステップ 4 で少なくとも 1 つのプロバイダーで認証するまで LLM 応答は生成されません。

4. Hermes プロバイダーの認証

サービスが起動した後、Zeabur Dashboard → サービス → Exec ターミナルを開いてください。Hermes は多数のプロバイダーをサポートしています — まずは 1 つ選んで始めましょう。一般的な 2 つの選択肢を以下に示します。

選択肢 A:Nous Portal(最もシンプル)

runuser -u agent -- hermes auth add nous

表示される URL を開いて OAuth を完了してください。

選択肢 B:xAI Grok 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 を再実行してやり直してください。

認証後:デフォルト model の選択

インタラクティブピッカーを使用:

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 ドキュメント を参照してください。

Slack セットアップ(オプション)

OpenAB は Socket Mode 経由で Slack をサポートします — 公開 URL は不要です。

  1. https://api.slack.com/appsCreate New AppFrom scratch
  2. Socket Mode → 有効化 → scope connections:write で App-Level Token を生成 → xapp-... token をコピー(SLACK_APP_TOKEN
  3. Event Subscriptions → 有効化 → bot events を追加:app_mentionmessage.channelsmessage.groups
  4. OAuth & Permissions → Bot Token Scopes → 追加:app_mentions:readchat:writechannels:historygroups:historychannels:readgroups:readreactions:writefiles:readusers:read
  5. Install App → ワークスペースにインストール → xoxb-... token をコピー(SLACK_BOT_TOKEN
  6. Bot を使用したい各 Slack チャンネルで /invite @YourAppName を実行

デプロイ前に SLACK_BOT_TOKENSLACK_APP_TOKEN 変数を入力してください。Discord と Slack は同時に使用できます。

メッセージプラットフォームを追加(Telegram / LINE / Feishu / Google Chat / MS Teams / WeCom)

Telegram、LINE、Feishu/Lark、Google Chat、MS Teams、WeCom を接続するには、同じ Zeabur プロジェクトに OpenAB Gateway テンプレート をデプロイしてから、このサービスに次の環境変数を設定してください:

  • GATEWAY_URL = ws://openab-gateway:8080/ws
  • GATEWAY_PLATFORM = telegramlinefeishugooglechatteamswecom のいずれか

サービスを再起動すると、起動スクリプトが config.toml[gateway] セクションを自動追加します。

使い方

  • 許可された Discord または Slack チャンネルで Bot を @mention して会話を開始
  • OpenAB は自動的に thread を作成してマルチターン会話を行います — 以降のメッセージでは @mention 不要
  • 各 thread は永続的な Hermes session に対応(デフォルト 24 時間 TTL)

カスタマイズ

ファイル説明
/home/agent/.config/openab/config.tomlOpenAB 設定(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 TokenSLACK_BOT_TOKEN の両方を空にしてください。サービスはクラッシュせずスリープ状態になります。

リンク