言語を切り替える
テーマを切り替える

OpenClawマルチプラットフォーム設定実戦:13のチャネルでAIアシスタントを一元管理

午前3時、私はスマホの画面をぼんやりと見つめていました。

さっきWhatsAppでAIアシスタントに明日の会議日程を整理させたばかりなのに、会社に着いてSlackを開くと、AIは朝の議論を完全に忘れています。また一から要件を説明し直しです。夜、Discordでチームミーティングをしている時も同じ展開——プロジェクトの背景を一から説明し直す。AIがまるで記憶喪失になったかのようです。

「なぜ、どのプラットフォームでも『私』を覚えていてくれるAIアシスタントがいないんだろう?」

この思いがきっかけで、OpenClawをいじり始めました。正直、公式サイトに「13のプラットフォーム対応」と書いてあるのを見た時は、「設定が死ぬほど面倒くさそう」と思いました。しかし、Channel層アーキテクチャの設計は実にスマートでした。一度デプロイすれば、Telegram、WhatsApp、Discord、Slackなどあらゆるプラットフォームに接続でき、すべての会話をシームレスに同期できるのです。

これからの15分で、3つのプラットフォームを設定する全プロセスと、私が踏んだ「地雷」、そしてセキュリティ設定のノウハウを共有します。私のように仕事とプライベートで違うツールを使っている人には、きっと役立つはずです。

OpenClawのChannel層アーキテクチャはどう動いているのか?

OpenClawを調べ始めた時、疑問に思いました。Telegramのステッカー、Discordの埋め込み(embed)、WhatsAppのボイスメッセージ…フォーマットが全然違うのに、どうやってOpenClawはそれらを「共通言語」として扱っているのか?

答えは「Channel Adapters」層にあります。

メッセージ正規化の魔法

想像してください。あなたがTelegramでスタンプを送り、Discordで画像付きembedを送り、WhatsAppで音声を送ったとします。これらは各プラットフォームで全く異なるデータ構造をしていますが、Channel AdaptersがこれらをOpenClawが理解できる統一フォーマットに変換します。

具体的には:

  • Telegram stickers → 標準化された画像添付ファイル
  • Discord embeds → テキスト+メディアの組み合わせとして解析
  • WhatsApp reactions → 絵文字テキストに変換
  • ボイスメッセージ → 音声ファイルを抽出して文字起こし(設定されている場合)

このプロセスは完全に透明(transparent)です。あなたはただ各プラットフォームでメッセージを送るだけ。OpenClawが自動的にフォーマット変換を行います。

Gateway Server:交通の要所

メッセージが正規化されると、Gateway Serverに入ります。これがOpenClawの中枢脳であり、3つの役割を担います:

  1. Session Router(セッションルーター):このメッセージはどの会話セッションに属するか?個人のDMか?チームのグループか?それともプラットフォームを跨いだ同一人物の会話か?
  2. Lane Queue(レーンキュー):並行処理の制御。同時に3つのプラットフォームからメッセージを送っても、Lane Queueが競合しないよう順序正しく処理します。
  3. メッセージ転送:AIの返答を正しいプラットフォームの正しい相手に送り返します。

正直、「per-channel-peer」とか「per-account-channel-peer」といったセッションルーターの設定オプションを最初に見た時は混乱しました。これらのポリシーについては後で詳しく説明しますが、まずは一点だけ覚えてください:Gatewayのおかげで、WhatsAppで始めた会話をTelegramでシームレスに続けることができます。

13
対応プラットフォーム数

13のプラットフォーム、どれを使う?

OpenClawが現在サポートしているリスト:

  • IM:WhatsApp, Telegram, Signal, iMessage (BlueBubbles経由)
  • コラボレーション:Slack, Microsoft Teams, Google Chat, Discord
  • その他:Matrix, Zalo, Twitch, WebChat

私の組み合わせは Telegram(個人用)+ WhatsApp(家族・友人用)+ Discord(技術コミュニティ用)です。自分の利用シーンに合わせて選んでください。

3大プラットフォーム実戦設定(これに従えば15分で完了)

さて、理屈は十分です。手を動かしましょう。

インストールと初期化

ターミナルを開き、以下の2行を実行します:

npm install -g openclaw@latest
openclaw onboard --install-daemon

onboard がいくつか質問してきます:

  1. AIプロバイダー選択:Claude, GPT, Gemini, またはローカル?(私は慣れているClaudeを選択)
  2. APIキー:ペーストします。スペースや引用符が入らないように注意
  3. Gatewayポート:デフォルトの18789のままでOK。

数分後、以下のように表示されます:

✓ Gateway WebSocket server started on ws://127.0.0.1:18789
✓ Control UI available at http://localhost:18789

おめでとうございます。OpenClawがあなたのPCで稼働しました。

セキュリティのヒント:Control UIはデフォルトでlocalhostからのみアクセス可能です。リモートサーバー上の場合はSSHトンネルを使ってください:

ssh -N -L 18789:127.0.0.1:18789 your-server

Telegram設定:最も簡単な入門

Telegramは設定が一番速いので、ここから始めましょう。

  1. Bot作成

    • Telegramで @BotFather を検索
    • /newbot を送信
    • Botに名前をつける(例:“My OpenClaw Assistant”)
    • トークンを取得(1234567890:ABCdefGHIjklMNOpqrsTUVwxyz のような文字列)
  2. OpenClaw設定

    openclaw config set telegram.token "YOUR_BOT_TOKEN"

    YOUR_BOT_TOKEN を先ほど取得した実際のトークンに置き換えます。

  3. 検証

    • Telegramで自分のBot名を検索
    • /start を送信
    • Botが応答すれば成功

私が最初に設定した時、Botが無反応でした。原因はトークンをコピペした際に改行コードが入っていたことでした。トークンの前後の余計な文字は必ずチェックしてください。

WhatsApp設定:QRコードスキャン

WhatsAppはスマホとのペアリングが必要なので少し複雑です。

  1. ペアリング開始

    openclaw config set whatsapp.enabled true
    openclaw gateway restart
  2. QRコードスキャン

    • ターミナルにQRコードが表示されます
    • WhatsAppを開く → 設定 → リンクされたデバイス → デバイスをリンク
    • ターミナルのQRコードをスキャン
  3. 接続待機
    “WhatsApp connected” と表示されれば成功です。

注意事項

  • スマホとPCが両方オンラインである必要があります(WhatsAppの仕様)。
  • QRコードの期限が切れたら、openclaw gateway restart で再生成してください。
  • OpenClawはBaileysライブラリを使用してWhatsApp Webプロトコルを利用します。公式にBANされた事例は聞きませんが、ポリシー変更のリスクは自己責任で評価してください。

最初はBANを心配しましたが、スパム行為(一斉送信など)をしなければ通常利用で問題になったことはありません。仕組みはWhatsApp Webと同じだからです。

Discord設定:権限が鍵

DiscordはDeveloper Portalでのアプリ作成が必要で、手順が少し多いです。

  1. アプリ作成

  2. 権限設定
    ここが重要です。権限が足りないとBotはメッセージを受け取れません。

    • “OAuth2 → URL Generator” へ
    • Scopesで bot をチェック
    • Bot Permissionsで以下をチェック:
      • Read Messages/View Channels
      • Send Messages
      • Read Message History
      • Attach Files
    • 生成されたURLをコピーしてブラウザで開き、Botをサーバーに招待
  3. OpenClaw設定

    openclaw config set discord.token "YOUR_DISCORD_BOT_TOKEN"
    openclaw config set discord.guildId "YOUR_SERVER_ID"

    Guild ID(サーバーID)の取得方法:

    • Discordで開発者モードをON(設定 → 詳細設定 → 開発者モード)
    • サーバーアイコンを右クリック → IDをコピー
  4. テスト

    • Discordの任意のチャンネルでBotにメンション(@Bot名)
    • 返信が来るか確認

私が最初に失敗したのは、権限設定で Read Message History を忘れていたことでした。これがないとBotは過去のメッセージを読めず沈黙します。このステップは飛ばさないでください。

セッション管理の秘密——AIに全プラットフォームで「自分」を覚えさせる

3つのプラットフォームを設定した後に気づくかもしれません。TelegramでAIと話し終えてDiscordに切り替えた時、AIはどうやって同一人物だと認識するのでしょう?

それがSession Routerの役割です。

Mainセッション vs 隔離セッション

OpenClawのデフォルト戦略は、すべてのDM(個人チャット)は同一の “main” セッションに入る というものです。

どういうことかというと、Telegramで話そうが、WhatsAppで話そうが、Discordで話そうが、それらは共有の対話履歴を持ちます。AIはどのプラットフォームでも、あなたが過去に話した内容を覚えています。

しかし、チームでOpenClawを導入し、複数の同僚が使う場合はこれでは困ります。みんなのメッセージが混ざってしまうからです。その場合は隔離戦略が必要です:

openclaw config set session.dmScope "per-channel-peer"

この設定にすると、「各プラットフォームの各ユーザー」ごとに独立したセッションが作られます。

さらに細かい隔離も可能です:

openclaw config set session.dmScope "per-account-channel-peer"

これは複数のOpenClawアカウントを管理する場合の設定です。

正直、個人利用ならデフォルトの “main” セッションのままにしておくのが一番です。「私という個人」を全プラットフォームで統一して認識してほしいからです。

クロスプラットフォームID連携

時には、明示的に「Telegramの@usernameとWhatsAppの+8190xxxxは同一人物だ」と教える必要があります。

session.identityLinks を設定します:

session:
  identityLinks:
    - platforms:
        telegram: "@your_username"
        whatsapp: "+819012345678"
        discord: "123456789012345678"  # Discord User ID

これで、どのプラットフォームから話しかけてもOpenClawはあなただと認識し、同じ会話の続きができます。

便利なセッションコマンド

AIの話が脱線してリセットしたい時や、現在のモデルを確認したい時に役立ちます:

  • /status - 現在のモデル、トークン消費量、セッション時間を確認
  • /new - セッションをリセットし、履歴をクリア
  • /activation mention - グループ内でメンションされた時のみ反応するように設定
  • /activation always - グループ内の全メッセージに反応(うるさいので注意)

Control UIのSessionsページで使える管理コマンドもあります:

  • sessions_list - アクティブなセッション一覧
  • sessions_history - 対話履歴のエクスポート
  • sessions_send - 特定のセッションに手動でメッセージ送信

正直 /new を一番使います。AIの理解がズレた時、修正するよりリセットした方が早いことが多いです。

セキュリティ設定——見知らぬ人の「タダ乗り」を防ぐ

設定して数日ウキウキして使っていたら、突然API請求額が跳ね上がりました。ログを確認すると、見知らぬ誰かが私のBotを猛烈に使い倒していました。

この事件を機に、OpenClawのセキュリティポリシーを真剣に調べました。

DMペアリング戦略:デフォルトの防衛線

OpenClawのデフォルト dmPolicypairing(ペアリングモード)です。

これはどういう仕組みかというと、見知らぬ人が初めてあなたのBotにDMを送ってもBotは無視します。代わりにログに6桁のペアリングコードを生成します。あなたは手動で承認する必要があります:

openclaw pairing approve telegram ABC123

コードは1時間で期限切れになり、ブルートフォース攻撃を防ぎます。承認されて初めて、そのユーザーはBotを使えるようになります。

最初は面倒だと思いましたが、理解しました——このガードがないと、Botのユーザー名を知った誰もがあなたのAPIキーを使って(つまりあなたのお金で)無限にAIを使えてしまうのです。

4つのDMポリシー、どれを選ぶ?

OpenClawは4つの戦略を提供しています:

ポリシー適用シーンリスク
pairing(デフォルト)個人利用、友人にシェア🟢 低リスク
allowlist特定のホワイトリストユーザーのみ🟢 低リスク
open公開Bot、誰でも利用可🔴 高リスク
disabledDM完全無効、グループのみ🟢 低リスク

コミュニティ向けに公開Botを作りたいなら open ですが、必ずトークン使用量の監視等とセットで運用してください。破産します。

設定例:

openclaw config set dmPolicy "allowlist"
openclaw config set dmAllowlist "telegram:@friend1,whatsapp:+819012345678"

グループサンドボックス隔離:悪意あるコマンドを防ぐ

OpenClawのAIエージェントはツール(bashコマンド、ファイル操作など)を実行できます。もし誰かがグループチャットで rm -rf / を実行させようとしたら?

グループサンドボックス戦略はこのためのものです。

openclaw config set agents.defaults.sandbox.mode "non-main"

この設定の意味は「非メインセッション(グループチャット等)のAIはDockerサンドボックス内で動作し、ホストファイルシステムにはアクセスできない」です。

許可/拒否するツールも細かく設定できます:

agents:
  defaults:
    sandbox:
      mode: "non-main"
      allowedTools:
        - web_search
        - calculator
      deniedTools:
        - bash
        - file_write

私はグループチャットでは検索と計算機のみ許可し、bashとファイル操作は禁止しています。機能とリスクのバランスです。

メンション制御:「常時オンライン」の気まずさを回避

DiscordサーバーにAIを入れた後、すべての発言に返信してくると非常に鬱陶しいです。

activation: mention ポリシーで、メンションされた時だけ反応させましょう:

openclaw config set agents.defaults.activation "mention"

これでAIは静かな潜水夫のように待機し、必要な時だけ呼び出せます。

セキュリティチェックリスト

openclaw doctor

このコマンドは設定をスキャンし、潜在的なリスクを警告してくれます:

  • dmPolicy: open without rate limiting
  • sandbox.mode: disabled in group sessions
  • ✓ API key properly configured
  • ✓ DM pairing enabled

一度 doctor を走らせれば、多くのセキュリティホールを塞げます。

ハマりどころとトラブルシューティング

設定プロセスには必ず落とし穴があります。私が落ちた穴を紹介します。

落とし穴1:APIキーの問題

症状:Botは起動しているが、メッセージを送っても無反応。ログに Invalid API key

原因

  1. キーのコピー時にスペースや引用符が入った
  2. 環境変数が反映されていない(ターミナル再起動が必要)
  3. APIアカウントの残高不足(ClaudeやGPTはプリペイドの場合あり)

解決

# 余計な文字がないか確認して再設定
openclaw config set anthropic.apiKey "sk-ant-..."
# 設定確認
openclaw config get anthropic.apiKey
# Gateway再起動
openclaw gateway restart

落とし穴2:ポート競合

症状openclaw gateway startPort 18789 already in use エラー。

原因:前のGatewayプロセスがゾンビ化して残っている。

解決

# 優雅に停止
openclaw gateway stop
# ダメなら強制終了
pkill -f openclaw-gateway
# 再起動
openclaw gateway start

落とし穴3:Control UIへのアクセス問題

症状:ブラウザで http://localhost:18789 を開くと control ui requires HTTPS or localhost と表示される。

原因:リモートサーバーにデプロイし、IPアドレスで直接アクセスしている。

解決策1:トークンパラメータを使う

http://your-server-ip:18789?token=YOUR_TOKEN

トークンは ~/.openclaw/gateway.env にあります。

解決策2:SSHトンネル(推奨)

ssh -N -L 18789:127.0.0.1:18789 user@your-server

これでローカルから http://localhost:18789 で安全にアクセスできます。

落とし穴4:Channel接続失敗

Telegram

  • トークン有効性確認:BotFatherで確認
  • ネットワーク問題:特定の地域ではプロキシが必要

WhatsApp

  • QR期限切れ:openclaw gateway restart で再生成
  • スマホオフライン:スマホがネットに繋がっていないと同期不可
  • デバイス数制限:WhatsAppは最大4台まで

Discord

  • 権限不足:Read Message History を確認
  • Guild ID間違い:正しいサーバーIDか確認
  • Bot未招待:OAuth2 URLで招待し直し

落とし穴5:セッション消失

症状:Gateway再起動後、以前の会話履歴が消えた。

原因:OpenClaw(2026年初頭時点)はセッション永続化を実装していません。メモリ上のセッションは再起動で消えます。

緩和策

  • 重要会話は sessions_history でエクスポート
  • 公式の永続化機能実装(ロードマップにあり)を待つ

正直、これが一番改善してほしい点です。更新のたびにAIに自己紹介し直すのは面倒ですから。

まとめ

2週間OpenClawをいじり倒して感じた最大のメリットは、本当にAIがクロスプラットフォームの「統一アシスタント」になるということです。

朝WhatsAppでスケジュールを確認し、会社でSlackで議論し、夜Discordで連携する。すべての文脈がシームレスに繋がる体験は、単一プラットフォームのBotでは味わえません。

Channel層アーキテクチャの正規化、Session RouterによるID管理、そして細粒度のセキュリティ制御。システム全体が柔軟かつ堅牢に設計されています。

もちろん、OpenClawはまだ進化途中です。セッションの永続化やSkillsマーケットプレイスなど、今後のロードマップにも期待大です。

もしあなたも試してみたいなら:

curl -fsSL https://openclaw.ai/install.sh | bash

15分の設定で、クロスプラットフォームAIアシスタントが手に入ります。

設定で詰まったらGitHub Discussionsへ。コミュニティの反応は早いです。私もTelegram接続でトラブった時、10分で助けてもらいました。

あなたはどのプラットフォームを繋げますか? どんな落とし穴がありましたか? ぜひ共有してください。

FAQ

なぜopenモードではなくpairingモードが推奨されるのですか?
pairingモードはOpenClawのデフォルトDMポリシーで、見知らぬ人からの初回メッセージを無視し、ログに6桁のコードを生成します。あなたが手動で openclaw pairing approve telegram ABC123 と承認しない限り使用できません。これにより、ボット名を知った第三者が勝手にAPIを利用し、あなたの課金枠を消費する「タダ乗り」を確実に防げます。openモードはコミュニティ用など特殊な用途向けです。
Discord設定でBotが反応しません。
9割の原因は権限不足です。Developer PortalのBot Permissionsで「Read Message History」にチェックが入っているか確認してください。これがないとBotは過去のメッセージ(直前のメッセージ含む)を読めず、反応できません。また、OAuth2 URLで招待し直す必要がある場合もあります。
WhatsAppのペアリング後、スマホは常時オンラインである必要がありますか?
はい、必要です。OpenClawはBaileysライブラリを使用し、WhatsApp Webプロトコルで通信します。WhatsAppの仕様上、スマホがオフラインになるとWeb版(つまりOpenClaw)もメッセージを送受信できなくなります。常時稼働させたい場合はTelegramやDiscordの方が安定しています。
AIはTelegramとWhatsAppの私が同一人物だとどうやって認識しますか?
デフォルトでは認識しません。認識させるには設定ファイルの session.identityLinks に、各プラットフォームのID(Telegramの@username、WhatsAppの電話番号、DiscordのユーザーID)をマッピングする必要があります。これを設定すると、どのプラットフォームから話しかけても同じセッション履歴(コンテキスト)が維持されます。
Gatewayを再起動すると会話履歴が消えますか?
はい、消えます。現時点(2026年初頭)のOpenClawはセッションの永続化(再起動後も履歴保持)をサポートしていません。セッションはメモリ上にのみ存在します。重要な会話はControl UIからエクスポートして保存することをお勧めします。この機能は開発ロードマップに含まれています。
グループチャットでのセキュリティはどうなっていますか?
「グループサンドボックス」機能があります。agents.defaults.sandbox.mode: "non-main" と設定することで、DM以外の会話(グループチャット)から呼び出されたAIは、ファイルシステムへのアクセスやbashコマンドの実行が制限されたDockerサンドボックス内で動作します。これにより、悪意あるユーザーがグループ内で rm -rf / などの破壊的コマンドを実行させることを防げます。
Control UIのエラー「requires HTTPS or localhost」の回避策は?
これはリモートサーバーのIPアドレスで直接アクセスした場合のセキュリティ制限です。
回避策1:SSHトンネルを使用する(ssh -N -L 18789:127.0.0.1:18789 user@server)。
回避策2:URLにトークンパラメータを付与する(http://IP:18789?token=YOUR_TOKEN)。トークンは ~/.openclaw/gateway.env に記載されています。
推奨はSSHトンネルです。

7 min read · 公開日: 2026年2月5日 · 更新日: 2026年2月5日

コメント

GitHubアカウントでログインしてコメントできます

関連記事