Nodes and media
Bangun suara
OpenClaw memperlakukan kata bangun sebagai satu daftar global yang dimiliki oleh Gateway.
- Tidak ada kata bangun kustom per node.
- UI node/aplikasi mana pun dapat mengedit daftar tersebut; perubahan dipersistenkan oleh Gateway dan disiarkan ke semua orang.
- macOS dan iOS mempertahankan toggle lokal Bangun Suara aktif/nonaktif (UX lokal + izin berbeda).
- Android saat ini membiarkan Bangun Suara nonaktif dan menggunakan alur mikrofon manual di tab Suara.
Penyimpanan (host Gateway)
Kata bangun dan aturan perutean disimpan di database status gateway:
~/.openclaw/state/openclaw.sqlite
Tabel yang aktif adalah:
voicewake_triggersvoicewake_routing_configvoicewake_routing_routes
File legacy settings/voicewake.json dan settings/voicewake-routing.json hanya merupakan input migrasi doctor; runtime membaca dan menulis tabel SQLite.
Protokol
Metode
voicewake.get→{ triggers: string[] }voicewake.setdengan parameter{ triggers: string[] }→{ triggers: string[] }
Catatan:
- Pemicu dinormalisasi (dipangkas, nilai kosong dibuang). Daftar kosong kembali ke default.
- Batas diterapkan demi keamanan (batas jumlah/panjang).
Metode perutean (pemicu → target)
voicewake.routing.get→{ config: VoiceWakeRoutingConfig }voicewake.routing.setdengan parameter{ config: VoiceWakeRoutingConfig }→{ config: VoiceWakeRoutingConfig }
Bentuk VoiceWakeRoutingConfig:
{ "version": 1, "defaultTarget": { "mode": "current" }, "routes": [{ "trigger": "robot wake", "target": { "sessionKey": "agent:main:main" } }], "updatedAtMs": 1730000000000}Target rute mendukung tepat salah satu dari:
{ "mode": "current" }{ "agentId": "main" }{ "sessionKey": "agent:main:main" }
Peristiwa
- payload
voicewake.changed{ triggers: string[] } - payload
voicewake.routing.changed{ config: VoiceWakeRoutingConfig }
Yang menerimanya:
- Semua klien WebSocket (aplikasi macOS, WebChat, dll.)
- Semua node yang terhubung (iOS/Android), dan juga saat node terhubung sebagai push awal "status saat ini".
Perilaku klien
Aplikasi macOS
- Menggunakan daftar global untuk membatasi pemicu
VoiceWakeRuntime. - Mengedit "Kata pemicu" di pengaturan Bangun Suara memanggil
voicewake.set, lalu mengandalkan siaran agar klien lain tetap sinkron.
Node iOS
- Menggunakan daftar global untuk deteksi pemicu
VoiceWakeManager. - Mengedit Kata Bangun di Pengaturan memanggil
voicewake.set(melalui Gateway WS) dan juga menjaga deteksi kata bangun lokal tetap responsif.
Node Android
- Bangun Suara saat ini dinonaktifkan di runtime/Pengaturan Android.
- Suara Android menggunakan penangkapan mikrofon manual di tab Suara, bukan pemicu kata bangun.
Terkait
Was this useful?