Voice Wake (Wake Words Toàn Cục)

OpenClaw xử lý wake words như một danh sách toàn cục duy nhất do Gateway quản lý.

  • Không có wake words tùy chỉnh riêng cho từng node.
  • Bất kỳ node/app UI nào cũng có thể chỉnh sửa danh sách; các thay đổi được Gateway lưu lại và broadcast đến tất cả mọi người.
  • Mỗi thiết bị vẫn giữ nút bật/tắt Voice Wake enabled/disabled riêng (UX cục bộ + quyền khác nhau).

Lưu trữ (Gateway host)

Wake words được lưu trên máy gateway tại:

  • ~/.openclaw/settings/voicewake.json

Cấu trúc:

{ "triggers": ["openclaw", "claude", "computer"], "updatedAtMs": 1730000000000 }

Protocol

Methods

  • voicewake.get{ triggers: string[] }
  • voicewake.set với params { triggers: string[] }{ triggers: string[] }

Lưu ý:

  • Triggers được chuẩn hóa (trim, bỏ các giá trị rỗng). Danh sách rỗng sẽ fallback về giá trị mặc định.
  • Các giới hạn được áp dụng để đảm bảo an toàn (giới hạn số lượng/độ dài).

Events

  • voicewake.changed payload { triggers: string[] }

Ai nhận được event này:

  • Tất cả WebSocket clients (macOS app, WebChat, v.v.)
  • Tất cả các node đã kết nối (iOS/Android), và cả khi node connect như một “current state” push ban đầu.

Hành vi của Client

macOS app

  • Sử dụng danh sách toàn cục để kiểm soát triggers của VoiceWakeRuntime.
  • Chỉnh sửa “Trigger words” trong Voice Wake settings sẽ gọi voicewake.set và sau đó dựa vào broadcast để giữ các client khác đồng bộ.

iOS node

  • Sử dụng danh sách toàn cục cho việc phát hiện trigger của VoiceWakeManager.
  • Chỉnh sửa Wake Words trong Settings sẽ gọi voicewake.set (qua Gateway WS) và cũng giữ cho việc phát hiện wake-word cục bộ hoạt động mượt mà.

Android node

  • Hiển thị trình chỉnh sửa Wake Words trong Settings.
  • Gọi voicewake.set qua Gateway WS để các chỉnh sửa đồng bộ khắp nơi.