エージェントをDiscordに接続する

所要時間およそ10分。完了すれば、あなたのDiscordサーバー内に、エージェントと会話するDiscordボットが追加されます。Telegramと比べてステップが多いのは、Discordではボット作成が開発者ポータルと招待フローの2つに分かれているためです。ただし、これは一度きりの作業です。

はじめる前に

  • すでにデプロイ済みで、ポータルに active と表示されているエージェント
  • Discordアカウント
  • サーバー管理 または 管理者 権限を持っているDiscordサーバー(管理者でないサーバーにはボットを追加できません)
  • 所要時間およそ10分
考え方

Telegramとは違い、Discordには「ボットに話しかけてボットを作る」という仕組みはありません。ブラウザでDiscordの 開発者ポータル にアクセスし、アプリケーション を登録、その下に ボット を作成、招待URL を生成し、そのURLからボットをサーバーに追加し、最後にボットのトークンをOpenClawに貼り付けます。手順は多そうに見えますが、クリック数で言えば合計10回ほどです。

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

  1. discord.com/developers/applications にアクセスします。サインインしていない場合はログインします。
  2. 右上の New Application をクリックします。
  3. 名前を付けます。開発者ポータルとDiscordの双方で表示されます。エージェント名をそのまま使って構いません。例: Acme Support
  4. 開発者規約に同意し、Create をクリックします。

ステップ 2 — ボットを設定する

  1. アプリケーションの設定ページが表示されます。左サイドバーで Bot をクリックします。
  2. Privileged Gateway Intents セクションで、次の項目を有効化します:
    • Server Members Intent — エージェントがユーザー単位でパーソナライズする場合に必要
    • Message Content Intent — ボットがメッセージ本文を読むために必要(ほとんどのエージェントで必要です)
    Discordはプライバシー上の理由から、これらを既定で オフ にしています。有効化しないと、ボットは自身へのメンションしか見えず、メッセージ本文を読むことはできません。
  3. Save Changes をクリックします。

ステップ 3 — ボットトークンをコピーする

  1. Bot ページのまま、Reset Token(または利用可能ならView Token)をクリックします。Discordがトークンを生成し、1回だけ表示します。
  2. トークンをコピーします。形式は次のようになります:
    MTAxNjMwODc4ODI3MTQ1NDgwMA.GxYz_a.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890ABCD
トークンはパスワードと同じように扱ってください

ボットトークンを持っている人は誰でも、そのボットが参加しているどのサーバーでも、メッセージを読んだり投稿したりできます。公開チャネル、スクリーンショット、gist、gitコミットには絶対に貼り付けないでください。万一漏えいした場合は、Botページで Reset Token をクリックして無効化し、新しいトークンでOpenClawを更新してください。

ステップ 4 — 招待URLを生成する

  1. 左サイドバーで OAuth2、続いて URL Generator をクリックします。
  2. Scopes で、次の項目にチェックを入れます:
    • bot
    • applications.commands(後でスラッシュコマンドを登録できるようにするため)
  3. 下に Bot Permissions という2つ目のボックスが現れます。少なくとも以下にチェックを入れてください:
    • Read Messages/View Channels
    • Send Messages
    • Embed Links
    • Read Message History
    • Use Slash Commands
    Administrator は付与しないでください。ボットにはほぼ不要で、付与するとトークンが漏れた際の影響範囲が大きくなります。
  4. ページ下部にDiscordが生成した招待URLが表示されます。コピーしてください。

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

  1. 招待URLをブラウザのアドレスバーに貼り付けてEnterを押します。
  2. Discordがボットを追加するサーバーを尋ねてきます。対象のサーバーを選びます(そのサーバーで サーバー管理 または 管理者 権限が必要です)。
  3. 要求されている権限がステップ4で設定したものと一致していることを確認し、Authorize をクリックします。
  4. DiscordがCAPTCHAを表示し、続いて成功画面になります。これでボットがサーバーに加わり、メンバーサイドバーに表示されます。ただしまだソフトウェアが動いていないためオフラインです。それを次のステップで行います。

ステップ 6 — トークンをOpenClawに貼り付ける

  1. Cloudoポータルで、接続したいエージェントの Open my OpenClaw をクリックします。
  2. Channels タブを開きます。
  3. Discord をクリックし、続いて Connect をクリックします。
  4. ステップ3のボットトークンを Bot Token 欄に貼り付けます。
  5. Save をクリックします。OpenClawがDiscordのゲートウェイに接続し、次のように確認メッセージを表示します:
    Connected as Acme Support#1234 (in 1 server: My Server)

数秒以内に、Discordのメンバーサイドバーでボットのステータスがオフラインからオンラインに変わります。

ステップ 7 — 最初のメッセージを送る

Discordサーバーの、ボットがアクセスできる任意のチャネルでボットをメンションします:

@Acme Support hi, what can you do?

設定した話し方で、数秒以内にエージェントが返事をするはずです。@メンションしていない場合はボットは反応しません。Discordでは、変更しない限りボットの動作は既定でメンションのみに反応する設定になっています(下記参照)。

仕上げ(任意)

スラッシュコマンド

OpenClawは /help/reset/contact-human のようなスラッシュコマンドを登録できます。OpenClawのDiscordチャネル設定でコマンドを定義してください。Discordはおよそ30分以内にグローバルで登録します(単一サーバー内であれば即時登録)。

チャネルのスコープ設定

既定では、ボットは閲覧できるすべてのチャネルで待機しています。特定のチャネルに限定したい場合は、Discordのチャネルごとのロール権限を調整するか、OpenClaw側で許可リストに含まれるチャネルでのみ応答するように設定します。

ボットアバターと説明

開発者ポータルでアプリケーションのルート設定に戻り、アバター(正方形画像)をアップロードし、短い説明(ボットのプロフィールを表示したユーザーに見えます)を設定します。

トラブルシューティング

ボットはオンラインなのにメンションしても応答しない

もっともよくある原因は、Message Content Intent がオフになっていることです。

  1. 開発者ポータル → 該当のアプリケーション → Bot タブに戻ります。
  2. Privileged Gateway Intents までスクロールします。
  3. Message Content Intent(ユーザー単位でパーソナライズするなら Server Members Intent も)を有効化します。
  4. 保存します。
  5. OpenClawで接続を再起動します(いったん切断し、同じトークンで再接続)。

Intentが有効でもボットが応答しない場合は、該当チャネルでのボットの権限を確認してください。チャネルレベルのロール上書きにより、View ChannelSend Messages が外されていることがあります。

“401 Unauthorized” や “invalid token”

トークンが間違っているか、リセットされています。開発者ポータル → Bot → Reset Token で新しいトークンを取得し、コピーしてOpenClawに貼り付け、保存してください。

トークンを保存してもボットがオフラインのまま

次の順に確認してください:

  1. OpenClawで接続のステータスが connected になっていること(error ではない)。errorと出ている場合はトークンが間違っています。
  2. クレジット残高がゼロを超えていること。接続自体は維持されますが、残高がゼロになるとエージェントは応答しません。
  3. ステップ5でボットを実際にサーバーへ招待していること。BotタブとOAuth2の招待は別の手順です。招待を飛ばしてしまい、ボットがサーバーにいない理由が分からなくなる、ということがよくあります。

ボットをサーバーから外したい

Discordのメンバーサイドバーでボットを右クリック → Kick。ボットは退出しますが、アプリケーションとトークンは有効なままです。再登録なしでステップ5から再招待できます。

ボットを完全に削除したい

開発者ポータル → 該当のアプリケーション → General Information → ページ下部の Delete App。これによりトークンは恒久的に無効化されます。


以上です。あなたのエージェントは、ほかのチャネルと同じSOULとスキル、同じ話し方でDiscord上でも応答するようになりました。1つのエージェントで、すべてのチャネルへ。

次は: Slackに接続する。まだなら Telegram を見直すのもおすすめです。あるいは ドキュメントの目次 に戻ります。

Discordを接続する — Cloudo ドキュメント