tutorial channels

マルチチャンネルAIアシスタントを構築する:Telegram + Discord + WhatsApp

ZeroClaws.io

ZeroClaws.io

@zeroclaws

February 25, 2026

7 分で読める

マルチチャンネルAIアシスタントを構築する:Telegram + Discord + WhatsApp

ほとんどの人が認識する状況がある:職場のチームはSlackでコミュニケーションし、親しい友人はWhatsAppにいて、ゲームコミュニティはDiscordに住み、個人の連絡先はTelegramを好む。4つのアプリが開き、4つの通知ストリーム、管理する4つの別々のコンテキストになる。

AIアシスタントがそれらすべてで同時に動いたら——共有メモリで、TelegramでAIに伝えたことをDiscordで聞いたときに覚えている——どうだろう。1つのアシスタント、すでにいるすべての場所に。

それがZeroClawのマルチチャンネルアーキテクチャが可能にすることで、セットアップは思ったよりシンプルだ。

内部の仕組み

ZeroClawのチャンネルシステムはRustトレイトで構築されている。各チャンネル——Telegram、Discord、WhatsApp、Signal、Matrix、IRC——は同じインターフェースを実装する独立したアダプターだ。それらはすべて単一のAIプロバイダー接続、単一のメモリデータベース、単一の設定ファイル、1つのバイナリとして動く単一のプロセスを共有する。

実際的な結果は、TelegramでボットにAIに何かを伝えると、Discordで聞いたときに覚えているということだ。メモリはチャンネルに依存しない。ZeroClawは各メッセージがどのチャンネルから来たかのメタデータと共に会話を統一されたSQLiteデータベースに保存するが、検索はすべてのチャンネルにわたって機能する。コンテキストがついてくる。

Telegramのセットアップ

TelegramでBotFatherにメッセージを送って新しいボットを作成し、トークンを取得する。次にuserinfobot にメッセージを送ってユーザーIDを取得する。設定に追加:

```toml [channels.telegram] token = "123456:ABCdefGHIjklMNO" allowed_users = [your_user_id] ```

`allowed_users`リストは重要——あなた(または指定した人)だけがボットとやり取りできることを保証する。

Discordのセットアップ

discord.com/developersに行き、アプリケーションを作成し、ボットを追加し、トークンをコピーする。ボット設定でMessage Content Intentを有効にする——これなしではボットはメッセージを読めない。OAuth2 URLジェネレーターを使ってボットをサーバーに招待する。

```toml [channels.discord] token = "MTk4NjIz..." guild_ids = [your_server_id] allowed_roles = ["ai-users"] ```

`allowed_roles`フィールドはどのDiscordユーザーがボットとやり取りできるかを制限できる——共有サーバーに追加する場合に便利だ。

WhatsAppのセットアップ

ZeroClawは特別なAPIアクセスなしで動くWhatsApp Webブリッジを使う:

```toml [channels.whatsapp] enabled = true allowed_numbers = ["+1234567890"] ```

最初の起動時、ZeroClawはターミナルにQRコードを表示する。スマートフォンのWhatsAppでスキャンしてペアリングする。その後、自動的に接続を維持する。

すべてを起動する

```bash zeroclaw start ```

1つのコマンド。3つのチャンネルが同時に接続する:

``` [INFO] Telegram channel connected [INFO] Discord channel connected (1 guild) [INFO] WhatsApp channel paired [INFO] ZeroClaw ready — 3 channels active ```

実際の共有メモリ

クロスチャンネルメモリは、単に技術的に面白いだけでなく本当に便利にする機能だ。実際の様子:

Telegramでメッセージを送る: > 「プロジェクトの締め切りが3月15日だと覚えておいて」 > 「了解です——プロジェクトの締め切りは3月15日ですね。」

後で、Discordで: > 「締め切りはいつ?」 > 「先ほどおっしゃっていたように、プロジェクトの締め切りは3月15日です。」

ボットは再度伝える必要がなかった。同じチャンネルにいる必要もなかった。メモリはZeroClawインスタンス全体で共有されている。

チャンネルごとの動作調整

プラットフォームによって慣習が異なる。Discordユーザーはマークダウン形式と簡潔なレスポンスを期待する。WhatsAppの会話はよりカジュアルでマークダウンをレンダリングしない。Telegramはより長く詳細な返信をサポートする。ZeroClawはチャンネルごとに動作を調整できる:

```toml [channels.discord] token = "..." system_prompt_append = "You are in a Discord server. Keep responses concise. Use markdown formatting." max_response_length = 1500

[channels.telegram] token = "..." system_prompt_append = "You are in a private Telegram chat. Be conversational and detailed." max_response_length = 4000

[channels.whatsapp] enabled = true system_prompt_append = "You are on WhatsApp. Keep responses short — no markdown, plain text only." max_response_length = 500 ```

同じAI、同じメモリ、プラットフォームごとに異なるパーソナリティ。

アクセスコントロール

ボットが複数のチャンネルでアクセス可能な場合、アクセスコントロールが重要だ。ZeroClawはチャンネルごとのコントロールを提供する:

```toml [channels.telegram.permissions] tools = ["web_search", "file_read", "file_write"]

[channels.discord.permissions] tools = ["web_search"] # 公開サーバーでは読み取り専用 ```

プライベートTelegramチャットにはフルツールアクセスを許可しながら、Discordボットをウェブ検索のみに制限できる。権限はユーザーレベルではなくチャンネルレベルで強制される。

さらにチャンネルを追加する

ZeroClawは30以上のチャンネルをサポートする。別のチャンネルを追加するのは設定を追加するだけ:

```toml [channels.slack] token = "xoxb-..." channels = ["C01234567"]

[channels.signal] enabled = true phone_number = "+1234567890"

[channels.matrix] homeserver = "https://matrix.org" username = "@zeroclaw:matrix.org" password = "..." ```

追加のチャンネルごとに約0.5MBのRAMが追加される。10チャンネルを同時に動かしても合計10MB未満だ。

大きな絵

マルチチャンネルセットアップは本物の問題を解決する:人生は1つのアプリで起きるわけではなく、AIアシスタントもそうであるべきではない。1つのバイナリ、1つの設定ファイル、1つのメモリデータベース、そしてアシスタントは使っているすべての会話プラットフォームに存在する——すべてのチャンネルにわたってコンテキストを覚えながら、単一のブラウザタブより少ないRAMを使って。

マイクロサービスなし。メッセージキューなし。コンテナオーケストレーションなし。30の異なるチャットプロトコルを話す単一のプロセスだけ。

最新情報を受け取る

新リリース、連携、Rust製エージェントインフラの最新情報をお届け。スパムなし、いつでも解除可能。