- OpenClawで複数チャネル(Slack/Discord/Telegram)を1つのエージェントから統合管理
- メッセージルーティングでチャネル間のブリッジや自動転送を実現
- SOUL.mdベースのペルソナ設計でチャネルごとに最適なトーンで応答
「Slack用のBot、Discord用のBot、Telegram用のBot……それぞれ別々に作って管理するのが大変」——チャットプラットフォームが増えるほど、Bot管理の複雑さは指数関数的に増大します。
結論から言えば、OpenClawを使えば1つのエージェント設定で複数のチャットプラットフォームを統合管理でき、プラットフォームごとのBot開発が不要になります。 SOUL.mdでペルソナを定義し、チャネルプラグインを設定するだけで、Slack・Discord・Telegramに同時対応するAIアシスタントを構築できます。
この記事では、OpenClawのマルチチャネル機能を活用した統合Bot構築の実践手法を解説します。

OpenClawのマルチチャネルアーキテクチャ
チャネルプラグインの仕組み
OpenClawのチャネルプラグインは、各プラットフォームのAPIをラップし、統一的なメッセージインターフェースを提供します。
┌─────────────────────────────────────┐
│ OpenClaw Gateway │
│ │
│ ┌──────────┐ ┌──────────────────┐ │
│ │ SOUL.md │ │ Session Manager │ │
│ │ (persona)│ │ (context mgmt) │ │
│ └──────────┘ └──────────────────┘ │
│ │
│ ┌──────────────────────────────┐ │
│ │ Channel Plugin Layer │ │
│ ├──────┬──────────┬───────────┤ │
│ │Slack │ Discord │ Telegram │ │
│ │Plugin│ Plugin │ Plugin │ │
│ └──┬───┴────┬─────┴─────┬────┘ │
└─────┼────────┼───────────┼─────────┘
│ │ │
Slack Discord Telegram
API API Bot API
各チャネルプラグインの特徴
| 機能 | Slack | Discord | Telegram |
|---|---|---|---|
| テキストメッセージ | ✅ | ✅ | ✅ |
| リアクション | ✅ | ✅ | ✅ |
| スレッド/リプライ | ✅ | ✅ | ✅ |
| ファイル添付 | ✅ | ✅ | ✅ |
| ボイスメッセージ | ❌ | ❌ | ✅ |
| 絵文字カスタム | ✅ | ✅ | ❌ |
| メンション | ✅ | ✅ | ✅ |
| ピン留め | ✅ | ✅ | ✅ |
基本設定: openclaw.jsonの構成
Slackプラグインの設定
{
"plugins": {
"entries": {
"slack": {
"type": "channel",
"provider": "slack",
"config": {
"botToken": "xoxb-your-bot-token",
"appToken": "xapp-your-app-token",
"signingSecret": "your-signing-secret"
},
"bindings": [
{
"channel": "C0AF55LV0B0",
"agent": "main",
"description": "SES BASE メインチャンネル"
},
{
"channel": "C0BG66MW1C1",
"agent": "support",
"description": "カスタマーサポート"
}
]
}
}
}
}
Discordプラグインの設定
{
"plugins": {
"entries": {
"discord": {
"type": "channel",
"provider": "discord",
"config": {
"botToken": "your-discord-bot-token",
"applicationId": "your-app-id"
},
"bindings": [
{
"channel": "1234567890",
"agent": "community",
"description": "コミュニティチャンネル"
}
]
}
}
}
}
Telegramプラグインの設定
{
"plugins": {
"entries": {
"telegram": {
"type": "channel",
"provider": "telegram",
"config": {
"botToken": "123456:ABC-DEF1234"
},
"bindings": [
{
"channel": "-1002381931352",
"agent": "notification",
"description": "通知チャンネル"
}
]
}
}
}
}
エージェント設計: SOUL.mdによるペルソナ管理
チャネル別トーンの調整
OpenClawでは、SOUL.mdでエージェントのペルソナを定義し、チャネルに応じたトーンで応答させることができます。
# SOUL.md - マルチチャネルBot
## ペルソナ
- 名前: りこ(SES BASE AIアシスタント)
- 役割: SES業界の情報提供・サポート
## チャネル別トーン
### Slack(ビジネスチャネル)
- フォーマル寄りのトーン
- 社内コミュニケーションに適した丁寧語
- 箇条書きで簡潔に情報提供
- マークダウンのフォーマットをフル活用
### Discord(コミュニティチャネル)
- カジュアルなトーン
- 絵文字やリアクションを積極的に使用
- 長文より短い返答を心がける
- メンバー同士の会話を邪魔しない
### Telegram(通知チャネル)
- 必要最小限の情報を迅速に通知
- リンクやアクション可能な情報を優先
- 時間帯に応じた通知頻度の調整
ワークスペース構成
~/.openclaw/workspace-ses-base/
├── AGENTS.md # エージェント共通設定
├── SOUL.md # ペルソナ定義
├── USER.md # ユーザー情報
├── MEMORY.md # 長期記憶
├── HEARTBEAT.md # 定期チェック設定
├── memory/ # 日次記録
│ ├── 2026-03-14.md
│ └── 2026-03-15.md
└── skills/ # カスタムスキル
├── slack-reports/
└── discord-moderation/
実践パターン1: チャネル間ブリッジ
Slack → Discord 自動転送
重要な情報をSlackからDiscordコミュニティに自動転送する設定例です。
# HEARTBEAT.md - チャネルブリッジ設定
## Slack → Discord ブリッジ
1. #announcements (Slack) の新規メッセージを監視
2. メッセージ内容を要約してDiscord #news に転送
3. 機密情報フィルタリングを適用
実際の処理フロー:
# Slackメッセージの監視と転送(Cronジョブ)
# 1. Slackの#announcementsを確認
# 2. 新規メッセージがあれば要約を生成
# 3. Discord #news に投稿
Telegram → Slack アラート転送
{
"cron": {
"entries": {
"telegram-to-slack-alert": {
"schedule": "*/5 * * * *",
"agent": "bridge",
"prompt": "Telegramの監視チャンネルに新しいアラートがあれば、Slack #alerts チャンネルに要約を転送してください。",
"model": "anthropic/claude-sonnet-4-20250514"
}
}
}
}
実践パターン2: 統合カスタマーサポート
マルチチャネル問い合わせ管理
# カスタマーサポートBot設計
## 対応フロー
1. ユーザーからの問い合わせを受信(Slack DM / Discord DM / Telegram)
2. 問い合わせ内容を分類(技術質問 / 契約 / バグ報告)
3. FAQデータベースから回答を検索
4. 回答が見つかれば自動応答
5. 見つからなければサポートチームにエスカレーション
## エスカレーションルール
- 技術質問 → Slack #tech-support
- 契約関連 → Slack #sales
- バグ報告 → GitHub Issue を自動作成 + Slack #bugs に通知
FAQ自動応答の実装
# スキルファイルでFAQ対応を定義
# skills/faq-responder/SKILL.md
# ユーザーの質問パターンに応じた自動応答
# 1. 質問を分類
# 2. knowledge-base/ から関連FAQを検索
# 3. 適切な回答を生成して返信
実践パターン3: 定期レポートの配信
マルチチャネル同時配信
{
"cron": {
"entries": {
"daily-report": {
"schedule": "0 9 * * 1-5",
"agent": "reporter",
"prompt": "日次レポートを生成し、以下のチャネルに配信してください:\n1. Slack #daily-report(詳細版)\n2. Discord #reports(要約版)\n3. Telegram通知グループ(KPI数値のみ)",
"model": "anthropic/claude-sonnet-4-20250514"
}
}
}
}
チャネル別フォーマットの最適化
同じレポートデータでも、チャネルに応じてフォーマットを最適化します。
Slack版(詳細・マークダウンテーブル):
📊 *日次レポート - 2026年3月15日*
| 指標 | 今日 | 前日比 | 目標 |
|------|------|--------|------|
| PV | 12,450 | +8.2% | 10,000 |
| UU | 3,280 | +5.1% | 3,000 |
| 問い合わせ | 15件 | -2件 | - |
Discord版(短く、絵文字活用):
📊 日次レポート 3/15
🔹 PV: 12,450 (+8.2%) ✅
🔹 UU: 3,280 (+5.1%) ✅
🔹 問い合わせ: 15件
Telegram版(最小限):
📊 3/15 KPI
PV 12,450↑ | UU 3,280↑ | 問合せ 15件
実践パターン4: インシデント対応の自動化
マルチチャネルアラート体制
# インシデント対応フロー
## 検知(Telegram → Slack エスカレーション)
1. 監視システムからTelegramにアラート受信
2. アラートの重要度を分類(P1/P2/P3)
3. P1: 全チャネルに即時通知 + 担当者メンション
4. P2: Slack #incidents に通知
5. P3: 日次レポートに記録
## 対応(Slackスレッド中心)
1. Slack #incidents にインシデントスレッド作成
2. 対応状況をスレッドに記録
3. 解決したらDiscord #status に状況報告
## 振り返り
1. インシデントレポートを自動生成
2. Slack #postmortem に投稿
メッセージツールの活用テクニック
リアクション機能の活用
OpenClawのmessageツールを使えば、チャネルをまたいだリアクション操作が可能です。
# Slackメッセージへのリアクション
# message action=react channel=C0AF55LV0B0 emoji=white_check_mark
# Discordメッセージへのリアクション
# message action=react channel=1234567890 emoji=✅
ピン留め管理
重要な情報の管理にピン留め機能を活用できます。
# 重要な決定事項をピン留め
# message action=pin channel=C0AF55LV0B0 messageId=ts_value
# ピン留め一覧の確認
# message action=list-pins channel=C0AF55LV0B0
セキュリティとアクセス制御
チャネル別権限管理
{
"agents": {
"entries": {
"main": {
"workspace": "workspace-ses-base",
"channels": {
"slack:C0AF55LV0B0": {
"permissions": ["read", "write", "react"],
"autoRespond": true
},
"discord:1234567890": {
"permissions": ["read", "write"],
"autoRespond": false
},
"telegram:-1002381931352": {
"permissions": ["write"],
"autoRespond": false
}
}
}
}
}
}
機密情報フィルタリング
チャネル間でメッセージを転送する際、機密情報を自動的にフィルタリングします。
# フィルタリングルール
- メールアドレス → [email]
- 電話番号 → [phone]
- 金額・単価情報 → Slack内のみ表示(外部転送時はマスク)
- 個人名 → Discord/Telegramへの転送時は匿名化
トラブルシューティング
よくある問題と解決策
| 問題 | 原因 | 解決策 |
|---|---|---|
| Slackメッセージが届かない | Socket Modeの接続切れ | Gateway再起動 openclaw gateway restart |
| Discordでメンション応答しない | Intent設定不足 | Message Content Intentを有効化 |
| Telegramのグループで反応しない | Bot権限不足 | Group Privacy設定を無効化 |
| 重複メッセージが送信される | セッション管理の競合 | チャネルバインディングの重複チェック |
| メモリ消費が増え続ける | セッションキャッシュ肥大 | openclaw gateway restart で定期リフレッシュ |
ログの確認方法
# OpenClawのログ確認
openclaw gateway logs --tail 100
# チャネル別ログのフィルタリング
openclaw gateway logs | grep "slack"
openclaw gateway logs | grep "discord"
openclaw gateway logs | grep "telegram"
コスト最適化
チャネル別のモデル選択
トラフィックとタスクの複雑さに応じて、チャネルごとにモデルを最適化します。
| チャネル | 用途 | 推奨モデル | 月間コスト目安 |
|---|---|---|---|
| Slack(社内) | 複雑な質問対応 | claude-sonnet-4 | $30-50 |
| Discord(コミュニティ) | カジュアルな応答 | claude-haiku | $5-10 |
| Telegram(通知) | 定型通知 | claude-haiku | $2-5 |
メッセージ量の制御
{
"rateLimit": {
"slack": {
"messagesPerMinute": 10,
"tokensPerHour": 50000
},
"discord": {
"messagesPerMinute": 5,
"tokensPerHour": 20000
},
"telegram": {
"messagesPerMinute": 20,
"tokensPerHour": 10000
}
}
}
まとめ: OpenClawでマルチチャネルBotを効率運用
OpenClawのマルチチャネル機能を活用すれば、以下の3つの大きなメリットが得られます。
- 統合管理の効率化: 1つのエージェント設定で複数プラットフォームに対応し、管理コストを大幅削減
- 一貫したペルソナ: SOUL.mdでペルソナを統一しつつ、チャネル別にトーンを最適化
- 自動化の柔軟性: CronジョブやHeartbeatと組み合わせた高度な自動化フローを構築
SES事業やスタートアップで複数のコミュニケーションチャネルを運用している場合、OpenClawのマルチチャネルBotは運用効率を劇的に向上させます。
まずは1つのチャネルで基本設定を整え、段階的にチャネルを追加していきましょう。