Voice Wake (Global Wake Words)
OpenClaw は、ウェイクワードを Gateway が所有する単一のグローバルリストとして扱います。- ノードごとのカスタムウェイクワードはありません。
- どのノード/アプリ UI からでも リストを編集できます。変更は Gateway によって永続化され、全員にブロードキャストされます。
- macOS と iOS では、ローカルの Voice Wake enabled/disabled トグルを維持します(ローカル UX と権限が異なるため)。
- Android では現在 Voice Wake は無効で、Voice タブの手動マイクフローを使います。
保存場所(Gateway ホスト)
ウェイクワードは Gateway マシン上の次の場所に保存されます:~/.openclaw/settings/voicewake.json
プロトコル
メソッド
voicewake.get→{ triggers: string[] }voicewake.set、パラメータ{ triggers: string[] }→{ triggers: string[] }
- Trigger は正規化されます(前後空白の除去、空要素の削除)。空リストはデフォルトにフォールバックします。
- 安全のために制限(件数/長さの上限)が適用されます。
イベント
voicewake.changedペイロード{ triggers: string[] }
- すべての WebSocket クライアント(macOS アプリ、WebChat など)
- 接続中のすべてのノード(iOS/Android)、およびノード接続時の初期「現在状態」プッシュでも送信されます。
クライアント動作
macOS アプリ
- グローバルリストを使って
VoiceWakeRuntimeトリガーを制御します。 - Voice Wake 設定の「Trigger words」を編集すると
voicewake.setを呼び出し、その後ブロードキャストに依存して他のクライアントとの同期を維持します。
iOS ノード
VoiceWakeManagerのトリガー検出にグローバルリストを使います。- Settings で Wake Words を編集すると
voicewake.setを呼び出し(Gateway WS 経由)、ローカルのウェイクワード検出の応答性も維持します。
Android ノード
- Android のランタイム/Settings では現在 Voice Wake は無効です。
- Android の音声機能では、ウェイクワードトリガーの代わりに Voice タブの手動マイク入力を使います。