- macOS: controle local para ativar/desativar a ativação por voz. Requer macOS 26+; consulte Ativação por voz (macOS) para obter detalhes sobre runtime/PTT.
- iOS: controle local para ativar/desativar a ativação por voz em Ajustes.
- Android: controle local para ativar/desativar a ativação por voz e editor de palavras de ativação em Configurações → Voz. Requer reconhecimento de fala no dispositivo Android.
Armazenamento
As palavras de ativação e as regras de roteamento ficam no banco de dados de estado do Gateway,~/.openclaw/state/openclaw.sqlite por padrão (substitua com OPENCLAW_STATE_DIR), nas tabelas voicewake_triggers, voicewake_routing_config, voicewake_routing_routes. Os arquivos legados settings/voicewake.json e settings/voicewake-routing.json são apenas entradas de migração de openclaw doctor --fix — o runtime nunca os lê.
Protocolo
Lista de acionadores
voicewake.set normaliza a entrada: remove espaços em branco nas extremidades, descarta entradas vazias, mantém no máximo 32 acionadores e trunca cada um para 64 unidades de código UTF-16 sem dividir pares substitutos. Um resultado vazio retorna aos padrões integrados (openclaw, claude, computer).
Roteamento (do acionador ao destino)
target de rota aceita exatamente um dos seguintes:
{ "mode": "current" }{ "agentId": "main" }{ "sessionKey": "agent:main:main" }
"Hey, Bot!!" e "hey bot" correspondem e são considerados duplicatas) — essa normalização é mais rigorosa que a simples remoção de espaços nas extremidades usada para a lista global de acionadores acima.
Eventos
Ambos são transmitidos a todos os clientes WebSocket com escopo de leitura (aplicativo para macOS, WebChat e semelhantes) e a todos os Nodes conectados. Um Node também recebe ambos como um envio inicial de snapshot logo após se conectar.
Comportamento dos clientes
- macOS: chama
voicewake.set/voicewake.gete escutavoicewake.changedpara permanecer sincronizado com outros clientes. - iOS: chama
voicewake.set/voicewake.gete escutavoicewake.changedpara manter responsiva a detecção local de palavras de ativação. - Android: chama
voicewake.set/voicewake.get, escutavoicewake.changede anunciavoiceWakeenquanto está ativado. O reconhecimento permanece no dispositivo e funciona somente em primeiro plano; ele é pausado enquanto o Talk, o ditado manual, a captura de notas de voz ou a fala de mensagens controla o áudio.