- macOS: ローカルの音声ウェイク有効/無効切り替え。macOS 26+ が必要です。ランタイム/PTT の詳細は 音声ウェイク (macOS) を参照してください。
- iOS: 設定内のローカル音声ウェイク有効/無効切り替え。
- Android: 音声ウェイクはランタイムで強制的に無効化されます。音声タブはウェイクワードトリガーの代わりに手動マイクキャプチャを使用します。
ストレージ
ウェイクワードとルーティングルールは Gateway 状態データベースに保存されます。デフォルトは~/.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 は、次のうち正確に 1 つをサポートします。
{ "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)と Gateway 同期コードは存在しますが、アプリは起動時にモードをOffに強制します。音声ウェイクは現在 Android 設定から利用できません。