メッセージングプラットフォーム

WhatsApp

ステータス: WhatsApp Web (Baileys) 経由で本番環境対応。ゲートウェイがリンクされたセッションを所有します。

クイックセットアップ

ステップ 1: WhatsAppアクセスポリシーを構成する

{
  channels: {
    whatsapp: {
      dmPolicy: "pairing",
      allowFrom: ["+15551234567"],
      groupPolicy: "allowlist",
      groupAllowFrom: ["+15551234567"],
    },
  },
}

ステップ 2: WhatsAppをリンクする (QR)

openclaw channels login --channel whatsapp

特定のアカウントの場合:

openclaw channels login --channel whatsapp --account work

ステップ 3: ゲートウェイを起動する

openclaw gateway

ステップ 4: 最初のペアリングリクエストを承認する (ペアリングモード使用時)

openclaw pairing list whatsapp
openclaw pairing approve whatsapp <CODE>

ペアリングリクエストは1時間後に期限切れになります。保留中のリクエストはチャネルごとに最大3件に制限されます。

ℹ️ OpenClawでは可能な限り、WhatsAppを別の番号で実行することを推奨しています。(チャネルのメタデータとオンボーディングフローはそのセットアップに最適化されていますが、個人番号のセットアップもサポートされています。)

デプロイメントパターン

ランタイムモデル

  • ゲートウェイがWhatsAppソケットと再接続ループを所有します。
  • 送信には、対象アカウントのアクティブなWhatsAppリスナーが必要です。
  • ステータスおよびブロードキャストチャットは無視されます (@status, @broadcast)。
  • ダイレクトチャットはDMセッションルールを使用します (session.dmScope; デフォルト main はDMをエージェントのメインセッションに統合します)。
  • グループセッションは分離されます (agent:<agentId>:whatsapp:group:<jid>)。

アクセス制御とアクティベーション

channels.whatsapp.dmPolicy はダイレクトチャットへのアクセスを制御します:

  • pairing (デフォルト)
  • allowlist
  • open (allowFrom"*" を含む必要があります)
  • disabled

allowFrom はE.164形式の番号を受け入れます (内部的に正規化されます)。マルチアカウントのオーバーライド: channels.whatsapp.accounts.<id>.dmPolicy (および allowFrom) は、そのアカウントに対してチャネルレベルのデフォルト設定よりも優先されます。ランタイム動作の詳細:

  • ペアリングはチャネルの許可ストアに永続化され、設定された allowFrom とマージされます
  • 許可リストが設定されていない場合、リンクされた自己番号がデフォルトで許可されます
  • 送信側 fromMe のDMは自動的にペアリングされることはありません

個人番号と自己チャットの動作

リンクされた自己番号が allowFrom にも存在する場合、WhatsApp自己チャット保護が有効になります:

  • 自己チャットターンの既読レシートをスキップします
  • そうでなければ自分自身にpingを送信する可能性のあるメンションJID自動トリガー動作を無視します
  • messages.responsePrefix が設定されていない場合、自己チャット返信はデフォルトで [{identity.name}] または [openclaw] になります

メッセージ正規化とコンテキスト

配信、チャンキング、メディア

受信確認リアクション

WhatsAppは、channels.whatsapp.ackReaction を介して受信確認時に即座にリアクションをサポートします。

{
  channels: {
    whatsapp: {
      ackReaction: {
        emoji: "👀",
        direct: true,
        group: "mentions", // always | mentions | never
      },
    },
  },
}

動作に関する注意:

  • 受信が承認された直後 (返信前) に送信されます
  • 失敗はログに記録されますが、通常の返信配信をブロックしません
  • グループモード mentions はメンションでトリガーされたターンにリアクションします。グループアクティベーション always はこのチェックのバイパスとして機能します
  • WhatsAppは channels.whatsapp.ackReaction を使用します (従来の messages.ackReaction はここでは使用されません)

マルチアカウントと認証情報

ツール、アクション、設定書き込み

  • エージェントツールサポートにはWhatsAppリアクションアクション (react) が含まれます。
  • アクションゲート:
    • channels.whatsapp.actions.reactions
    • channels.whatsapp.actions.polls
  • チャネル開始の設定書き込みはデフォルトで有効です (channels.whatsapp.configWrites=false で無効化可能)。

トラブルシューティング

設定リファレンスポインタ

主なリファレンス:

重要なWhatsAppフィールド:

  • アクセス: dmPolicy, allowFrom, groupPolicy, groupAllowFrom, groups
  • 配信: textChunkLimit, chunkMode, mediaMaxMb, sendReadReceipts, ackReaction
  • マルチアカウント: accounts.<id>.enabled, accounts.<id>.authDir, アカウントレベルのオーバーライド
  • 運用: configWrites, debounceMs, web.enabled, web.heartbeatSeconds, web.reconnect.*
  • セッション動作: session.dmScope, historyLimit, dmHistoryLimit, dms.<id>.historyLimit

関連項目

TwitchZalo