- macOS:本機 Voice Wake 啟用/停用切換。需要 macOS 26+;如需執行階段/PTT 詳細資訊,請參閱 Voice wake (macOS)。
- iOS:設定中的本機 Voice Wake 啟用/停用切換。
- Android:Voice Wake 會在執行階段被強制停用。Voice 分頁使用手動麥克風擷取,而不是喚醒詞觸發。
儲存
喚醒詞和路由規則位於閘道狀態資料庫,預設為~/.openclaw/state/openclaw.sqlite(可使用 OPENCLAW_STATE_DIR 覆寫),資料表為 voicewake_triggers、voicewake_routing_config、voicewake_routing_routes。舊版 settings/voicewake.json 和 settings/voicewake-routing.json 只是 openclaw doctor --fix 的遷移輸入——執行階段絕不會讀取它們。
通訊協定
觸發清單
| 方法 | 參數 | 結果 |
|---|---|---|
voicewake.get | 無 | { triggers: string[] } |
voicewake.set | { triggers: string[] } | { triggers: string[] } |
voicewake.set 會正規化輸入:修剪空白、丟棄空白項目、最多保留 32 個觸發詞,並將每個觸發詞截斷至 64 個字元。空白結果會退回內建預設值(openclaw、claude、computer)。
路由(觸發詞到目標)
| 方法 | 參數 | 結果 |
|---|---|---|
voicewake.routing.get | 無 | { config: VoiceWakeRoutingConfig } |
voicewake.routing.set | { config: VoiceWakeRoutingConfig } | { config: VoiceWakeRoutingConfig } |
target 僅支援以下其中一種:
{ "mode": "current" }{ "agentId": "main" }{ "sessionKey": "agent:main:main" }
"Hey, Bot!!" 和 "hey bot" 會相符並計為重複)——這比上述全域觸發清單使用的純修剪更嚴格。
事件
| 事件 | 酬載 |
|---|---|
voicewake.changed | { triggers: string[] } |
voicewake.routing.changed | { config: VoiceWakeRoutingConfig } |
用戶端行為
- macOS:呼叫
voicewake.set/voicewake.get,並監聽voicewake.changed,以與其他用戶端保持同步。 - iOS:呼叫
voicewake.set/voicewake.get,並監聽voicewake.changed,讓本機喚醒詞偵測保持回應靈敏。 - Android:
VoiceWakeMode(Off/Foreground/Always)和閘道同步程式碼都存在,但應用程式會在啟動時將模式強制設為Off——目前無法從 Android 設定使用 Voice Wake。