Activación por voz (palabras de activación globales)
OpenClaw trata las palabras de activación como una lista global única propiedad del Gateway.
- No hay palabras de activación personalizadas por nodo.
- Cualquier nodo/UI de app puede editar la lista; los cambios los persiste el Gateway y se transmiten a todos.
- macOS e iOS mantienen toggles locales de activación por voz habilitada/desactivada (la UX local + permisos difieren).
- Android actualmente mantiene la activación por voz desactivada y usa un flujo de micrófono manual en la pestaña de Voz.
Almacenamiento (host del Gateway)
Las palabras de activación se almacenan en la máquina del gateway en:
~/.openclaw/settings/voicewake.json
Estructura:
{ "triggers": ["openclaw", "claude", "computer"], "updatedAtMs": 1730000000000 }
Protocolo
Métodos
voicewake.get→{ triggers: string[] }voicewake.setcon parámetros{ triggers: string[] }→{ triggers: string[] }
Notas:
- Los triggers se normalizan (recortados, vacíos eliminados). Las listas vacías recurren a los valores por defecto.
- Se aplican límites de seguridad (topes de cantidad/longitud).
Eventos
voicewake.changedpayload{ triggers: string[] }
Quién lo recibe:
- Todos los clientes WebSocket (app macOS, WebChat, etc.)
- Todos los nodos conectados (iOS/Android), y también al conectarse el nodo como push inicial del “estado actual”.
Comportamiento del cliente
App macOS
- Usa la lista global para controlar los triggers de
VoiceWakeRuntime. - Editar “Palabras de activación” en los ajustes de activación por voz llama a
voicewake.sety luego depende de la transmisión para mantener otros clientes sincronizados.
Nodo iOS
- Usa la lista global para la detección de triggers en
VoiceWakeManager. - Editar las palabras de activación en Ajustes llama a
voicewake.set(a través del WS del Gateway) y también mantiene la detección local de palabras de activación receptiva.
Nodo Android
- La activación por voz está actualmente desactivada en el runtime/Ajustes de Android.
- La voz en Android usa captura manual del micrófono en la pestaña de Voz en lugar de triggers de activación.