Voice Wake (глобальні wake words)
OpenClaw трактує wake words як єдиний глобальний список, яким володіє Gateway.- Немає користувацьких wake words для окремих вузлів.
- Будь-який UI вузла/застосунку може редагувати список; зміни зберігаються Gateway і транслюються всім.
- macOS та iOS зберігають локальні перемикачі Voice Wake увімкнено/вимкнено (локальний UX + дозволи відрізняються).
- Android наразі тримає Voice Wake вимкненим і використовує ручний потік мікрофона у вкладці Voice.
Зберігання (хост Gateway)
Wake words зберігаються на машині gateway за адресою:~/.openclaw/settings/voicewake.json
Протокол
Методи
voicewake.get→{ triggers: string[] }voicewake.setз параметрами{ triggers: string[] }→{ triggers: string[] }
- Тригери нормалізуються (обрізаються пробіли, порожні значення відкидаються). Порожні списки повертаються до типових значень.
- З міркувань безпеки застосовуються обмеження (на кількість/довжину).
Події
voicewake.changedз payload{ triggers: string[] }
- Усі WebSocket-клієнти (macOS app, WebChat тощо)
- Усі підключені вузли (iOS/Android), а також під час підключення вузла як початковий push із “поточним станом”.
Поведінка клієнтів
macOS app
- Використовує глобальний список для обмеження тригерів
VoiceWakeRuntime. - Редагування “Trigger words” у налаштуваннях Voice Wake викликає
voicewake.set, а потім покладається на broadcast для синхронізації інших клієнтів.
Вузол iOS
- Використовує глобальний список для виявлення тригерів у
VoiceWakeManager. - Редагування Wake Words у Settings викликає
voicewake.set(через Gateway WS) і також зберігає чутливість локального виявлення wake words.
Вузол Android
- Voice Wake наразі вимкнено в runtime/Settings Android.
- Голос в Android використовує ручне захоплення з мікрофона у вкладці Voice замість тригерів wake word.