Голосовое пробуждение (глобальные ключевые слова пробуждения)

OpenClaw обрабатывает ключевые слова пробуждения как единый глобальный список, принадлежащий шлюзу.

  • Нет пользовательских ключевых слов пробуждения для каждого узла.
  • Любой UI узла/приложения может редактировать список; изменения сохраняются шлюзом и транслируются всем.
  • Каждое устройство по-прежнему сохраняет свой собственный переключатель Голосовое пробуждение включено/отключено (локальный UX + разрешения отличаются).

Хранение (хост шлюза)

Ключевые слова пробуждения хранятся на машине шлюза по адресу:

  • ~/.openclaw/settings/voicewake.json

Форма:

{ "triggers": ["openclaw", "claude", "computer"], "updatedAtMs": 1730000000000 }

Протокол

Методы

  • voicewake.get\{ triggers: string[] \}
  • voicewake.set с параметрами \{ triggers: string[] \}\{ triggers: string[] \}

Примечания:

  • Триггеры нормализуются (обрезаются, пустые отбрасываются). Пустые списки откатываются к значениям по умолчанию.
  • Для безопасности применяются ограничения (ограничения количества/длины).

События

  • voicewake.changed полезная нагрузка \{ triggers: string[] \}

Кто получает:

  • Все клиенты WebSocket (приложение macOS, WebChat и т.д.)
  • Все подключенные узлы (iOS/Android), а также при подключении узла как начальный push "текущего состояния".

Поведение клиента

Приложение macOS

  • Использует глобальный список для контроля триггеров VoiceWakeRuntime.
  • Редактирование "Триггерных слов" в настройках голосового пробуждения вызывает voicewake.set, а затем полагается на трансляцию для синхронизации других клиентов.

Узел iOS

  • Использует глобальный список для обнаружения триггеров VoiceWakeManager.
  • Редактирование ключевых слов пробуждения в Настройках вызывает voicewake.set (через WS шлюза), а также сохраняет локальное обнаружение ключевых слов пробуждения отзывчивым.

Узел Android

  • Предоставляет редактор ключевых слов пробуждения в Настройках.
  • Вызывает voicewake.set через WS шлюза, чтобы правки синхронизировались везде.