WhatsAppは会話が行われる場所だ。Slackでも、Discordでも、Telegramでもない——世界のほとんどの人にとって、WhatsAppがデフォルトだ。月間アクティブユーザー20億人、ヨーロッパ、ラテンアメリカ、南アジア、アフリカで圧倒的なシェア。日常生活に本当に溶け込むAIアシスタントが欲しいなら、日常の会話がすでに行われている場所にいる必要がある。
問題は、WhatsAppが個人向けのボットAPIを提供していないことだ。WhatsApp Business APIは存在するが、ビジネスアカウント、Metaの承認、カスタマーサービス向けに設計されたメッセージ単位の課金体系が必要だ。自分のWhatsAppにパーソナルAIボット——グループチャットで応答し、コンテキストを記憶し、自分のハードウェアで動く——が欲しい開発者にとって、公式ルートは行き止まりだ。
NanoClawはBaileyでこれを解決する。BaileysはWhatsApp Webクライアントと同じ方法でWhatsAppのサーバーに接続するオープンソースのWhatsApp Webライブラリだ。QRコードをスキャンし、接続が確立され、NanoClawはあなたのWhatsAppアカウントとしてメッセージを送受信できる。Business API不要、Metaの承認不要、メッセージ単位の課金なし。
アーキテクチャ:WhatsAppが特別な理由
NanoClawのWhatsApp統合は単なるメッセージブリッジではない——アーキテクチャ全体が設計の中心に据えているプライマリチャンネルだ。他のチャンネル(Telegram、Discord、Slack)がClaude Code skillsで追加されるのに対し、WhatsAppはコアに組み込まれている。これはえこひいきではなく、WhatsAppのグループモデルがNanoClawのセキュリティモデルに自然にマッピングされることの反映だ。
WhatsAppグループが隔離境界だ。各グループが独自のコンテナ、独自のCLAUDE.mdメモリファイル、独自の書き込み可能なワークスペースを持つ。家族グループで誰かがメッセージを送ると、応答するエージェントはそのグループの履歴とメモリにのみアクセスできる。仕事グループのメッセージは見えず、プライベートチャット履歴にアクセスできず、他のグループに属するファイルを読み取れない。隔離はアプリケーションロジックではなく、コンテナマウントによって強制される。
このグループごとの隔離が、人々が実際にWhatsAppを使う方法でNanoClawを安全にする。家族グループではプライベートな話題を議論する。仕事グループでは機密プロジェクトを議論する。友人グループでは公にはシェアしないものをシェアする。これらのコンテキストはそれぞれ分離される必要があり、NanoClawはそれを保証する——バグがあるかもしれないアクセス制御リストではなく、アプリケーションレベルのエクスプロイトでは回避できない物理的なコンテナ分離によって。
セットアップ
セットアップは約10分で完了する。そのほとんどはnpm installの待ち時間だ。
リポジトリをクローンして依存関係をインストール:
```bash git clone https://github.com/qwibitai/NanoClaw.git cd NanoClaw npm install ```
環境を設定する。最小限の設定はAnthropic APIキーだけだ:
```bash echo 'ANTHROPIC_API_KEY=sk-ant-your-key-here' > .env ```
WhatsAppペアリングを実行:
```bash npm run auth ```
ターミナルにQRコードが表示される。スマホでWhatsAppを開き、リンク済みデバイスに移動してコードをスキャンする。接続が確立され、NanoClawはメッセージの受信を開始する。
エージェントを起動:
```bash npm start ```
以上だ。ボットを有効にしたいWhatsAppグループにメッセージを送り、アシスタントの名前(.envのASSISTANT_NAMEで設定可能)をメンションすれば応答する。最初のレスポンスはコンテナの起動に数秒かかるが、同じセッション内の後続メッセージはコンテナがウォーム状態を維持するため高速だ。
メッセージの流れ
メッセージフローを理解すると、コンテナのオーバーヘッドにもかかわらずNanoClawがレスポンシブに感じられる理由がわかる。WhatsAppでメッセージが届くと、ホストプロセス——NanoClawの約500行のTypeScriptコア——がBaileys経由でそれを受信する。メッセージがアシスタント宛か(名前メンションまたはダイレクトメッセージ)をチェックする。そうであれば、ホストはグループのコンテナ状態を検索する。
そのグループのコンテナがすでに実行中なら(最近の会話から)、メッセージはIPC経由でルーティングされる。コンテナ内のエージェントがメッセージを受信し、Claude Agent SDKで処理し、IPC経由でレスポンスを返す。ホストがレスポンスをWhatsAppに転送する。追加レイテンシ合計:IPCの数ミリ秒と、ClaudeのAPIが応答にかかる時間。
コンテナが実行されていなければ、ホストが新しいコンテナを起動する。macOSのApple Containerでは200〜400ms。LinuxのDockerでは1〜2秒。コンテナはグループのCLAUDE.mdメモリファイル、SQLiteからの会話履歴、stdin経由のAPIキーを受け取る。メッセージを処理して応答する。コンテナは設定可能なタイムアウト(デフォルト:30分)の間生存し、起動オーバーヘッドなしでフォローアップメッセージを処理する。
結果として、ほとんどのメッセージ——アクティブな会話中のもの——は即座に感じられる。AIのレスポンス時間はNanoClawのインフラではなく、ClaudeのAPIレイテンシが支配的だ。長い沈黙後の最初のメッセージだけがコンテナ起動のオーバーヘッドを持つが、それでもユーザーがほとんど気づかないほど高速だ。
グループごとのメモリ:本当に使えるものにする機能
グループごとのCLAUDE.mdファイルが、ステートレスなチャットボットを本当に便利なアシスタントに変える。各グループのメモリファイルは時間とともにコンテキストを蓄積する——好み、進行中のプロジェクト、繰り返しのトピック、内輪のジョーク。エージェントは会話ターンの開始時にこのファイルを読むため、先週伝えたことを繰り返す必要なく覚えている。
家族グループでは、食事の好み、学校のスケジュール、定期的な活動をメモリに記録するかもしれない。仕事グループでは、プロジェクトの締め切り、チームの好み、技術的な決定を追跡するかもしれない。友人グループでは、旅行計画、レストランのおすすめ、共通の趣味を覚えているかもしれない。
メモリは編集可能だ。エージェントに特定のことを覚えるよう頼める(「お母さんが甲殻類アレルギーだと覚えておいて」)し、忘れるよう頼める(「サプライズパーティーの件は忘れて」)。CLAUDE.mdファイルを直接編集することもできる——データベースにロックされているのではなく、ファイルシステム上のプレーンテキストファイルだ。
プライバシーの現実
WhatsApp AIボットの運用は正当なプライバシーの疑問を提起するので、率直に述べる価値がある。NanoClawが処理するメッセージは、Claudeがレスポンスを生成するためにAnthropicのAPIに送信される。つまり、WhatsAppメッセージ——少なくともアシスタント宛のもの——はデバイスを離れ、Anthropicのサーバーで処理される。
NanoClawはこれをいくつかの方法で軽減する。アシスタントに明示的に宛てられたメッセージのみがAPIに送信される——ボットは宛先でないメッセージを処理も保存もしない。SQLiteに保存される会話履歴はあなたのマシンに残る。CLAUDE.mdメモリファイルはあなたのマシンに残る。そしてAnthropicの代わりにOllamaを使うようNanoClawを設定すれば、AI処理もローカルで行われる——何もネットワークの外に出ない。
ほとんどのユーザーにとって、実用的なプライバシーの姿勢はこうだ:WhatsAppメッセージは、AIアシスタントに明示的に質問するとき以外はデバイスに留まり、その特定のメッセージがAnthropicに送信される(またはOllamaでローカル処理される)。これは、入力するすべてを処理・保存するクラウドAIサービスよりも意味のある良いプライバシーストーリーだ。
WhatsAppはあなたの生活が営まれる場所だ。NanoClawはそこにAIアシスタントを置く——本当に大切なことを話し合うグループで安全に使える隔離、メモリ、プライバシーモデルとともに。