ボイスウェイク(グローバルウェイクワード)
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 を呼び出すため、編集はすべての場所で同期されます。