التنبيه الصوتي (كلمات التنبيه العالمية)¶
يتعامل OpenClaw مع كلمات التنبيه كقائمة عالمية واحدة مملوكة لـ Gateway (البوابة).
- لا يوجد كلمات إيقاظ مخصصة لكل عقدة.
- يمكن لأي واجهة مستخدم لعُقدة/تطبيق تعديل القائمة؛ إذ تُحفَظ التغييرات بواسطة Gateway (البوابة) وتُبَثّ للجميع.
- يحتفظ كل جهاز على حدة بمفتاح تمكين/تعطيل التنبيه الصوتي الخاص به (تجربة المستخدم المحلية + اختلافات الأذونات).
التخزين (مضيف Gateway)¶
تُخزَّن كلمات التنبيه على جهاز الـ Gateway في المسار:
~/.openclaw/settings/voicewake.json
الشكل:
{ "triggers": ["openclaw", "claude", "computer"], "updatedAtMs": 1730000000000 }
البروتوكول¶
الأساليب¶
voicewake.get→{ triggers: string[] }voicewake.setمع المعلمات{ triggers: string[] }→{ triggers: string[] }
ملاحظات:
- تُوحَّد المُحفِّزات (يُزال الفراغ الزائد وتُستبعَد القيم الفارغة). القوائم الفارغة تعود إلى الإعدادات الافتراضية.
- تُفرَض حدود للأمان (حدود العدد/الطول).
الأحداث¶
voicewake.changedبحمولة{ triggers: string[] }
مَن يتلقّاها:
- جميع عملاء WebSocket (تطبيق macOS، WebChat، إلخ).
- جميع العُقد المتصلة (iOS/Android)، وكذلك عند اتصال العُقدة كدفع أولي لـ «الحالة الحالية».
سلوك العميل¶
تطبيق macOS¶
- يستخدم القائمة العالمية لضبط مُحفِّزات
VoiceWakeRuntime. - يؤدّي تحرير «كلمات المُحفِّز» في إعدادات التنبيه الصوتي إلى استدعاء
voicewake.setثم يعتمد على البث لإبقاء بقية العملاء متزامنين.
عُقدة iOS¶
- تستخدم القائمة العالمية لاكتشاف مُحفِّزات
VoiceWakeManager. - يؤدّي تحرير كلمات التنبيه في الإعدادات إلى استدعاء
voicewake.set(عبر WebSocket الخاص بـ Gateway) مع الحفاظ على استجابة الكشف المحلي لكلمات التنبيه.
عُقدة Android¶
- توفّر محرّر كلمات التنبيه ضمن الإعدادات.
- تستدعي
voicewake.setعبر WebSocket الخاص بـ Gateway بحيث تتزامن التعديلات في كل مكان.