- macOS: локальний перемикач увімкнення/вимкнення голосової активації. Потрібна macOS 26+; подробиці про виконання/PTT див. у розділі Голосова активація (macOS).
- iOS: локальний перемикач увімкнення/вимкнення голосової активації в налаштуваннях.
- Android: локальний перемикач увімкнення/вимкнення голосової активації та редактор слів активації в Settings → Voice. Потрібне вбудоване розпізнавання мовлення на пристрої Android.
Зберігання
Слова активації та правила маршрутизації зберігаються в базі даних стану Gateway, за замовчуванням~/.openclaw/state/openclaw.sqlite (можна перевизначити за допомогою OPENCLAW_STATE_DIR), у таблицях voicewake_triggers, voicewake_routing_config, voicewake_routing_routes. Застарілі settings/voicewake.json і settings/voicewake-routing.json використовуються лише як вхідні дані міграції openclaw doctor --fix — середовище виконання ніколи їх не читає.
Протокол
Список тригерів
voicewake.set нормалізує вхідні дані: обрізає пробіли, відкидає порожні елементи, зберігає не більше 32 тригерів і скорочує кожен до 64 кодових одиниць UTF-16, не розділяючи сурогатні пари. Якщо результат порожній, використовуються вбудовані значення за замовчуванням (openclaw, claude, computer).
Маршрутизація (від тригера до цілі)
target підтримує рівно один із таких варіантів:
{ "mode": "current" }{ "agentId": "main" }{ "sessionKey": "agent:main:main" }
"Hey, Bot!!" і "hey bot" збігаються та вважаються дублікатами) — це суворіша нормалізація, ніж просте обрізання пробілів для глобального списку тригерів вище.
Події
Обидві події транслюються кожному клієнту WebSocket із правами читання (застосунку macOS, WebChat тощо) і кожному підключеному вузлу. Вузол також отримує обидві події як початковий знімок стану відразу після підключення.
Поведінка клієнтів
- macOS: викликає
voicewake.set/voicewake.getі прослуховуєvoicewake.changed, щоб залишатися синхронізованим з іншими клієнтами. - iOS: викликає
voicewake.set/voicewake.getі прослуховуєvoicewake.changed, щоб локальне виявлення слів активації залишалося чутливим. - Android: викликає
voicewake.set/voicewake.get, прослуховуєvoicewake.changedі оголошуєvoiceWake, коли функцію ввімкнено. Розпізнавання відбувається лише на пристрої та лише на передньому плані; воно призупиняється, коли Talk, ручне диктування, запис голосової нотатки або озвучення повідомлення використовує аудіо.