- Пользовательских слов пробуждения для отдельных узлов нет.
- Любой интерфейс узла/приложения может редактировать список; изменения сохраняются 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; во время выполнения чтение и запись выполняются в таблицы SQLite.
Протокол
Методы
voicewake.get→{ triggers: string[] }voicewake.setс параметрами{ triggers: string[] }→{ triggers: string[] }
- Триггеры нормализуются (обрезаются пробелы, пустые значения отбрасываются). Пустые списки откатываются к значениям по умолчанию.
- Для безопасности применяются ограничения (лимиты количества и длины).
Методы маршрутизации (триггер → цель)
voicewake.routing.get→{ config: VoiceWakeRoutingConfig }voicewake.routing.setс параметрами{ config: VoiceWakeRoutingConfig }→{ config: VoiceWakeRoutingConfig }
VoiceWakeRoutingConfig:
{ "mode": "current" }{ "agentId": "main" }{ "sessionKey": "agent:main:main" }
События
- полезная нагрузка
voicewake.changed{ triggers: string[] } - полезная нагрузка
voicewake.routing.changed{ config: VoiceWakeRoutingConfig }
- Все клиенты WebSocket (приложение macOS, WebChat и т. д.)
- Все подключенные узлы (iOS/Android), а также при подключении узла как начальная отправка «текущего состояния».
Поведение клиента
Приложение macOS
- Использует глобальный список для допуска триггеров
VoiceWakeRuntime. - Редактирование «Слов-триггеров» в настройках Голосового пробуждения вызывает
voicewake.set, а затем полагается на рассылку, чтобы поддерживать синхронизацию других клиентов.
Узел iOS
- Использует глобальный список для обнаружения триггеров
VoiceWakeManager. - Редактирование слов пробуждения в настройках вызывает
voicewake.set(через Gateway WS), а также сохраняет отзывчивость локального обнаружения слов пробуждения.
Узел Android
- Голосовое пробуждение сейчас отключено в среде выполнения/настройках Android.
- Голос на Android использует ручной захват микрофона на вкладке «Голос» вместо триггеров по словам пробуждения.