Nodes and media
Réveil vocal
OpenClaw traite les mots de réveil comme une seule liste globale détenue par le Gateway.
- 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
Les tables actives sont :
voicewake_triggersvoicewake_routing_configvoicewake_routing_routes
Les anciens fichiers 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[] }
Notes :
- 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 }
Forme de VoiceWakeRoutingConfig :
{ "version": 1, "defaultTarget": { "mode": "current" }, "routes": [{ "trigger": "robot wake", "target": { "sessionKey": "agent:main:main" } }], "updatedAtMs": 1730000000000}Les cibles de route prennent en charge exactement l’un des éléments suivants :
{ "mode": "current" }{ "agentId": "main" }{ "sessionKey": "agent:main:main" }
Événements
- charge utile
voicewake.changed{ triggers: string[] } - charge utile
voicewake.routing.changed{ config: VoiceWakeRoutingConfig }
Qui le reçoit :
- 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.
Connexe
Was this useful?