Nodes and media
Ativação por voz
OpenClaw trata palavras de ativação como uma única lista global pertencente ao Gateway.
- Não há palavras de ativação personalizadas por nó.
- Qualquer interface de nó/app pode editar a lista; as alterações são persistidas pelo Gateway e transmitidas para todos.
- macOS e iOS mantêm alternâncias locais para Voice Wake ativado/desativado (a UX local + permissões diferem).
- No momento, o Android mantém o Voice Wake desativado e usa um fluxo manual de microfone na aba Voz.
Armazenamento (host do Gateway)
Palavras de ativação e regras de roteamento são armazenadas no banco de dados de estado do gateway:
~/.openclaw/state/openclaw.sqlite
As tabelas ativas são:
voicewake_triggersvoicewake_routing_configvoicewake_routing_routes
Arquivos legados settings/voicewake.json e settings/voicewake-routing.json são
apenas entradas de migração do doctor; em tempo de execução, a leitura e a escrita usam as tabelas SQLite.
Protocolo
Métodos
voicewake.get→{ triggers: string[] }voicewake.setcom parâmetros{ triggers: string[] }→{ triggers: string[] }
Observações:
- Os gatilhos são normalizados (espaços removidos nas extremidades, vazios descartados). Listas vazias retornam aos padrões.
- Limites são aplicados por segurança (limites de contagem/comprimento).
Métodos de roteamento (gatilho → destino)
voicewake.routing.get→{ config: VoiceWakeRoutingConfig }voicewake.routing.setcom parâmetros{ config: VoiceWakeRoutingConfig }→{ config: VoiceWakeRoutingConfig }
Formato de VoiceWakeRoutingConfig:
{ "version": 1, "defaultTarget": { "mode": "current" }, "routes": [{ "trigger": "robot wake", "target": { "sessionKey": "agent:main:main" } }], "updatedAtMs": 1730000000000}Os destinos de rota oferecem suporte a exatamente um dos seguintes:
{ "mode": "current" }{ "agentId": "main" }{ "sessionKey": "agent:main:main" }
Eventos
- payload de
voicewake.changed{ triggers: string[] } - payload de
voicewake.routing.changed{ config: VoiceWakeRoutingConfig }
Quem o recebe:
- Todos os clientes WebSocket (app macOS, WebChat etc.)
- Todos os nós conectados (iOS/Android), e também ao conectar um nó como um envio inicial de "estado atual".
Comportamento do cliente
App macOS
- Usa a lista global para controlar os gatilhos de
VoiceWakeRuntime. - Editar "Palavras de gatilho" nas configurações de Voice Wake chama
voicewake.sete então depende da transmissão para manter outros clientes sincronizados.
Nó iOS
- Usa a lista global para a detecção de gatilhos de
VoiceWakeManager. - Editar Palavras de ativação nas Configurações chama
voicewake.set(pelo WS do Gateway) e também mantém a detecção local de palavras de ativação responsiva.
Nó Android
- Voice Wake está atualmente desativado no runtime/Configurações do Android.
- A voz no Android usa captura manual de microfone na aba Voz em vez de gatilhos por palavra de ativação.
Relacionado
Was this useful?