Réveil vocal
OpenClaw traite les mots de réveil comme une liste globale unique appartenant au Gateway.
- Il n’y a pas de mots de réveil personnalisés par nœud.
- Toute interface utilisateur de nœud/application peut modifier la liste ; les modifications sont persistées par le Gateway et diffusées à tous.
- macOS et iOS conservent des interrupteurs locaux d’activation/désactivation du Réveil vocal (l’expérience utilisateur locale et les autorisations diffèrent).
- Android garde actuellement le Réveil vocal désactivé et utilise un flux manuel de microphone dans l’onglet Voice.
Stockage (hôte Gateway)
Section intitulée « Stockage (hôte Gateway) »Les mots de réveil sont stockés sur la machine de la passerelle à l’emplacement :
~/.openclaw/settings/voicewake.json
Forme :
{ "triggers": ["openclaw", "claude", "computer"], "updatedAtMs": 1730000000000 }Protocole
Section intitulée « Protocole »Méthodes
Section intitulée « 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, éléments vides ignorés). Les listes vides reviennent aux valeurs par défaut.
- Des limites sont appliquées pour la sécurité (plafonds de nombre/longueur).
Méthodes de routage (déclencheur → cible)
Section intitulée « Méthodes de routage (déclencheur → cible) »voicewake.routing.get→{ config: VoiceWakeRoutingConfig }voicewake.routing.setavec les paramètres{ config: VoiceWakeRoutingConfig }→{ config: VoiceWakeRoutingConfig }
Forme VoiceWakeRoutingConfig :
{ "version": 1, "defaultTarget": { "mode": "current" }, "routes": [{ "trigger": "robot wake", "target": { "sessionKey": "agent:main:main" } }], "updatedAtMs": 1730000000000}Les cibles de routage prennent en charge exactement l’une des options suivantes :
{ "mode": "current" }{ "agentId": "main" }{ "sessionKey": "agent:main:main" }
Événements
Section intitulée « É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), et également lors de la connexion du nœud en tant qu’envoi initial de l’état actuel.
Comportement du client
Section intitulée « Comportement du client »Application macOS
Section intitulée « Application macOS »- Utilise la liste globale pour filtrer les déclencheurs
VoiceWakeRuntime. - La modification des « Mots déclencheurs » dans les paramètres de Voice Wake appelle
voicewake.set, puis s’appuie sur la diffusion pour garder les autres clients synchronisés.
Nœud iOS
Section intitulée « Nœud iOS »- Utilise la liste globale pour la détection des déclencheurs
VoiceWakeManager. - La modification des mots de réveil dans les paramètres appelle
voicewake.set(via le WS du Gateway) et maintient également la réactivité de la détection locale des mots de réveil.
Nœud Android
Section intitulée « Nœud Android »- Voice Wake est actuellement désactivé dans le runtime/les paramètres Android.
- La voix Android utilise une capture manuelle du microphone dans l’onglet Voice au lieu des déclencheurs de mots de réveil.