Nodes and media

Sprachaktivierung

Aktivierungswörter sind eine globale, vom Gateway verwaltete Liste — es gibt keine benutzerdefinierten Listen pro Node. Jede Node- oder App-Benutzeroberfläche kann die Liste bearbeiten; das Gateway speichert die Änderung dauerhaft und überträgt sie an alle verbundenen Clients.

  • macOS: lokaler Schalter zum Aktivieren/Deaktivieren von Voice Wake. Erfordert macOS 26+; Laufzeit-/PTT-Details finden Sie unter Sprachaktivierung (macOS).
  • iOS: lokaler Schalter zum Aktivieren/Deaktivieren von Voice Wake in den Einstellungen.
  • Android: implementiert Voice Wake nicht. Der Tab „Voice“ verwendet eine manuelle Mikrofonaufnahme anstelle von Aktivierungswort-Triggern.

Speicherung

Aktivierungswörter und Routingregeln befinden sich in der Zustandsdatenbank des Gateways, standardmäßig ~/.openclaw/state/openclaw.sqlite (überschreibbar mit OPENCLAW_STATE_DIR), in den Tabellen voicewake_triggers, voicewake_routing_config und voicewake_routing_routes. Die veralteten Dateien settings/voicewake.json und settings/voicewake-routing.json dienen ausschließlich als Migrationseingaben für openclaw doctor --fix — die Laufzeit liest sie niemals.

Protokoll

Triggerliste

Methode Parameter Ergebnis
voicewake.get keine { triggers: string[] }
voicewake.set { triggers: string[] } { triggers: string[] }

voicewake.set normalisiert die Eingabe: Leerraum wird entfernt, leere Einträge werden verworfen, höchstens 32 Trigger werden beibehalten und jeder Trigger wird auf 64 UTF-16-Codeeinheiten gekürzt, ohne Surrogatpaare zu trennen. Bei einem leeren Ergebnis werden die integrierten Standardwerte (openclaw, claude, computer) verwendet.

Routing (vom Trigger zum Ziel)

Methode Parameter Ergebnis
voicewake.routing.get keine { config: VoiceWakeRoutingConfig }
voicewake.routing.set { config: VoiceWakeRoutingConfig } { config: VoiceWakeRoutingConfig }
json
{  "version": 1,  "defaultTarget": { "mode": "current" },  "routes": [{ "trigger": "robot wake", "target": { "sessionKey": "agent:main:main" } }],  "updatedAtMs": 1730000000000}

Jedes target einer Route unterstützt genau eine der folgenden Formen:

  • { "mode": "current" }
  • { "agentId": "main" }
  • { "sessionKey": "agent:main:main" }

Grenzwerte: höchstens 32 Routen, Triggertext mit höchstens 64 Zeichen. Routentrigger werden für den Abgleich und die Erkennung von Duplikaten normalisiert, indem sie in Kleinbuchstaben umgewandelt, führende und nachgestellte Satzzeichen jedes Worts entfernt und Leerräume zusammengefasst werden ("Hey, Bot!!" und "hey bot" stimmen überein und gelten als Duplikate) — dies ist eine strengere Normalisierung als das oben für die globale Triggerliste verwendete einfache Entfernen von Leerraum.

Ereignisse

Ereignis Nutzdaten
voicewake.changed { triggers: string[] }
voicewake.routing.changed { config: VoiceWakeRoutingConfig }

Beide werden an jeden WebSocket-Client mit Leseberechtigung (macOS-App, WebChat und ähnliche) sowie an jede verbundene Node übertragen. Eine Node erhält beide außerdem direkt nach dem Verbindungsaufbau als initiale Momentaufnahme.

Clientverhalten

  • macOS: ruft voicewake.set/voicewake.get auf und lauscht auf voicewake.changed, um mit anderen Clients synchron zu bleiben.
  • iOS: ruft voicewake.set/voicewake.get auf und lauscht auf voicewake.changed, damit die lokale Erkennung von Aktivierungswörtern reaktionsfähig bleibt.
  • Android: gibt die Fähigkeit voiceWake nicht bekannt und verarbeitet keine Aktualisierungen der Aktivierungswörter.

Verwandte Themen

Was this useful?
On this page

On this page