TL;DR
OpenClawは、WhatsApp、Telegram、Discord、iMessageをAIコーディングエージェントに接続するセルフホスト型ゲートウェイです。ご自身のマシン上で1つのゲートウェイプロセスを実行するだけで、それがメッセージングアプリと、あなたがコントロールするAIアシスタントの間の架け橋となります。クラウドへの依存も、データ共有も不要で、あなた自身のAIをあなたの条件で利用できます。
なぜマルチチャネルAIが重要なのか
クライアントがAPIエンドポイントについて尋ねてきたとき、あなたはWhatsAppを使っています。チームに確認するためにTelegramに切り替えます。そしてDiscordからバグ報告の通知が来ます。それぞれのプラットフォームには独自のコンテキスト、独自の会話履歴があり、あなたは3つの異なるAIアシスタントをやりくりしています。
このような断片化は時間を浪費します。カリフォルニア大学による2024年の研究によると、開発者は仕事時間の23%をツール間の切り替えに費やしています。これは、コンテキストスイッチングによって毎日約2時間を失っていることになります。
OpenClawはこれを解決します。これは、すべてのメッセージングプラットフォームを単一のAIアシスタントに接続するセルフホスト型ゲートウェイです。一度設定すれば、複数のチャネルに対応し、ベンダーロックインもありません。データを管理し、AIモデルを選択し、どのメッセージをどこに送るかを決定できます。
このガイドでは、OpenClawのセットアップ方法、複数のメッセージングプラットフォームの接続方法、およびマルチエージェントルーティングの設定方法を説明します。読み終える頃には、あらゆる場所で機能するパーソナルAIアシスタントを手に入れているでしょう。
OpenClawとは?
OpenClawは、あなたのメッセージングアプリとAIエージェントの間に位置するオープンソースのゲートウェイです。AI会話のためのユニバーサル翻訳機だと考えてください。

OpenClawが他と異なる点は以下のとおりです。
セルフホスト型: ご自身のハードウェア上で実行します。第三者のサーバーがあなたのメッセージを見ることはありません。
マルチチャネル: 1つのゲートウェイプロセスで、WhatsApp、Telegram、Discord、iMessageなどを同時に扱います。
エージェントネイティブ: ツール使用、セッション、メモリ、マルチエージェントルーティングを備えたコーディングエージェント向けに構築されています。
オープンソース: MITライセンスです。フォークしたり、変更したり、貢献したりできます。
アーキテクチャはシンプルです。ゲートウェイはNode.jsプロセスとして動作します。メッセージングプラットフォームへの永続的な接続を維持し、Anthropic、OpenAI、またはローカルモデルなどのAIプロバイダーにメッセージをルーティングします。各会話は、分離されたメモリを持つ独自のセッションを持ちます。
仕組み
- WhatsAppでメッセージを送信します
- OpenClawはWhatsAppチャネルを介してそれを受信します
- ゲートウェイは、設定されたAIエージェントにメッセージをルーティングします
- エージェントはメッセージを処理し、応答を生成します
- OpenClawは応答をWhatsAppに返信します
同じフローがTelegram、Discord、またはその他の接続されたチャネルでも機能します。ゲートウェイは認証、セッション管理、メッセージフォーマットを自動的に処理します。
主な機能
マルチチャネルゲートウェイ: 1つのゲートウェイプロセスでWhatsApp、Telegram、Discord、iMessageを接続します。各チャネルは独立して動作するため、いずれか1つが失敗しても、他のチャネルは動作し続けます。
プラグインチャネル: 拡張パッケージを使用してMattermostやその他のプラットフォームを追加します。プラグインシステムにより、コアコードを変更せずにカスタムチャネルアダプターを作成できます。
マルチエージェントルーティング: 送信者、チャネル、またはコンテンツに基づいて、メッセージを異なるAIエージェントにルーティングします。コードの質問にはあるエージェント、ドキュメントには別のエージェント、一般的なチャットにはさらに別のエージェントを使用できます。
メディア対応: 画像、音声、ドキュメントの送受信が可能です。ゲートウェイはファイルのアップロード、ダウンロード、フォーマット変換を自動的に処理します。
WebコントロールUI: チャット、設定、セッション、ノードを管理するためのブラウザダッシュボードです。すべての会話を監視し、ルーティングルールを調整し、問題をデバッグすることができます。
モバイルノード: Canvas、カメラ/スクリーンキャプチャ、音声対応ワークフローのためにiOSおよびAndroidデバイスをペアリングします。あなたの電話がゲートウェイの拡張機能となります。
最初のゲートウェイのセットアップ
Node.js 22以降、AIプロバイダーからのAPIキー、そして5分間が必要です。ここではAnthropicのClaudeを例に挙げますが、このプロセスはどのプロバイダーでも機能します。
インストール
OpenClawをグローバルにインストールします。
npm install -g openclaw@latest
これによりopenclawコマンドがPATHに追加されます。これで任意のディレクトリから実行できるようになります。
オンボーディング
オンボーディングウィザードを実行します。
openclaw onboard --install-daemon
ウィザードは以下の項目を尋ねます。
- AIプロバイダー: Anthropic、OpenAI、またはカスタムエンドポイントから選択します
- APIキー: キーを貼り付けます(
~/.openclaw/config.jsonにローカル保存されます) - デフォルトモデル: 使用したいモデルを選択します(例:
claude-sonnet-4-6) - デーモン設定: OpenClawをバックグラウンドサービスとして実行するかどうか
--install-daemonフラグは、システム起動時にOpenClawを自動的に起動するように設定します。手動で制御したい場合は、このフラグをスキップしてください。
最初のチャネル接続
WhatsAppを接続します。
openclaw channels login
これによりターミナルにQRコードが表示されます。WhatsApp Webの場合と同じように、お使いの電話でWhatsAppを使ってスキャンしてください。OpenClawは同じプロトコルを使用するため、公式クライアントと同等のセキュリティがあります。
接続が完了すると、チャネルリストにWhatsAppが表示されます。
openclaw channels list
出力:
Active channels:
- whatsapp (connected)
ゲートウェイの起動
ゲートウェイを起動します。
openclaw gateway --port 18789
ゲートウェイが起動し、ポート18789でリッスンします。以下が表示されます。
OpenClaw Gateway v1.0.0
Listening on http://localhost:18789
Channels: whatsapp (connected)
Agents: default (claude-sonnet-4-6)
ブラウザでhttp://localhost:18789を開いてください。コントロールUIには、アクティブなチャネル、接続されているエージェント、および最近のメッセージが表示されます。
テストする
別のデバイスからご自身のWhatsApp番号にメッセージを送信してください。「天気は?」「JavaScriptのasync/awaitについて説明して」のような質問をしてみてください。
ゲートウェイはメッセージを受信し、Claudeにルーティングし、応答をWhatsAppに送り返します。数秒以内に返信が表示されるはずです。
コントロールUIを確認してください。そこには、生メッセージデータとルーティングの決定を含む完全な会話が表示されます。
複数のチャネルを接続する
WhatsAppが機能するようになったので、TelegramとDiscordを追加しましょう。
Telegramのセットアップ
Telegramボットを作成します。
- Telegramを開き、
@BotFatherを検索します /newbotを送信し、プロンプトに従います- ボットトークンをコピーします(
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11のような形式です)
OpenClawにボットを追加します。
openclaw channels add telegram --token YOUR_BOT_TOKEN
ボットはチャネルリストに表示されます。Telegramでボットとの会話を開始してください。メッセージを送信すると、OpenClawはWhatsAppを処理しているのと同じAIエージェントにそれをルーティングします。
Discordのセットアップ
Discordボットを作成します。
- [Discord開発者ポータル](https://discord.com/developers/applications)にアクセスします
- 「New Application」をクリックし、名前を付けます
- 「Bot」タブに移動し、「Add Bot」をクリックします
- ボットトークンをコピーします
- 「Privileged Gateway Intents」の下にある「Message Content Intent」を有効にします
OpenClawにボットを追加します。
openclaw channels add discord --token YOUR_BOT_TOKEN
開発者ポータルからOAuth2 URLを使用して、ボットをDiscordサーバーに招待します。「Send Messages」と「Read Message History」の権限を付与するようにしてください。
iMessageのセットアップ(macOSのみ)
iMessageは、メッセージアプリのプライベートAPIを使用するため、Macが必要です。OpenClawは、メッセージを傍受するローカルブリッジを実行します。
iMessageを有効にします。
openclaw channels add imessage
macOSがプロンプトを表示したら、OpenClawにアクセシビリティ権限を付与してください。ブリッジは自動的に起動し、メッセージアプリを監視します。
自分自身またはテスト連絡先にメッセージを送信してください。OpenClawがそれを検知し、AIエージェントにルーティングします。
チャネルステータス
接続されているすべてのチャネルを確認します。
openclaw channels list
出力:
Active channels:
- whatsapp (connected)
- telegram (connected)
- discord (connected)
- imessage (connected, macOS only)
各チャネルは独立して動作します。いずれか1つが切断されても、他のチャネルは動作し続けます。ゲートウェイは接続の問題をログに記録し、自動的に再接続を試みます。
マルチエージェントルーティングの説明
マルチエージェントルーティングを使用すると、ルールに基づいてメッセージを異なるAIエージェントに送信できます。送信者、チャネル、キーワード、またはカスタムロジックによってルーティングできます。
なぜ複数のエージェントを使用するのか?
異なるタスクには異なるモデルが必要です。コードの質問はプログラミングで訓練されたモデルから恩恵を受けます。一般的なチャットは会話型モデルの方が適しています。ドキュメントのクエリには、大きなコンテキストウィンドウを持つモデルが必要です。
異なるプロバイダーを使用することもできます。機密データをローカルマシンで実行されているモデルにルーティングします。それ以外のすべては、速度のためにクラウドプロバイダーに送信します。
デフォルトルーティング
デフォルトでは、すべてのメッセージはオンボーディング中に設定したエージェントに送信されます。これはシンプルな設定では問題ありませんが、チャネルを追加するにつれてより多くの制御が必要になるでしょう。
チャネルによるルーティング
WhatsAppメッセージを1つのエージェントに、Telegramメッセージを別のエージェントに送信します。
openclaw routing add --channel whatsapp --agent code-assistant
openclaw routing add --channel telegram --agent general-chat
これで、WhatsAppの会話はcode-assistantエージェントを使用し、Telegramはgeneral-chatを使用します。
送信者によるルーティング
特定のユーザーからのメッセージを専用のエージェントにルーティングします。
openclaw routing add --sender +1234567890 --agent client-support
その電話番号からのメッセージは、チャネルに関係なく常にclient-supportエージェントに送信されます。
キーワードによるルーティング
メッセージの内容に基づいて特定のエージェントをトリガーします。
openclaw routing add --keyword "debug" --agent debugging-specialist
openclaw routing add --keyword "docs" --agent documentation-writer
メッセージに「debug」が含まれている場合、それはdebugging-specialistエージェントに送信されます。「docs」を含むメッセージはdocumentation-writerに送信されます。
優先度によるルーティング
ルールには優先度があります。優先度の高いルールが最初に一致します。
openclaw routing add --channel whatsapp --agent default --priority 1
openclaw routing add --sender +1234567890 --agent vip --priority 10
WhatsApp上の+1234567890からのメッセージは、優先度10が優先度1を上回るため、vipエージェントに送信されます。
カスタムルーティングロジック
複雑なシナリオの場合は、JavaScriptでルーティング関数を作成します。
// ~/.openclaw/routing.js
module.exports = function route(message) {
// 時間帯に基づいてルーティング
const hour = new Date().getHours();
if (hour >= 9 && hour < 17) {
return 'work-agent';
}
return 'personal-agent';
};
カスタムルーティングを有効にします。
openclaw routing set-custom ~/.openclaw/routing.js
ゲートウェイは、すべてのメッセージに対してあなたの関数を呼び出します。エージェント名を返すと、OpenClawはそれに応じてルーティングします。
セッションの分離
各エージェントは独自のセッションを持ちます。code-assistantエージェントとの会話がgeneral-chatに漏洩することはありません。メモリ、コンテキスト、ツール状態は分離されたままです。
必要に応じて、エージェント間でセッションを共有できます。
openclaw routing add --channel whatsapp --agent code-assistant --shared-session
これで、すべてのWhatsAppの会話は、異なるエージェントにルーティングされても、1つのセッションを共有します。
高度な設定
環境変数
OpenClawは環境変数から設定を読み取ります。~/.openclaw/.envに設定します。
# AIプロバイダー設定
ANTHROPIC_API_KEY=your_key_here
OPENAI_API_KEY=your_key_here
# ゲートウェイ設定
GATEWAY_PORT=18789
GATEWAY_HOST=0.0.0.0
# ロギング
LOG_LEVEL=info
LOG_FILE=~/.openclaw/gateway.log
# セッション設定
SESSION_TIMEOUT=3600
MAX_CONTEXT_LENGTH=100000
設定変更後はゲートウェイを再起動します。
openclaw gateway restart
カスタムAIプロバイダー
カスタムプロバイダーを追加します。
openclaw providers add custom \
--endpoint https://your-api.com/v1/chat \
--auth-header "Authorization: Bearer YOUR_TOKEN" \
--model your-model-name
ルーティングで使用します。
openclaw routing add --channel discord --agent custom-agent --provider custom
Webhook
外部サービスにメッセージを送信します。
openclaw webhooks add \
--url https://your-service.com/webhook \
--event message.received \
--channel whatsapp
すべてのWhatsAppメッセージは、メッセージデータを含むPOSTリクエストをあなたのWebhookにトリガーします。
レート制限
APIクォータを保護します。
openclaw limits set --agent code-assistant --max-requests 100 --window 3600
これにより、code-assistantエージェントは1時間あたり100リクエストに制限されます。過剰なリクエストは、設定に基づいてキューに入れられるか、拒否されます。
バックアップと復元
設定をエクスポートします。
openclaw config export > openclaw-backup.json
後で復元します。
openclaw config import openclaw-backup.json
これにはチャネル、ルーティングルール、エージェント、Webhookが含まれます。APIキーはセキュリティ上の理由からエクスポートされません。
実際の使用例
フリーランス開発者
サラはフリーランスの開発ビジネスを経営しています。クライアントはWhatsAppでメッセージを送り、チームはTelegramを使い、彼女はオープンソースプロジェクトのためにDiscordを監視しています。
彼女は3つのエージェントでOpenClawをセットアップしました。
client-support: クライアントの質問を処理し、正確性のためにClaude Opusにルーティングしますteam-chat: チームの質問に答え、速度のためにClaude Sonnetを使用しますoss-helper: Discordを監視し、プライバシーのためにローカルのLlamaモデルを使用します
ルーティングルール:
openclaw routing add --channel whatsapp --agent client-support
openclaw routing add --channel telegram --agent team-chat
openclaw routing add --channel discord --agent oss-helper
これで彼女は、ツールを切り替えることなく、あらゆるプラットフォームでコンテキストに応じた応答を得ることができます。
APIテストチーム
フィンテック企業のチームは、複数の環境でAPIをテストしています。彼らは内部チャットにTelegramを、ベンダーとのコミュニケーションにDiscordを使用しています。
彼らはAPI関連の質問を、APIドキュメントにアクセスできるエージェントにルーティングするようにOpenClawを設定しました。
openclaw routing add --keyword "api" --agent api-specialist
openclaw routing add --keyword "endpoint" --agent api-specialist
api-specialistエージェントは、内部APIカタログを照会し、テストケースを生成するツールを持っています。チームメンバーは「決済APIで認証するにはどうすればいいですか?」のような質問をし、コード例付きで即座に正確な回答を得られます。
リモートチームの調整
分散型チームは、緊急の問題にはWhatsAppを、毎日のスタンドアップにはTelegramを、技術的な議論にはDiscordを使用しています。
彼らは時間ベースのルーティングを設定しました。
// 勤務時間中に緊急メッセージを高優先度エージェントにルーティング
module.exports = function route(message) {
const hour = new Date().getHours();
const isWorkHours = hour >= 9 && hour < 18;
if (message.channel === 'whatsapp' && isWorkHours) {
return 'urgent-agent';
}
if (message.channel === 'telegram') {
return 'standup-agent';
}
return 'general-agent';
};
urgent-agentは正確性のためにClaude Opusを使用します。standup-agentは速度のためにClaude Sonnetを使用します。general-agentはコストを節約するためにローカルモデルを使用します。
よくある問題のトラブルシューティング
WhatsAppが頻繁に切断される
WhatsAppのプロトコルはネットワークの変化に敏感です。Wi-Fiネットワークを切り替えるノートパソコンを使用している場合、切断が発生することがあります。
解決策:
- 安定したネットワーク接続を使用する
- ノートパソコンではなくサーバー上でOpenClawを実行する
- 自動再接続を有効にする:
openclaw channels config whatsapp --auto-reconnect true
Telegramボットが応答しない
ボットの権限を確認してください。ボットはグループチャットで「メッセージ送信」と「メッセージ履歴の読み取り」の権限が必要です。
トークンを確認します。
openclaw channels test telegram
失敗した場合は、@BotFatherからトークンを再生成し、OpenClawを更新します。
openclaw channels update telegram --token NEW_TOKEN
Discordボットがオフライン
Discordボットには「Message Content Intent」が有効になっている必要があります。開発者ポータルにアクセスし、アプリを選択し、ボットタブに移動して、「Privileged Gateway Intents」の下でそれを有効にしてください。
有効にした後、ゲートウェイを再起動します。
openclaw gateway restart
高いAPIコスト
使用状況を確認します。
openclaw stats --agent code-assistant --period 7d
これにより、過去7日間のリクエスト数、トークン使用量、および推定コストが表示されます。
コストを削減する:
- シンプルなクエリには安価なモデルを使用する
- レート制限を有効にする
- 重要でないメッセージはローカルモデルにルーティングする
メッセージが遅延する
AIプロバイダーが遅い場合、ゲートウェイはメッセージをキューに入れます。キューのステータスを確認します。
openclaw queue status
キューが増加している場合、2つの選択肢があります。
- 同時実行数を増やす:
openclaw config set --max-concurrent-requests 10
- 負荷分散のためにエージェントを追加する:
openclaw agents add backup-agent --provider openai --model gpt-4
openclaw routing add --fallback backup-agent
セッションメモリの問題
セッションは時間とともに増加します。応答が遅くなったり、無関係になったりする場合は、古いセッションをクリアします。
openclaw sessions clear --older-than 7d
これにより、7日以上非アクティブなセッションが削除されます。
セッションタイムアウトを調整します。
openclaw config set --session-timeout 1800
これで、セッションは30分間非アクティブになると期限切れになります。
よくある質問
OpenClawをRaspberry Piで実行できますか?
はい、できますが、パフォーマンスはAIプロバイダーに依存します。AnthropicやOpenAIのようなクラウドAPIを使用している場合は、4GB RAMを搭載したRaspberry Pi 4で問題なく動作します。ローカルモデルを実行している場合は、より強力なハードウェアが必要です。
OpenClawは音声メッセージをサポートしていますか?
はい。ゲートウェイはWhatsAppとTelegramからの音声メッセージを処理します。設定された音声認識プロバイダー(Whisper、Google Speech、またはカスタム)を使用してそれらをテキストに転写し、そのテキストをAIエージェントに送信します。
複数のAIプロバイダーを同時に使用できますか?
はい、できます。異なるプロバイダーで異なるエージェントを設定します。
openclaw agents add anthropic-agent --provider anthropic --model claude-sonnet-4-6
openclaw agents add openai-agent --provider openai --model gpt-4
ニーズに基づいてメッセージをルーティングします。
私のデータは安全ですか?
OpenClawはあなたのハードウェア上で動作します。メッセージは、AIプロバイダーに送信される場合を除き、第三者のサーバーに触れることはありません。ローカルモデルを使用している場合、すべてがあなたのマシン上に留まります。
追加のセキュリティのために、暗号化を有効にします。
openclaw config set --encrypt-sessions true
これにより、保存されているセッションデータがAES-256を使用して暗号化されます。
OpenClawに貢献できますか?
はい、できます。OpenClawはMITライセンスで、GitHubでホストされています。リポジトリをフォークし、変更を加え、プルリクエストを送信してください。メンテナーは毎週貢献をレビューします。
ゲートウェイがクラッシュしたらどうなりますか?
ゲートウェイは30秒ごとにセッション状態を保存します。クラッシュした場合は、再起動してください。
openclaw gateway start
セッションは最後のチェックポイントから再開されます。会話の最後の30秒は失われる可能性がありますが、その他はすべて維持されます。
複数のゲートウェイを実行できますか?
はい、できます。マシンまたは環境ごとに1つのゲートウェイを実行します。各ゲートウェイは独自の設定、チャネル、エージェントを持ちます。共有データベースを設定しない限り、状態は共有されません。
OpenClawを更新するにはどうすればよいですか?
最新バージョンに更新します。
npm update -g openclaw
ゲートウェイを再起動します。
openclaw gateway restart
更新する前に、変更ログで破壊的変更がないか確認してください。
結論
OpenClawは、あらゆる場所で機能する1つのAIアシスタントを提供します。一度セットアップし、メッセージングプラットフォームを接続し、ルーティングルールを設定すれば、あとはバックグラウンドで自動的に会話を処理します。
主なポイント:
- セルフホスト型は、あなたがデータを管理することを意味します
- マルチチャネルサポートにより、コンテキストスイッチングが不要になります
- マルチエージェントルーティングにより、各タスクに適したモデルを使用できます
- オープンソースはベンダーロックインがないことを意味します
1つのチャネルと1つのエージェントから始めましょう。必要に応じて追加してください。ゲートウェイは、アーキテクチャを変更することなく、個人使用からチーム展開までスケールします。
APIを構築したり、プラットフォーム間で統合をテストしたりする場合は、API設計およびテストワークフローについてはApidogをチェックしてください。会話型AIと構造化されたAPI管理の両方を必要とするチームにとって、OpenClawとの相性は抜群です。
次のステップ:
- OpenClawをインストールする:
npm install -g openclaw@latest - オンボーディングウィザードを実行する:
openclaw onboard - 最初のチャネルを接続する:
openclaw channels login - ゲートウェイを起動する:
openclaw gateway --port 18789
カスタムプラグイン、Webhook連携、デプロイガイドなどの高度な機能については、公式ドキュメントを参照してください。
DiscordでOpenClawコミュニティに参加し、設定を共有したり、質問したり、プロジェクトに貢献したりしましょう。
