Discord セットアップガイド
このガイドでは、Discord ボットをゼロから作成し、権限を設定して Elftia に接続し、AI Agent を Discord サーバー内で動作させる手順を説明します。
前提条件
- Discord アカウント
- 管理者権限を持つ Discord サーバー(または新しいテストサーバー)
- 少なくとも 1 つの LLM プロバイダーが設定済みの Elftia
ステップ 1: Discord アプリケーションを作成する
- Discord Developer Portal を開く
- 右上の New Application をクリックする
- アプリケーション名(例:
Elftia Bot)を入力し、Create をクリックする - 左側メニューの Bot をクリックする
- ページに表示されているボットユーザー名を控える
ステップ 2: Bot Token を取得する
- Bot ページで Token セクションを探す
- Reset Token をクリックする(初回の場合、トークンはそのまま表示されます)
- トークンをコピーし、安全に保管する
:::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: 招待リンクを生成する
- 左側メニューの OAuth2 → URL Generator をクリックする
- SCOPES で
botにチェックを入れる - BOT PERMISSIONS で次の権限にチェックを入れる。
| 権限 | 説明 |
|---|---|
| Send Messages | メッセージを送信する |
| Read Message History | メッセージ履歴を読む |
| View Channels | チャンネルを表示する |
| Embed Links | 埋め込みリンクを送信する |
| Attach Files | ファイル添付を送信する |
| Add Reactions | 絵文字リアクションを追加する |
| Use External Emojis | 外部絵文字を使用する |
- ページ下部の GENERATED URL をコピーする
ステップ 5: ボットをサーバーに招待する
- 前のステップでコピーした招待リンクをブラウザーで開く
- 対象サーバーを選択する(そのサーバーで Manage Server 権限を持っている必要があります)
- 権限リストを確認する
- Authorize をクリックし、CAPTCHA を完了する
招待に成功すると、サーバーのメンバーリストにボットが表示されます(まだ接続していないため、オフラインとして表示されます)。
ステップ 6: Elftia で設定する
- Elftia を開き、Settings → Channel に移動する
- Add Channel をクリックする
- Discord を選択する(プラグインがインストールされていない場合は、Marketplace から自動的にダウンロードされます)
- 設定フォームに入力する。
| フィールド | 値 |
|---|---|
| Display name | このインスタンスの名前(例: My Discord Bot) |
| Bot Token | ステップ 2 で取得したトークンを貼り付ける |
- Test Connection をクリックして、トークンが有効か確認する
- Save をクリックして Channel インスタンスを作成する
ステップ 7: トリガールールを設定する
インスタンスを作成した後は、適切なトリガールールを設定することをおすすめします。
| モード | 推奨用途 | 設定 |
|---|---|---|
mention | 複数ユーザーのサーバー | @メンションされた場合のみ Agent が返信します。mentionName をボットのユーザー名に設定します |
all | 専用/テストサーバー | Agent がすべてのメッセージに返信します。個人利用に適しています |
keyword | トピック専用チャンネル | トリガーキーワードのリストを設定します。大文字と小文字は区別されません |
dm_only | 公開サーバー | Agent はダイレクトメッセージにのみ返信します。グループ内では完全に無言です |
Channel 設定でトリガーモードを選択し、対応するパラメーターを設定します。
ステップ 8: 接続を開始する
- Channel ページで、作成した Discord インスタンスを見つける
- Connect ボタンをクリックする(または Auto Connect を有効にする)
- 状態が Connected(緑のインジケーター)に変わるまで待つ
- 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 Messages と View Channel 権限があることを確認する
- サーバーロール設定の上書きルールがボットの権限を制限していないか確認する
- Developer Portal で招待リンクを再生成し、必要な権限がすべてチェックされていることを確認する
複数の Discord インスタンス
Elftia では複数の Discord Channel インスタンスを作成でき、それぞれ別の Bot Token を使用して別のサーバーに接続できます。各インスタンスは独立したトリガールールとセキュリティポリシーを持つことができます。
次のステップ
- トリガールールとセキュリティ — トリガーモードとセキュリティパイプライン設定の詳細を学ぶ
- マルチプラットフォーム Channels 概要 — その他の対応プラットフォームを確認する