Nodes and media

Activación por voz

OpenClaw trata las palabras de activación como una única lista global propiedad del Gateway.

  • No hay palabras de activación personalizadas por nodo.
  • Cualquier interfaz de nodo/app puede editar la lista; los cambios los persiste el Gateway y se transmiten a todos.
  • macOS e iOS mantienen interruptores locales de Activación por voz habilitada/deshabilitada (la UX local y los permisos difieren).
  • Android actualmente mantiene la Activación por voz desactivada y usa un flujo manual de micrófono en la pestaña Voz.

Almacenamiento (host del Gateway)

Las palabras de activación se almacenan en la máquina del gateway en:

  • ~/.openclaw/settings/voicewake.json

Forma:

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

Protocolo

Métodos

  • voicewake.get{ triggers: string[] }
  • voicewake.set con parámetros { triggers: string[] }{ triggers: string[] }

Notas:

  • Los activadores se normalizan (se recortan, se eliminan los vacíos). Las listas vacías vuelven a los valores predeterminados.
  • Se aplican límites por seguridad (topes de cantidad/longitud).

Métodos de enrutamiento (activador → destino)

  • voicewake.routing.get{ config: VoiceWakeRoutingConfig }
  • voicewake.routing.set con parámetros { config: VoiceWakeRoutingConfig }{ config: VoiceWakeRoutingConfig }

Forma de VoiceWakeRoutingConfig:

{
  "version": 1,
  "defaultTarget": { "mode": "current" },
  "routes": [{ "trigger": "robot wake", "target": { "sessionKey": "agent:main:main" } }],
  "updatedAtMs": 1730000000000
}

Los destinos de ruta admiten exactamente uno de:

  • { "mode": "current" }
  • { "agentId": "main" }
  • { "sessionKey": "agent:main:main" }

Eventos

  • voicewake.changed con carga { triggers: string[] }
  • voicewake.routing.changed con carga { config: VoiceWakeRoutingConfig }

Quién lo recibe:

  • Todos los clientes WebSocket (app de macOS, WebChat, etc.)
  • Todos los nodos conectados (iOS/Android), y también al conectar un nodo como envío inicial del "estado actual".

Comportamiento del cliente

App de macOS

  • Usa la lista global para controlar los activadores de VoiceWakeRuntime.
  • Editar "Palabras de activación" en la configuración de Activación por voz llama a voicewake.set y luego depende de la transmisión para mantener sincronizados a los demás clientes.

Nodo iOS

  • Usa la lista global para la detección de activadores de VoiceWakeManager.
  • Editar Palabras de activación en Ajustes llama a voicewake.set (a través del WS del Gateway) y también mantiene receptiva la detección local de palabras de activación.

Nodo Android

  • La Activación por voz está actualmente deshabilitada en el runtime/la Configuración de Android.
  • La voz en Android usa la captura manual de micrófono en la pestaña Voz en lugar de activadores por palabra de activación.

Relacionado