Nodes and media
การปลุกด้วยเสียง
OpenClaw ถือว่า คำปลุกเป็นรายการส่วนกลางรายการเดียว ที่ Gateway เป็นเจ้าของ
- ไม่มีคำปลุกที่กำหนดเองต่อ Node
- UI ของ Node/แอปใดก็ได้สามารถแก้ไข รายการได้ การเปลี่ยนแปลงจะถูกบันทึกโดย Gateway และกระจายให้ทุกคน
- macOS และ iOS มีสวิตช์ เปิด/ปิดการปลุกด้วยเสียง แบบภายในเครื่อง (UX ภายในเครื่องและสิทธิ์แตกต่างกัน)
- Android ปัจจุบันปิดการปลุกด้วยเสียงไว้ และใช้โฟลว์ไมค์แบบแมนนวลในแท็บเสียง
ที่เก็บข้อมูล (โฮสต์ Gateway)
คำปลุกจะถูกเก็บไว้บนเครื่อง Gateway ที่:
~/.openclaw/settings/voicewake.json
รูปแบบ:
{ "triggers": ["openclaw", "claude", "computer"], "updatedAtMs": 1730000000000 }
โปรโตคอล
เมธอด
voicewake.get→{ triggers: string[] }voicewake.setพร้อมพารามิเตอร์{ triggers: string[] }→{ triggers: string[] }
หมายเหตุ:
- ตัวกระตุ้นจะถูกทำให้เป็นมาตรฐาน (ตัดช่องว่างหัวท้าย และตัดค่าว่างออก) รายการว่างจะย้อนกลับไปใช้ค่าเริ่มต้น
- มีการบังคับใช้ขีดจำกัดเพื่อความปลอดภัย (เพดานจำนวน/ความยาว)
เมธอดการกำหนดเส้นทาง (ตัวกระตุ้น → เป้าหมาย)
voicewake.routing.get→{ config: VoiceWakeRoutingConfig }voicewake.routing.setพร้อมพารามิเตอร์{ config: VoiceWakeRoutingConfig }→{ config: VoiceWakeRoutingConfig }
รูปแบบ VoiceWakeRoutingConfig:
{
"version": 1,
"defaultTarget": { "mode": "current" },
"routes": [{ "trigger": "robot wake", "target": { "sessionKey": "agent:main:main" } }],
"updatedAtMs": 1730000000000
}
เป้าหมายของเส้นทางรองรับหนึ่งรายการเท่านั้นจาก:
{ "mode": "current" }{ "agentId": "main" }{ "sessionKey": "agent:main:main" }
เหตุการณ์
- เพย์โหลด
voicewake.changedคือ{ triggers: string[] } - เพย์โหลด
voicewake.routing.changedคือ{ config: VoiceWakeRoutingConfig }
ผู้ที่ได้รับ:
- ไคลเอนต์ WebSocket ทั้งหมด (แอป macOS, WebChat ฯลฯ)
- Node ที่เชื่อมต่อทั้งหมด (iOS/Android) และยังได้รับการพุช "สถานะปัจจุบัน" ครั้งแรกเมื่อ Node เชื่อมต่อด้วย
พฤติกรรมของไคลเอนต์
แอป macOS
- ใช้รายการส่วนกลางเพื่อควบคุมตัวกระตุ้นของ
VoiceWakeRuntime - การแก้ไข "คำกระตุ้น" ในการตั้งค่าการปลุกด้วยเสียงจะเรียก
voicewake.setแล้วอาศัยการกระจายเพื่อให้ไคลเอนต์อื่นซิงค์กัน
Node iOS
- ใช้รายการส่วนกลางสำหรับการตรวจจับตัวกระตุ้นของ
VoiceWakeManager - การแก้ไขคำปลุกในการตั้งค่าจะเรียก
voicewake.set(ผ่าน Gateway WS) และยังทำให้การตรวจจับคำปลุกภายในเครื่องตอบสนองได้ต่อเนื่อง
Node Android
- ปัจจุบันการปลุกด้วยเสียงถูกปิดใช้งานในรันไทม์/การตั้งค่าของ Android
- เสียงบน Android ใช้การบันทึกไมค์แบบแมนนวลในแท็บเสียงแทนตัวกระตุ้นจากคำปลุก