OpenClaw

OpenClaw と Discord 連携ガイド:WebSocket の低遅延活用とデプロイ手順

ⓘ本ページはプロモーションが含まれています

お得なお知らせ

スポンサードリンク
タイプ別にすぐ選べる

AIエージェント開発、どこから始める?

MCP・Claude・LangGraph…進化が速い領域こそ「体系学習 or 1冊集中」のどちらかを選ぶのが近道です。

▷ プロ講師から体系的に学んで"仕事で使えるAIエンジニア"になりたい人

東京AIスクール|無料説明会で相談▶

▷ 独学派で、まず1冊を読み込んで手を動かしたいエンジニア

【kindle本】Claude CodeによるAI駆動開発入門 ▶

※スクールは説明会のみでもOK。書籍は紙・電子どちらでも

▶ 実装リファレンスには 【kindle本】実践Claude Code入門が便利です。


スポンサードリンク

1. 全体像と主なメリット

項目 内容
通信方式 WebSocket (Discord Gateway) を利用した常時接続
双方向性 メッセージ受信 ⇄ 応答をリアルタイムで実現
遅延感 実測では数十ミリ秒程度(※1)で応答可能。HTTP ポーリング方式の LINE 連携と比べてはるかに速いです
インフラ要件 公開ポート (デフォルト 443) が通ればローカル・クラウドどちらでも動作。VPN/ファイアウォールで IP 制限すればセキュリティも担保できます

※1 本数値は自前環境(東京リージョンの VPS)におけるベンチマーク結果です。ネットワーク条件やサーバー負荷により変動します。


2. Discord Bot の作成手順

2.1 アプリケーションと Bot ユーザーの作成

  1. https://discord.com/developers/applications にアクセスし 「New Application」 → 任意の名前(例:OpenClawAI)を入力。
  2. 左メニューの Bot タブで 「Add Bot」 をクリック。
  3. 「USERNAME」欄に表示名、アイコンは 512 × 512 ピクセル推奨の画像をアップロード。

2.2 トークン取得と安全な保管

方法 手順 推奨ポイント
環境変数 (.env) DISCORD_BOT_TOKEN=xxxxxxxxx.env に記載し、.gitignore で除外。 手軽だがローカルに平文が残るリスクあり
シークレットマネージャ (例: AWS Secrets Manager) 1. シークレット作成 → discord_bot_token にトークンを保存
2. EC2/ECS のタスクロールで読み取り権限付与
3. 起動スクリプトで AWS_SECRET_ACCESS_KEY 等から取得し、DISCORD_BOT_TOKEN 環境変数に展開
暗号化・アクセス制御が自動。CI/CD でも安全に利用可能
Docker Secrets docker secret create discord_bot_token <token> → コンテナ起動時に /run/secrets/discord_bot_token 経由で取得 Swarm / Kubernetes 環境で便利

重要:トークンは絶対にリポジトリやログへ出力しないこと。漏洩した場合は Developer Portal からすぐに Regenerate してください。


3. OpenClaw 側設定

3.1 config.yaml に Discord 設定を追記

  • インデントはスペース2つ に統一し、YAML Linter (例: https://www.yamllint.com/) で事前チェックするとミスが減ります。
  • ws_endpoint は Discord が提供する公式エンドポイントですので変更不要です。

3.2 Gateway Intents の有効化

  1. Developer Portal → Bot タブ → Privileged Gateway Intents セクションへ。
  2. MESSAGE CONTENT INTENT と、必要に応じて SERVER MEMBERS INTENT をオンにする。
  3. 変更後は必ず 「Save Changes」 ボタンをクリック。

エラーメッセージ例:Gateway が 4010 (Invalid Intents) または 4011 (Disallowed Intent) のコードで接続を閉じます。このときコンソールに

と出力されるので、Intents 設定と config.yaml の内容が一致しているか確認してください。

3.3 必要権限とロール設定

権限 説明
Send Messages ユーザーへ返信できる
Read Message History 過去メッセージを取得し、文脈保持に利用
Add Reactions コマンド確認用リアクションが可能
Embed Links リッチコンテンツ(カード等)送信
Use Application Commands (スラッシュコマンド) 必要に応じて有効化

手順
1. サーバー設定 → RolesOpenClawBot ロールを作成。
2. 上記権限をロールに付与し、対象チャンネルの Permission Overwrites に追加。
3. Bot ユーザーにこのロールを割り当てる。


4. デプロイと 24 h 稼働環境

4.1 ローカル・クラウド共通要件

項目 必要な設定例
ポート 443/tcp (HTTPS) を開放。
Linux: ufw allow 443/tcp
ファイアウォール IP アドレス制限(社内からのみ許可)や VPN (WireGuard, OpenVPN) の併用で外部からの直接アクセスを防止
TLS Discord Gateway は WSS を使用するため、サーバー側に自己署名証明書は不要。逆に Outbound で 443 が許可されていることが必須

2026 年公式ガイド注記:Cloudflare Tunnel の利用は「推奨外」ではありますが、完全に禁止されたわけではありません。内部ネットワークからの直接接続が可能な環境であれば、トンネルは不要です(※2)。

※2 Cloudflare Docs (2026‑03) に記載。「Enterprise 以外のプランでは、Gateway 接続にトンネルを使用しないことがベストプラクティス」と示唆。

4.2 systemd によるサービス化(Linux)

コマンド

4.3 PM2(Node.js プラグインや外部スクリプト用)

ecosystem.config.js

実行


5. 機密情報の安全な管理

5.1 SOUL.mdHEARTBEAT.md の暗号化と取り扱い

手順 コマンド例 補足
.gitignore に除外 echo "SOUL.md" >> .gitignore && echo "HEARTBEAT.md" >> .gitignore 誤ってリポジトリにコミットしないようにする
GPG で暗号化 gpg --symmetric --cipher-algo AES256 SOUL.md
gpg --symmetric --cipher-algo AES256 HEARTBEAT.md
対称鍵方式。パスフレーズは別途管理
パスフレーズの安全保管 1. 環境変数 GPG_PASSPHRASE に設定(CI/CD のシークレットストア経由)
2. Secret Manager (AWS/GCP/Azure) に保存し、起動時に注入
平文のパスフレーズがディスクに残らないようにする
実行時復号 bash<br># /opt/openclaw/decrypt_ws.sh<br>#!/usr/bin/env bash<br>set -euo pipefail<br>mkdir -p /tmp/openclaw_ws<br>gpg --quiet --batch --yes --passphrase "$GPG_PASSPHRASE" \<br> -o /tmp/openclaw_ws/SOUL.md -d SOUL.md.gpg<br> 復号後はプロセス終了時に rm -f で削除(systemd の ExecStopPost に登録)

5.2 Git 管理上のベストプラクティス

  1. 機密ファイルは必ず .gitignore に追加し、コミット前に git status で確認。
  2. 誤ってコミットした場合は Git フィルタリング を実行。例:

bash
git filter-repo --path SOUL.md.gpg --invert-paths

  1. CI/CD では Secrets Manager(GitHub Actions Secrets、GitLab CI Variables 等)を利用し、環境変数経由でアプリに注入。
  2. リポジトリの履歴から機密情報が除去されたことを確認したら、キャッシュサーバーやフォーク も同様に削除する。

6. トラブルシューティング

エラー 発生原因(主な) 対処手順
401 Unauthorized (Discord API) Bot トークンが無効、または環境変数未設定 echo $DISCORD_BOT_TOKEN で確認
・トークンを再生成し .env/Secret Manager に正しく登録
403 Forbidden – Missing Access 必要権限がロールに付与されていない ロールに Send Messages 等を追加し、Bot にロール割当
4010 Invalid Intents / 4011 Disallowed Intent (Gateway) Intents が有効化されていないか、config.yaml と不一致 Developer Portal で対象 Intents をオンにし、YAML の配列を更新後再起動
4004 Authentication Failed (WebSocket) トークン形式エラーや URL 誤り ws_endpoint が公式通りか、トークン文字列が正しいか検証
WebSocket connection timed out ファイアウォール/VPN の設定ミス ポート 443 がアウトバウンドで開放されているか確認。VPN 使用時はルーティングを再チェック
SyntaxError in config.yaml インデントや文字列クオートのミス YAML Linter で検証し、スペース2つインデントに統一

実例:トークンが空の場合のフロー


7. 動作確認コマンドとデモシナリオ

コマンド 説明
!ping Bot が即座に Pong! と返信。接続・レイテンシの最簡易テスト
!help 利用可能コマンド一覧を DM で送信(権限が足りないと Missing Access が返る)
!query 今週の売上は? カスタムプラグインがデータベースや外部 API に問い合わせ、結果をテキストまたは埋め込みメッセージで返す

実演フロー例

  1. ユーザーがチャンネルへ !ping → Bot が 30 ms 前後で Pong! を返信。
  2. 次に !query 本日のタスクは? → OpenClaw が /tmp/openclaw_ws/SOUL.md(復号済)から「今日のタスクリスト」セクションを抽出し、箇条書きで回答。

この段階で systemdRestart=on-failurePM2 のメモリ上限設定が機能していることを確認できれば、24 h 自動稼働環境は完成です。


8. まとめ & 次のアクション

  1. WebSocket による低遅延双方向通信 が OpenClaw と Discord の最適な連携手段です(実測遅延は数十 ms)。
  2. Bot 作成 → トークン取得 → シークレット管理 を必ず行い、平文保存を避けます。
  3. config.yaml に正確な guild_id, intents, ws_endpoint を記載し、Developer Portal で Intents と権限を有効化。
  4. デプロイは ポート 443 の開放 または VPN 経由 がベース。Cloudflare Tunnel は必須ではありません(公式ガイド参照)。
  5. systemd または PM2 によるサービス化で、障害時の自動再起動とログ管理を実装。
  6. 機密ファイル (SOUL.md, HEARTBEAT.md) は GPG 暗号化 + .gitignore、パスフレーズはシークレットマネージャ経由で環境変数に注入し、復号後はプロセス終了時に安全に削除。
  7. 典型的なエラー(トークン無効・Intents 未許可・権限不足)と対処フローを把握しておくことで、障害復旧が迅速に行えます。

次のステップ:公式サイトから最新の OpenClaw バイナリ/Docker イメージを取得し、本ガイド通りに設定・デプロイしてください。初回起動後は !ping で接続確認、問題がなければ本番環境へ移行します。


このドキュメントは2026年4月時点の情報を元に作成しています。Discord API の変更やクラウドプロバイダーのポリシー更新に伴い、適宜内容をご確認ください。

スポンサードリンク

お得なお知らせ

スポンサードリンク
タイプ別にすぐ選べる

AIエージェント開発、どこから始める?

MCP・Claude・LangGraph…進化が速い領域こそ「体系学習 or 1冊集中」のどちらかを選ぶのが近道です。

▷ プロ講師から体系的に学んで"仕事で使えるAIエンジニア"になりたい人

東京AIスクール|無料説明会で相談▶

▷ 独学派で、まず1冊を読み込んで手を動かしたいエンジニア

【kindle本】Claude CodeによるAI駆動開発入門 ▶

※スクールは説明会のみでもOK。書籍は紙・電子どちらでも

▶ 実装リファレンスには 【kindle本】実践Claude Code入門が便利です。


-OpenClaw