- Il n’existe aucun mot de réveil personnalisé par nœud.
- Toute interface utilisateur de nœud/application peut modifier la liste ; les changements sont persistés par le Gateway et diffusés à tout le monde.
- macOS et iOS conservent des boutons locaux pour activer/désactiver Voice Wake (l’UX locale et les permissions diffèrent).
- Android garde actuellement Voice Wake désactivé et utilise un flux de micro manuel dans l’onglet Voice.
Stockage (hôte du Gateway)
Les mots de réveil et les règles de routage sont stockés dans la base de données d’état du gateway :~/.openclaw/state/openclaw.sqlite
voicewake_triggersvoicewake_routing_configvoicewake_routing_routes
settings/voicewake.json et settings/voicewake-routing.json sont
uniquement des entrées de migration pour doctor ; à l’exécution, les tables SQLite sont lues et écrites.
Protocole
Méthodes
voicewake.get→{ triggers: string[] }voicewake.setavec les paramètres{ triggers: string[] }→{ triggers: string[] }
- Les déclencheurs sont normalisés (espaces supprimés en début et fin, valeurs vides supprimées). Les listes vides reviennent aux valeurs par défaut.
- Des limites sont appliquées par sécurité (plafonds de nombre/longueur).
Méthodes de routage (déclencheur → cible)
voicewake.routing.get→{ config: VoiceWakeRoutingConfig }voicewake.routing.setavec les paramètres{ config: VoiceWakeRoutingConfig }→{ config: VoiceWakeRoutingConfig }
VoiceWakeRoutingConfig :
{ "mode": "current" }{ "agentId": "main" }{ "sessionKey": "agent:main:main" }
Événements
- charge utile
voicewake.changed{ triggers: string[] } - charge utile
voicewake.routing.changed{ config: VoiceWakeRoutingConfig }
- Tous les clients WebSocket (application macOS, WebChat, etc.)
- Tous les nœuds connectés (iOS/Android), ainsi que lors de la connexion d’un nœud sous forme d’envoi initial de « l’état actuel ».
Comportement client
Application macOS
- Utilise la liste globale pour filtrer les déclencheurs
VoiceWakeRuntime. - La modification de « Trigger words » dans les paramètres Voice Wake appelle
voicewake.set, puis s’appuie sur la diffusion pour maintenir les autres clients synchronisés.
Nœud iOS
- Utilise la liste globale pour la détection des déclencheurs
VoiceWakeManager. - La modification de Wake Words dans Settings appelle
voicewake.set(via le WS du Gateway) et garde également la détection locale des mots de réveil réactive.
Nœud Android
- Voice Wake est actuellement désactivé dans l’exécution/les Settings Android.
- La voix Android utilise la capture micro manuelle dans l’onglet Voice au lieu des déclencheurs par mots de réveil.