WhatsApp — 世界で最も使われているチャットにAIを
WhatsApp — AI for the World's Most-Used Chat — easy-to-understand guide based on official docs
WhatsApp — 世界で最も使われているチャットにAIを
WhatsAppはどこにでもあります。毎日20億人以上が利用しており、今やHermesを直接WhatsAppに接続できます。Meta開発者アカウントも、ビジネス認証も、複雑なAPI設定も不要です。QRコードをスキャンするだけで、友達にメッセージを送るのと同じアプリからAIエージェントと話せます。
仕組み
HermesはBaileysベースの組み込みブリッジを通じてWhatsAppに接続します。これはWhatsApp Webセッションをエミュレートするようなもの — ブラウザをスマホにリンクするのと同じ方法です。公式のWhatsApp Business APIではないため、始めるのに特別な承認は一切必要ありません。
hermes gateway setupを実行して WhatsApp を選べば、ガイド付きでセットアップが進みます。
2つの利用方法
| モード | 仕組み | 最適な用途 |
|---|---|---|
| 専用ボット番号(推奨) | ボット専用の電話番号を用意。相手はその番号に直接メッセージを送る。 | クリーンなUX、複数ユーザー、アカウント停止リスクが低い |
| 自分とのチャット | 自分のWhatsAppを使用。自分自身にメッセージを送ってエージェントと会話する。 | 素早いセットアップ、単一ユーザー、テスト用 |
専用ボット番号方式の方がクリーンです — AIに独自のアイデンティティがあり、個人チャットとボット会話が混ざりません。自分とのチャットモードは、簡単なテスト実行に最適です。
始める前に
必要なもの:
- Node.js v18+ と npm — WhatsAppブリッジはNode.jsプロセスとして動作します
- WhatsAppがインストールされたスマホ(QRコードスキャン用)
朗報:従来のブラウザ駆動型ブリッジと違って、ChromiumやPuppeteerのインストールは不要です。セットアップがかなり軽量になりました。
ステップ1:セットアップウィザードを実行
hermes whatsapp
ウィザードでは以下のことを行います:
- どのモードを使うか尋ねます(bot または self-chat)
- 必要に応じてブリッジの依存関係をインストール
- ターミナルにQRコードを表示
- スキャンされるのを待ちます
QRコードのスキャン方法:
- スマホでWhatsAppを開く
- 設定 → リンクされているデバイス に移動
- デバイスをリンク をタップ
- カメラをターミナルのQRコードに向ける
ペアリングが完了すると、ウィザードが接続を確認して終了します。セッションは自動的に保存されます。
ヒント: QRコードが文字化けしている場合、ターミナルの幅が60カラム以上あり、Unicodeに対応していることを確認してください。別のターミナルエミュレータを試すのも手です。
ステップ2:2つ目の電話番号を用意(ボットモード)
ボットモードでは、WhatsAppに未登録の番号が必要です。選択肢は以下の通り:
| 選択肢 | 費用 | 備考 |
|---|---|---|
| Google Voice | 無料 | 米国のみ。voice.google.comで番号を取得。Google Voiceアプリ経由でSMSによるWhatsApp認証を行う。 |
| プリペイドSIM | 5〜15ドル(一括) | どのキャリアでも可。アクティベートしてWhatsAppを認証したら、SIMは引き出しにしまっておける。番号はアクティブに保つ必要あり(90日ごとに通話する)。 |
| VoIPサービス | 無料〜月5ドル | TextNow、TextFreeなど。一部のVoIP番号はWhatsAppにブロックされる — 最初のがダメならいくつか試してみて。 |
番号を用意したら:
- スマホにWhatsAppをインストール(またはデュアルSIM対応のWhatsApp Businessアプリを使用)
- 新しい番号をWhatsAppに登録
hermes whatsappを実行して、そのWhatsAppアカウントからQRコードをスキャン
ステップ3:Hermesを設定
~/.hermes/.env ファイルに以下を追加します:
# 必須
WHATSAPP_ENABLED=true
WHATSAPP_MODE=bot # "bot" または "self-chat"
# アクセス制御 — 以下のいずれかを選択:
WHATSAPP_ALLOWED_USERS=15551234567 # カンマ区切りの電話番号(国番号付き、+は付けない)
# WHATSAPP_ALLOWED_USERS=* # または * を使用して全員を許可
# WHATSAPP_ALLOW_ALL_USERS=true # またはこのフラグを設定(* と同じ効果)
全員許可の省略記法: WHATSAPP_ALLOWED_USERS=* を設定するとすべての送信者が許可されます。代わりにペアリングフローを使用する場合は、両方の変数を削除してDMペアリングシステムに任せてください。
~/.hermes/config.yaml のオプションの動作設定:
unauthorized_dm_behavior: pair
whatsapp:
unauthorized_dm_behavior: ignore
unauthorized_dm_behavior: pairはグローバルデフォルトです。不明なDM送信者にはペアリングコードが送信されます。whatsapp.unauthorized_dm_behavior: ignoreにすると、WhatsAppは未承認のDMに対して沈黙を保ちます — 通常はプライベート番号にはこちらの方が良い選択です。
次にゲートウェイを起動します:
hermes gateway # フォアグラウンド
hermes gateway install # ユーザーサービスとしてインストール
sudo hermes gateway install --system # Linuxのみ:起動時のシステムサービス
ゲートウェイは保存されたセッションを使用してWhatsAppブリッジを自動的に起動します。
セッションの永続化
Baileysブリッジはセッションを ~/.hermes/platforms/whatsapp/session に保存します。つまり:
- セッションは再起動後も維持されます — 毎回QRコードを再スキャンする必要はありません
- セッションデータには暗号化キーとデバイス認証情報が含まれます
- このセッションディレクトリを共有したりコミットしたりしないでください — WhatsAppアカウントへの完全なアクセス権が付与されます
再ペアリング
セッションが壊れた場合(スマホのリセット、WhatsAppのアップデート、手動でのリンク解除)、ゲートウェイのログに接続エラーが表示されます。修正するには:
hermes whatsapp
これで再ペアリング用の新しいQRコードが生成されます。
注意点
WhatsAppはBusiness API以外のサードパーティ製ボットを公式にはサポートしていません。サードパーティ製ブリッジを使用すると、アカウント制限のリスクがわずかにあります。リスクを最小限に抑えるには:
- ボットには専用の電話番号を使用(個人番号は使わない)
- 一括送信やスパムメッセージは送らない — 会話形式の使用に留める
- 先にメッセージを送ってきていない人への自動送信は行わない
また、WhatsAppは定期的にWebプロトコルを更新するため、サードパーティ製ブリッジとの互換性が一時的に失われることがあります。この場合、Hermesがブリッジの依存関係を更新します。WhatsAppのアップデート後にボットが動作しなくなった場合は、最新のHermesバージョンを取得して再ペアリングしてください。
もっと公式なものが欲しい?
実際のビジネスボットを運営していて安定性を求めるなら、WhatsApp Business Cloud APIガイドをチェックしてください。こちらはMeta公式サポートのパスです:アカウント停止のリスクはありませんが、Meta Businessアカウントと公開Webhook URLが必要です。理由があれば、2つのアダプタを異なる電話番号に対して並行して実行することもできます。
ただし、ほとんどの個人プロジェクトや実験には、BaileysブリッジがAIをWhatsAppに組み込む最速の方法です。スキャンして、設定して、チャットを始めましょう。
📖 公式ドキュメント
この記事は Hermes Agent の公式ドキュメントに基づいています:公式ドキュメント › user-guide/messaging/whatsapp