- macOS: opzione locale per abilitare o disabilitare Voice Wake. Richiede macOS 26+; consultare Attivazione vocale (macOS) per i dettagli su runtime/PTT.
- iOS: opzione locale per abilitare o disabilitare Voice Wake in Settings.
- Android: opzione locale per abilitare o disabilitare Voice Wake ed editor delle parole di attivazione in Settings → Voice. Richiede il riconoscimento vocale sul dispositivo di Android.
Archiviazione
Le parole di attivazione e le regole di instradamento risiedono nel database di stato del Gateway,~/.openclaw/state/openclaw.sqlite per impostazione predefinita (sostituibile con OPENCLAW_STATE_DIR), nelle tabelle voicewake_triggers, voicewake_routing_config, voicewake_routing_routes. I precedenti settings/voicewake.json e settings/voicewake-routing.json sono esclusivamente input di migrazione per openclaw doctor --fix — il runtime non li legge mai.
Protocollo
Elenco degli attivatori
voicewake.set normalizza l’input: rimuove gli spazi iniziali e finali, elimina le voci vuote, conserva al massimo 32 attivatori e tronca ciascuno a 64 unità di codice UTF-16 senza dividere le coppie surrogate. Se il risultato è vuoto, vengono usati i valori predefiniti integrati (openclaw, claude, computer).
Instradamento (dall’attivatore alla destinazione)
target supporta esattamente una delle seguenti opzioni:
{ "mode": "current" }{ "agentId": "main" }{ "sessionKey": "agent:main:main" }
"Hey, Bot!!" e "hey bot" corrispondono e vengono considerati duplicati) — si tratta di una normalizzazione più rigorosa rispetto alla semplice rimozione degli spazi usata per l’elenco globale degli attivatori precedente.
Eventi
Entrambi vengono trasmessi a ogni client WebSocket con ambito di lettura (app macOS, WebChat e simili) e a ogni nodo connesso. Un nodo li riceve entrambi anche come snapshot iniziale subito dopo la connessione.
Comportamento dei client
- macOS: chiama
voicewake.set/voicewake.gete resta in ascolto divoicewake.changedper mantenersi sincronizzato con gli altri client. - iOS: chiama
voicewake.set/voicewake.gete resta in ascolto divoicewake.changedper mantenere reattivo il rilevamento locale delle parole di attivazione. - Android: chiama
voicewake.set/voicewake.get, resta in ascolto divoicewake.changede pubblicizzavoiceWakequando è abilitato. Il riconoscimento rimane sul dispositivo e funziona solo in primo piano; viene sospeso quando Talk, la dettatura manuale, l’acquisizione di note vocali o la sintesi vocale dei messaggi utilizzano l’audio.