Nodes and media
Голосове пробудження
OpenClaw розглядає слова пробудження як єдиний глобальний список, яким володіє Gateway.
- Немає користувацьких слів пробудження для окремих вузлів.
- Будь-який вузол або UI застосунку може редагувати список; зміни зберігаються Gateway і транслюються всім.
- macOS та iOS зберігають локальні перемикачі увімкнення/вимкнення голосового пробудження (локальний UX і дозволи відрізняються).
- Android наразі тримає голосове пробудження вимкненим і використовує ручний потік мікрофона на вкладці «Голос».
Сховище (хост Gateway)
Слова пробудження та правила маршрутизації зберігаються в базі даних стану Gateway:
~/.openclaw/state/openclaw.sqlite
Активні таблиці:
voicewake_triggersvoicewake_routing_configvoicewake_routing_routes
Застарілі файли settings/voicewake.json і settings/voicewake-routing.json є
лише вхідними даними для міграції doctor; runtime читає та записує таблиці SQLite.
Протокол
Методи
voicewake.get→{ triggers: string[] }voicewake.setз параметрами{ triggers: string[] }→{ triggers: string[] }
Примітки:
- Тригери нормалізуються (обрізаються пробіли, порожні значення відкидаються). Порожні списки повертаються до стандартних значень.
- Обмеження застосовуються для безпеки (ліміти кількості/довжини).
Методи маршрутизації (тригер → ціль)
voicewake.routing.get→{ config: VoiceWakeRoutingConfig }voicewake.routing.setз параметрами{ config: VoiceWakeRoutingConfig }→{ config: VoiceWakeRoutingConfig }
Форма VoiceWakeRoutingConfig:
{ "version": 1, "defaultTarget": { "mode": "current" }, "routes": [{ "trigger": "robot wake", "target": { "sessionKey": "agent:main:main" } }], "updatedAtMs": 1730000000000}Цілі маршрутів підтримують рівно один із варіантів:
{ "mode": "current" }{ "agentId": "main" }{ "sessionKey": "agent:main:main" }
Події
voicewake.changedз payload{ triggers: string[] }voicewake.routing.changedз payload{ config: VoiceWakeRoutingConfig }
Хто це отримує:
- Усі клієнти WebSocket (застосунок macOS, WebChat тощо)
- Усі підключені вузли (iOS/Android), а також під час підключення вузла як початкове надсилання «поточного стану».
Поведінка клієнта
Застосунок macOS
- Використовує глобальний список, щоб обмежувати тригери
VoiceWakeRuntime. - Редагування «Слів-тригерів» у налаштуваннях голосового пробудження викликає
voicewake.set, а потім покладається на трансляцію, щоб синхронізувати інші клієнти.
Вузол iOS
- Використовує глобальний список для виявлення тригерів
VoiceWakeManager. - Редагування слів пробудження в налаштуваннях викликає
voicewake.set(через Gateway WS), а також підтримує швидку реакцію локального виявлення слів пробудження.
Вузол Android
- Голосове пробудження наразі вимкнене в runtime/налаштуваннях Android.
- Голос на Android використовує ручне захоплення мікрофона на вкладці «Голос» замість тригерів слів пробудження.
Пов’язане
Was this useful?