Discord
Discord Bot を Agent に接続 —— ギルドスコープ、チャネルスコープ、マルチギルドのルーティング。
Discord は ToShop のもう 1 つのファーストクラスチャネルです。Bot を構成し、特定のギルドとチャネルにスコープすれば、チームが既に話している場所に Agent が現れます。
セットアップ
Discord アプリを作成
discord.com/developers へ → New Application → Bot → Bot トークンをコピー。
Message Content Intent を有効化
必須 —— これがないと Bot はメッセージ本文を見られません
同じページ: Bot → Privileged Gateway Intents → Message Content Intent。オンに切り替えます。
Bot を招待
ギルドにスコープ bot、applications.commands で招待します。権限整数 380104896(読み取り + 送信 + 履歴の読み取り)が妥当な最小セットです。
ToShop でチャネルを追加
設定 → Channels → Add Discord → トークン + guildId を貼り付け。
認証情報とポリシー
botToken—— Discord Developer Portal から取得したトークン。OS のキーチェーンに保存されます。guildId—— この Bot がサービスする Discord サーバーの ID。channelId—— 任意 —— ギルド内の特定のチャネル 1 つに Bot を限定します。allowedChannels—— Bot がリッスンできるチャネル ID のリスト(単一の channelId の代替)。groupPolicy—— allowlist(デフォルト —— リスト内のチャネルのみ)または open(ギルド内の任意のチャネル)。
Discord で ID を見つける
開発者モードを有効化
ユーザー設定 → 詳細設定 → 開発者モード。
右クリックでコピー
任意のギルドまたはチャネルを右クリック → ID をコピー。
メッセージのルーティング
Bot に DM
紐づけた Agent との 1:1 会話。
チャネルでメンション
Agent はメンションに反応します。同じスレッド内の返信は会話のコンテキストを保ちます。
スラッシュコマンド
Agent ごとに設定すれば、ユーザーは構造化されたコマンドを素早くトリガーできます。
1 つの Agent に複数の Discord ギルド
1 つの Agent を複数の Discord ギルドに紐づけられます(例: チームのメインサーバー + 顧客サポートサーバー)。各ギルドは独自のチャネルコンテキストを保ちますが、すべてを同じ Agent が処理します。
トランスポートモード
Discord の通常モードは socket(WebSocket ゲートウェイ)です。Webhook はスラッシュコマンドの対話に使われます。
サーバー側の落とし穴
状態インジケータ
Telegram と同じセット: ok、standby、degraded、fatal —— 設定 → Channels の各チャネルカードに表示されます。
ネットワーク安全性
Discord トリガーのタスクは ネットワーク allowlist の下で動作します —— 明示的に allowlist に入れていない限り、プライベート IP はブロックされます。
よくあるパターン
チーム Q&A Bot
#help で runbook、コードベース、または Shopify カタログに関する質問に答えます。
Ops ダッシュボードチャネル
Autopilot タスクが #ops に日次サマリを投稿します。
承認ゲートチャネル
長時間タスクが人間の承認を求めるとき #approvals にピングします。
チャネルごとの Skill スコープ
#shop-ops は Shop Agent(Shopify のみ)にルーティング、#dev-ops は Dev Agent(GitHub + ターミナル)にルーティング。
ToShopドキュメント