- macOS: control local para activar o desactivar Voice Wake. Requiere macOS 26+; consulte Activación por voz (macOS) para obtener detalles sobre el entorno de ejecución/PTT.
- iOS: control local para activar o desactivar Voice Wake en Settings.
- Android: control local para activar o desactivar Voice Wake y editor de palabras de activación en Settings → Voice. Requiere el reconocimiento de voz integrado en el dispositivo Android.
Almacenamiento
Las palabras de activación y las reglas de enrutamiento se encuentran en la base de datos de estado del Gateway,~/.openclaw/state/openclaw.sqlite de forma predeterminada (se puede sustituir con OPENCLAW_STATE_DIR), en las tablas voicewake_triggers, voicewake_routing_config y voicewake_routing_routes. Los archivos heredados settings/voicewake.json y settings/voicewake-routing.json son únicamente entradas de migración de openclaw doctor --fix; el entorno de ejecución nunca los lee.
Protocolo
Lista de activadores
voicewake.set normaliza la entrada: elimina los espacios en blanco iniciales y finales, descarta las entradas vacías, conserva un máximo de 32 activadores y trunca cada uno a 64 unidades de código UTF-16 sin dividir pares suplentes. Si el resultado está vacío, se usan los valores predeterminados integrados (openclaw, claude, computer).
Enrutamiento (del activador al destino)
target de ruta admite exactamente una de las siguientes opciones:
{ "mode": "current" }{ "agentId": "main" }{ "sessionKey": "agent:main:main" }
"Hey, Bot!!" y "hey bot" coinciden y se consideran duplicados); esta normalización es más estricta que la simple eliminación de espacios iniciales y finales utilizada en la lista global de activadores anterior.
Eventos
Ambos se difunden a todos los clientes WebSocket con permiso de lectura (la aplicación de macOS, WebChat y similares) y a todos los Node conectados. Un Node también recibe ambos como envío de instantánea inicial justo después de conectarse.
Comportamiento de los clientes
- macOS: llama a
voicewake.set/voicewake.gety escuchavoicewake.changedpara mantenerse sincronizado con otros clientes. - iOS: llama a
voicewake.set/voicewake.gety escuchavoicewake.changedpara mantener receptiva la detección local de palabras de activación. - Android: llama a
voicewake.set/voicewake.get, escuchavoicewake.changedy anunciavoiceWakemientras está activado. El reconocimiento permanece en el dispositivo y solo funciona en primer plano; se pausa mientras Talk, el dictado manual, la captura de notas de voz o la reproducción de mensajes por voz controlan el audio.