OpenClawをDiscordにつないだのに、Botがオンラインのまま一言も返してこない。
トークンも貼ったし、招待もした。それでも沈黙が続くと、どこを疑えばいいのか分からなくなります。
私はOpenClawを家計簿の入力や外出先からのちょっとした用事に使い、別のAIエージェントのHermesもDiscordに常駐させています。
公式ドキュメントを読み込むと、OpenClawのDiscord設定はトークンより「許可」の段階で止まりやすい作りだと分かります。
OpenClawのDiscord設定を6ステップに分け、返信しないときに見る場所まで順番にまとめます。
この記事でわかること
- OpenClawをDiscordで動かすまでの6ステップ
- Message Content Intentと招待URLの権限の選び方
- DMペアリングとサーバー用の許可リスト(groupPolicy・guilds)の書き方
- Botが返信しないときのチェックリストと診断コマンド
PARTS LIST /目次
OpenClawのDiscord設定は6ステップで終わる
OpenClawのDiscord設定は、Bot作成から許可リストまでの6ステップで終わります。
作業の半分はDiscord Developer Portal側で、残りの半分がOpenClaw側の設定ファイルです。
手順そのものは公式ドキュメント(docs.openclaw.ai/channels/discord)に載っています。
ただ、公式は設定項目が多く、どれが最低限でどれが後回しでいいのかが読み取りにくい作りです。
2026年10月時点の公式ドキュメントをもとに、最短ルートだけを抜き出しました。
- Discord Developer PortalでBotを作る
- Message Content Intentをオンにする
- 招待URLを作ってサーバーにBotを入れる
- Botトークンを環境変数でOpenClawに渡す
- gatewayを起動して、最初のDMでペアリングを承認する
- サーバーのチャンネルを許可リストに入れる
OpenClawのDiscord連携とは?できること
OpenClawのDiscord連携とは、Discord BotをOpenClawの入り口にして、DMやサーバーのチャンネルからエージェントに指示を出せるようにする仕組みです。
OpenClawはTelegramやWhatsAppなど複数のチャットアプリにつながるAIエージェントで、Discordはその接続先(チャンネル)の1つという位置づけです。
- DMでBotに話しかけて、エージェントに作業を頼む
- サーバーのチャンネルごとに別のセッションとして使い分ける
- スラッシュコマンドやスレッドで会話を整理する
- 音声チャンネルにも参加させられる(テキストが動いてからで十分)
スマホのDiscordアプリから自宅のマシンに用事を投げられるのが、いちばん効く使い方です。
始める前に用意するもの3つ
用意するものは3つで、どれも無料でそろいます。
自分専用のサーバーを新しく作っておくのがおすすめです。
既存のサーバーで試すと、ほかの参加者の発言にBotが反応するかどうかまで気にする羽目になります。
Discord側の準備|Botを作って招待する
Discord側でやることは、Bot作成・Intentの有効化・招待の3つです。
このパートでつまずく人の多くは、Intentを入れ忘れたまま先へ進んでいます。
Botは招待した時点で「オンライン」と表示されるため、Intentが抜けていても見た目では気づけません。
後から原因を探すと時間を溶かすので、順番どおりに片付けてしまいましょう。
Developer PortalでBotを作成する
Botの作成はDiscord Developer Portalで2分ほどで終わります。
step
1アプリケーションを作る
discord.com/developers/applications を開き、「New Application」から名前を付けて作成します。
名前はあとで変えられるので、「openclaw-home」のような分かりやすいもので十分です。
step
2Botのトークンを控える
左メニューの「Bot」を開き、「Reset Token」を押してトークンを表示します。
トークンは表示されたその場でしか確認できないので、パスワード管理アプリなどに控えてください。
トークンをチャットに貼らない
Botトークンはアカウントのパスワードと同じ扱いです。AIとのチャット欄やスクリーンショットに載せず、漏れたらすぐ「Reset Token」で作り直します。
Message Content Intentを必ずオンにする
同じ「Bot」ページの「Privileged Gateway Intents」で、Message Content Intentをオンにします。
これがオフだと、Botはメッセージが届いたこと自体は分かっても、本文を読めません。
なお、Botが100サーバー以上に参加するとPrivileged Intentの利用に審査が必要になります。
自分用のBotなら1サーバーなので、気にしなくて大丈夫です。
招待URLの権限はこの6つで足りる
招待URLは「OAuth2」→「OAuth2 URL Generator」で作ります。
スコープはbotとapplications.commandsの2つにチェックを入れます。
- View Channels
- Send Messages
- Read Message History
- Embed Links
- Attach Files
- Send Messages in Threads(スレッドで使う場合)
動画の解説ではAdministrator(管理者)権限を付ける手順も見かけますが、自分専用のサーバーでもおすすめしません。
エージェントに渡す権限は、使う分だけに絞るほうが事故の範囲が小さく済みます。
生成されたURLをブラウザで開き、自分のサーバーを選べば招待は完了です。
OpenClaw側の設定|トークンとDMペアリング
OpenClaw側は、トークンを渡す・設定を反映する・ペアリングを承認するの3つです。
OpenClawのDiscordは、知らない相手からのDMにいきなり応答しない設計になっています。
DMの初期値が「pairing」(ペアリング必須)なので、最初の1回だけ自分で承認する手間が入ります。
面倒に見えますが、トークンが漏れても他人に勝手に使われにくい仕組みなので、ここは素直に従うのが得策です。
Botトークンは環境変数で渡す
トークンは設定ファイルに直接書かず、環境変数で渡します。
export DISCORD_BOT_TOKEN="控えたBotトークン"
設定ファイルには「環境変数のどこを読むか」だけを書きます。
設定ファイルをGitで管理したり、誰かに見せたりしてもトークンが漏れません。
常時起動のマシンなら、シェルの設定ファイル(~/.zshrcなど)に書いておくと再起動後も困りません。
config patchで設定を反映する
設定は、差分だけを書いたファイルをopenclaw config patchで流し込むのが確実です。
まずはdiscord.patch.json5という名前で、DMだけ使う最小構成を作ります。
{
channels: {
discord: {
enabled: true,
token: { source: "env", provider: "default", id: "DISCORD_BOT_TOKEN" },
dmPolicy: "pairing",
},
},
}
いきなり本番に反映せず、--dry-runで変更内容を確認してから適用します。
openclaw config patch --file ./discord.patch.json5 --dry-run
openclaw config patch --file ./discord.patch.json5
openclaw gateway
openclaw gatewayはDiscordとの接続を受け持つプロセスです。
止めるとBotも黙るので、常時動かすマシンで起動しておきます。
最初のDMでペアリングを承認する
gatewayが起動したら、DiscordでBotにDMを送ります。
するとBotからペアリングコードが返ってくるので、OpenClawを動かしているマシンで承認します。
openclaw pairing list discord
openclaw pairing approve discord コード
ペアリングコードの有効期限は1時間です。
DMを送ったまま放置して翌日に承認しようとすると、コードが切れています。
その場合はもう一度DMを送り、新しいコードで承認すれば大丈夫です。
DMが送れないときは、サーバーアイコンを右クリック→「プライバシー設定」で、サーバーメンバーからのDMを許可しているか確認してください。
サーバーのチャンネルで使うための許可リスト
DMが動いたら、サーバーのチャンネルでも使えるようにします。
OpenClawはサーバー(Discord内部ではguild)に対しても慎重で、channels.discordを設定した時点でgroupPolicyの初期値が「allowlist」になります。
つまり、許可リストに書いていないサーバーではBotが反応しません。
「招待したのに無視される」の正体はたいていここなので、DMとは別に設定が要ると覚えておくと迷いません。
groupPolicyとguildsの書き方
許可リストには、サーバーIDと、話しかけてよいユーザーのIDを書きます。
IDを取るには、Discordの「ユーザー設定」→「詳細設定」で開発者モードをオンにしておきます。
あとはサーバーアイコンや自分のアイコンを右クリックして「IDをコピー」で取得できます。
{
channels: {
discord: {
groupPolicy: "allowlist",
guilds: {
"サーバーID": {
requireMention: true,
users: ["自分のユーザーID"],
},
},
},
},
}
groupPolicyに入れられる値は3つです。
自分用ならallowlistのままが安心です。
openにすると、Botを別のサーバーに入れられたときにも応答してしまいます。
メンションなしで返信させるには
サーバーのチャンネルでは、requireMentionの初期値がtrueです。
@Bot名を付けずに書き込んでも返事がないのは、壊れているのではなく仕様どおりの動きです。
自分しかいないプライベートなサーバーなら、requireMention: falseにすると毎回のメンションが不要になります。
ただしrequireMentionはguildsの中、サーバーIDの下に書く必要があります。
channels.discordの直下に書いても効かないので、書く場所に注意してください。
チャンネルを用途別に分ける運用
Discordのチャンネルは、OpenClawでは別々のセッションとして扱えます。
1つのチャンネルにすべての用事を流し込むより、用途ごとに分けたほうが会話の文脈が混ざりません。
注意したいのは、チャンネルをまたいで記憶が共有されるとは限らない点です。
「さっき別のチャンネルで言ったこと」を前提に話しかけると、通じないことがあります。
Botが返信しない時のチェックリスト
Botが返信しないときは、上から順に確認すれば原因をほぼ特定できます。
Discord側の設定、OpenClawの許可リスト、gatewayの状態の3か所のどこかで止まっているケースがほとんどです。
やみくもに設定を書き換えると、直ったときに何が効いたのか分からなくなります。
1つ確認したら1回試す、の順で進めてください。
オンラインなのに無反応ならIntentと許可リスト
オンライン表示なのに無反応なら、まずMessage Content Intentを確認します。
次に、そのサーバーがguildsに入っているか、話しかけた自分のIDがusersに入っているかを見ます。
DMでは返事があるのにサーバーだけ黙る場合は、ほぼ間違いなく許可リストの問題です。
ペアリングコードは1時間で切れる
DMで「ペアリングしてください」の案内が出たまま進まない場合は、コードの期限を疑います。
コードは発行から1時間で無効になります。
openclaw pairing list discordで承認待ちの一覧を見て、表示されなければDMを送り直してください。
openclaw doctorと--probeで原因を絞る
目で見て分からないときは、診断コマンドに任せます。
openclaw doctor
openclaw channels status --probe
openclaw logs --follow
openclaw doctorは設定の不整合を、channels status --probeはDiscordとの実際の接続状態を確かめます。
logs --followを開いたままBotに話しかけると、メッセージが届いているのに捨てられているのか、そもそも届いていないのかが分かります。
設定を変えたあとはopenclaw security auditで、許可が広がりすぎていないかも確認しておくと安心です。
Hermes Agentとの使い分け
私はOpenClawとHermes Agentの両方を使っていて、DiscordにはHermesも常駐させています。
同じDiscordに2つのエージェントを置くと、どちらに何を頼むかを決めておかないと手が止まります。
私の基準は「家族と共有したいならOpenClaw、自分用ならHermes」です。
OpenClawは許可リストやペアリングの仕組みが細かく、複数人で使う前提の作りになっています。
そのぶん、自分しか使わないなら設定項目の多さが少し重たく感じます。
HermesをDiscordで動かす方法や、Claude Codeも含めた3つの使い分けとモデルの振り分けは、opencode go×Hermes Agentで月10ドルAI環境にまとめています。
OpenClaw Discord設定のよくある質問
OpenClawのDiscord設定で迷いやすい点を、Q&A形式でまとめました。
Botが黙る原因は、Intent・許可リスト・メンション設定の3つでほぼ説明できます。
細かい手順は各見出しの本文もあわせて確認してください。
Q1. OpenClawのDiscord Botがオンラインなのに返信しないのはなぜ?
A1. 多いのはMessage Content Intentのオフと、許可リストの漏れです。
Developer PortalでIntentを確認し、サーバーで使うならguildsにサーバーIDと自分のユーザーIDを書いてください。
Q2. サーバーのチャンネルでメンションなしで返信させるには?
A2. guildsの中のサーバーIDの下にrequireMention: falseを書きます。
初期値はtrueなので、何も書かなければ@Bot名を付けたときだけ返事をします。
Q3. Botトークンはどこに書けばいい?
A3. 環境変数DISCORD_BOT_TOKENに入れ、設定ファイルには参照先だけを書きます。
設定ファイルに直接書くと、共有やバックアップのときに漏れる原因になります。
Q4. ペアリングコードの有効期限は?
A4. 発行から1時間です。
期限が切れたらBotにもう一度DMを送り、新しいコードをopenclaw pairing approve discordで承認します。
Q5. 招待URLに管理者権限は必要?
A5. 必要ありません。
View Channels・Send Messages・Read Message History・Embed Links・Attach Files・Send Messages in Threadsがあれば、テキストでのやり取りは一通りできます。
Q6. 1つのOpenClawで複数のDiscord Botを動かせる?
A6. 動かせます。
channels.discord.accountsの下にBotごとの名前を付け、それぞれ別の環境変数からトークンを読ませます。
Discord設定でつまずかないための要点まとめ
OpenClawのDiscord設定は、トークンを渡すところまでは誰でも進めます。
止まるのはその先の「許可」で、Intent・ペアリング・許可リスト・メンションの4つがBotの沈黙の正体でした。
【要点まとめ】
- Message Content Intentは最初にオンにする
- トークンは環境変数で渡し、チャットに貼らない
- 最初のDMはペアリングの承認が必要(コードは1時間で失効)
- サーバーで使うならguildsにサーバーIDとユーザーIDを書く
- メンションなしにしたいならguildsの下でrequireMention: false
まずはDMで1往復できるところまで進めてみてください。
最初の返事が返ってきたら、チャンネルを用途別に切っていく段階です。
どの用事をOpenClawに任せ、どれを手元に残すか。
そこは使いながら決めていくしかありません。
| REV. | DATE | 内容 |
|---|---|---|
| 2 | 2026-10-16 | 図解を描き直し(図面のデザインにそろえた) |
| 1 | 2026-10-10 | 初版 |

