ボイスウェイク(グローバルウェイクワード)

OpenClaw はウェイクワードを Gateway が所有する単一のグローバルリストとして扱います。

  • ノードごとのカスタムウェイクワードはありません
  • 任意のノード/アプリ UI が編集できます。変更は Gateway によって永続化され、全員にブロードキャストされます。
  • 各デバイスは独自のボイスウェイク有効/無効トグルを保持します(ローカル UX + 権限が異なります)。

ストレージ(Gateway ホスト)

ウェイクワードはゲートウェイマシンに保存されます:

  • ~/.openclaw/settings/voicewake.json

構造:

{ "triggers": ["openclaw", "claude", "computer"], "updatedAtMs": 1730000000000 }

プロトコル

メソッド

  • voicewake.get{ triggers: string[] }
  • voicewake.set、パラメータ { triggers: string[] }{ triggers: string[] }

注意:

  • トリガーは正規化されます(トリム、空は削除)。空のリストはデフォルトにフォールバックします。
  • 安全のために制限が適用されます(カウント/長さの上限)。

イベント

  • voicewake.changed ペイロード { triggers: string[] }

誰が受信するか:

  • すべての WebSocket クライアント(macOS アプリ、WebChat など)。
  • すべての接続されたノード(iOS/Android)、およびノード接続時に初期「現在の状態」プッシュとして。

クライアントの動作

macOS アプリ

  • グローバルリストを使用して VoiceWakeRuntime トリガーをゲートします。
  • ボイスウェイク設定で「トリガーワード」を編集すると、voicewake.set を呼び出し、その後ブロードキャストに依存して他のクライアントを同期させます。

iOS ノード

  • VoiceWakeManager トリガー検出にグローバルリストを使用します。
  • 設定でウェイクワードを編集すると、(Gateway WS 経由で)voicewake.set を呼び出し、ローカルウェイクワード検出の応答性も維持します。

Android ノード

  • 設定でウェイクワードエディターを公開します。
  • Gateway WS 経由で voicewake.set を呼び出すため、編集はすべての場所で同期されます。