- macOS: interruptor local para activar/desactivar Voice Wake. Requiere macOS 26+; consulta Activación por voz (macOS) para detalles de runtime/PTT.
- iOS: interruptor local para activar/desactivar Voice Wake en Configuración.
- Android: Voice Wake se desactiva forzosamente en runtime. La pestaña Voz usa captura manual del micrófono en lugar de activadores por palabra de activación.
Almacenamiento
Las palabras de activación y las reglas de enrutamiento viven en la base de datos de estado del Gateway,~/.openclaw/state/openclaw.sqlite de forma predeterminada (se puede sobrescribir con OPENCLAW_STATE_DIR), en las tablas voicewake_triggers, voicewake_routing_config, voicewake_routing_routes. Los archivos heredados settings/voicewake.json y settings/voicewake-routing.json son solo entradas de migración para openclaw doctor --fix; el runtime nunca los lee.
Protocolo
Lista de activadores
| Método | Parámetros | Resultado |
|---|---|---|
voicewake.get | ninguno | { triggers: string[] } |
voicewake.set | { triggers: string[] } | { triggers: string[] } |
voicewake.set normaliza la entrada: recorta espacios en blanco, elimina entradas vacías, conserva como máximo 32 activadores y trunca cada uno a 64 caracteres. Un resultado vacío vuelve a los valores predeterminados integrados (openclaw, claude, computer).
Enrutamiento (activador a destino)
| Método | Parámetros | Resultado |
|---|---|---|
voicewake.routing.get | ninguno | { config: VoiceWakeRoutingConfig } |
voicewake.routing.set | { config: VoiceWakeRoutingConfig } | { config: VoiceWakeRoutingConfig } |
target de ruta admite exactamente uno de estos:
{ "mode": "current" }{ "agentId": "main" }{ "sessionKey": "agent:main:main" }
"Hey, Bot!!" y "hey bot" coinciden y cuentan como duplicados); esta es una normalización más estricta que el recorte simple usado para la lista global de activadores anterior.
Eventos
| Evento | Carga útil |
|---|---|
voicewake.changed | { triggers: string[] } |
voicewake.routing.changed | { config: VoiceWakeRoutingConfig } |
Comportamiento del cliente
- macOS: llama a
voicewake.set/voicewake.gety escuchavoicewake.changedpara mantenerse sincronizado con otros clientes. - iOS: llama a
voicewake.set/voicewake.gety escuchavoicewake.changedpara mantener ágil la detección local de palabras de activación. - Android: existen
VoiceWakeMode(Off/Foreground/Always) y código de sincronización con el Gateway, pero la app fuerza el modo aOffal iniciar; Voice Wake no está disponible actualmente desde Configuración de Android.