メインコンテンツまでスキップ

Discord セットアップガイド

このガイドでは、Discord ボットをゼロから作成し、権限を設定して Elftia に接続し、AI Agent を Discord サーバー内で動作させる手順を説明します。

前提条件

  • Discord アカウント
  • 管理者権限を持つ Discord サーバー(または新しいテストサーバー)
  • 少なくとも 1 つの LLM プロバイダーが設定済みの Elftia

ステップ 1: Discord アプリケーションを作成する

  1. Discord Developer Portal を開く
  2. 右上の New Application をクリックする
  3. アプリケーション名(例: Elftia Bot)を入力し、Create をクリックする
  4. 左側メニューの Bot をクリックする
  5. ページに表示されているボットユーザー名を控える

ステップ 2: Bot Token を取得する

  1. Bot ページで Token セクションを探す
  2. Reset Token をクリックする(初回の場合、トークンはそのまま表示されます)
  3. トークンをコピーし、安全に保管する

:::danger セキュリティ警告 Bot Token はボットのパスワードに相当します。公開したり、リポジトリにコミットしたりすることは絶対にしないでください。トークンが漏えいした場合は、Developer Portal ですぐにリセットしてください。 :::

ステップ 3: ボット権限を設定する

Bot ページで Privileged Gateway Intents セクションを探し、次の 2 つのオプションを有効にします。

  • MESSAGE CONTENT INTENT — ボットがメッセージ内容を読み取れるようにします(有効化必須)
  • SERVER MEMBERS INTENT — サーバーメンバー情報を取得できるようにします(推奨)

ページ下部の Save Changes をクリックします。

:::info Message Content Intent が必要な理由 2022 年以降、Discord では、ボットがメッセージ内容を読み取るには Message Content Intent を明示的に有効化する必要があります。有効化していない場合、ボットは空のメッセージしか受信しません。 :::

ステップ 4: 招待リンクを生成する

  1. 左側メニューの OAuth2 → URL Generator をクリックする
  2. SCOPESbot にチェックを入れる
  3. BOT PERMISSIONS で次の権限にチェックを入れる。
権限説明
Send Messagesメッセージを送信する
Read Message Historyメッセージ履歴を読む
View Channelsチャンネルを表示する
Embed Links埋め込みリンクを送信する
Attach Filesファイル添付を送信する
Add Reactions絵文字リアクションを追加する
Use External Emojis外部絵文字を使用する
  1. ページ下部の GENERATED URL をコピーする

ステップ 5: ボットをサーバーに招待する

  1. 前のステップでコピーした招待リンクをブラウザーで開く
  2. 対象サーバーを選択する(そのサーバーで Manage Server 権限を持っている必要があります)
  3. 権限リストを確認する
  4. Authorize をクリックし、CAPTCHA を完了する

招待に成功すると、サーバーのメンバーリストにボットが表示されます(まだ接続していないため、オフラインとして表示されます)。

ステップ 6: Elftia で設定する

  1. Elftia を開き、Settings → Channel に移動する
  2. Add Channel をクリックする
  3. Discord を選択する(プラグインがインストールされていない場合は、Marketplace から自動的にダウンロードされます)
  4. 設定フォームに入力する。
フィールド
Display nameこのインスタンスの名前(例: My Discord Bot
Bot Tokenステップ 2 で取得したトークンを貼り付ける
  1. Test Connection をクリックして、トークンが有効か確認する
  2. Save をクリックして Channel インスタンスを作成する

ステップ 7: トリガールールを設定する

インスタンスを作成した後は、適切なトリガールールを設定することをおすすめします。

モード推奨用途設定
mention複数ユーザーのサーバー@メンションされた場合のみ Agent が返信します。mentionName をボットのユーザー名に設定します
all専用/テストサーバーAgent がすべてのメッセージに返信します。個人利用に適しています
keywordトピック専用チャンネルトリガーキーワードのリストを設定します。大文字と小文字は区別されません
dm_only公開サーバーAgent はダイレクトメッセージにのみ返信します。グループ内では完全に無言です

Channel 設定でトリガーモードを選択し、対応するパラメーターを設定します。

ステップ 8: 接続を開始する

  1. Channel ページで、作成した Discord インスタンスを見つける
  2. Connect ボタンをクリックする(または Auto Connect を有効にする)
  3. 状態が Connected(緑のインジケーター)に変わるまで待つ
  4. Discord でボットにメッセージを送ってテストする

mention モードを使用している場合は、メッセージ内でボットに @メンションすることを忘れないでください。

@Elftia Bot Hello, please introduce yourself

Discord プラットフォーム機能

機能対応
グループチャット対応
ダイレクトメッセージ(DM)対応
添付ファイル/ファイル送信対応
入力中インジケーター対応
絵文字リアクション対応
スレッド/フォーラム一部対応
メッセージ長の上限2,000 文字

Agent の返信が 2,000 文字を超える場合、システムは自動的に複数のメッセージに分割します。分割は改行を優先し、次にスペース、最後に強制分割の順で行われます。

FAQ

ボットがオフラインと表示される

  • Elftia の Channel インスタンスの状態が「Connected」と表示されているか確認する
  • Bot Token が正しいことを確認する
  • Elftia アプリが実行中であることを確認する(Channel プラグインはメインプロセスで実行されます。アプリを閉じるとボットはオフラインになります)

ボットはオンラインだが応答しない

  • トリガールール設定が正しいことを確認する。mention モードを使用している場合は、mentionName がボットの実際のユーザー名と一致していることを確認してください
  • Developer Portal で MESSAGE CONTENT INTENT が有効になっていることを確認する
  • Elftia ログで、セキュリティパイプラインによる遮断(RateLimiter、PromptGuardian など)の記録がないか確認する
  • Agent に LLM プロバイダーとモデルが正しく設定されていることを確認する

メッセージが切り詰められる

Discord の単一メッセージの上限は 2,000 文字です。Agent の返信が長すぎる場合、システムは分割して複数のメッセージとして送信します。返信が不完全に見える場合は、後続メッセージを確認してください。

権限エラー(Missing Permissions)

  • 対象チャンネルでボットに Send MessagesView Channel 権限があることを確認する
  • サーバーロール設定の上書きルールがボットの権限を制限していないか確認する
  • Developer Portal で招待リンクを再生成し、必要な権限がすべてチェックされていることを確認する

複数の Discord インスタンス

Elftia では複数の Discord Channel インスタンスを作成でき、それぞれ別の Bot Token を使用して別のサーバーに接続できます。各インスタンスは独立したトリガールールとセキュリティポリシーを持つことができます。

次のステップ