التنبيه الصوتي (كلمات التنبيه العامة)
يتعامل OpenClaw مع كلمات التنبيه على أنها قائمة عامة واحدة تملكها البوابة.- لا توجد كلمات تنبيه مخصصة لكل عقدة.
- يمكن لأي واجهة عقدة/تطبيق تعديل القائمة؛ ويتم حفظ التغييرات بواسطة البوابة وبثها للجميع.
- يحتفظ macOS وiOS بمفاتيح تبديل محلية مستقلة لحالة تفعيل/تعطيل التنبيه الصوتي (تختلف تجربة الاستخدام والأذونات محليًا).
- يحتفظ Android حاليًا بالتنبيه الصوتي في وضع التعطيل ويستخدم تدفق ميكروفون يدويًا في تبويب Voice.
التخزين (مضيف البوابة)
تُخزَّن كلمات التنبيه على جهاز البوابة في:~/.openclaw/settings/voicewake.json
البروتوكول
الأساليب
voicewake.get←{ triggers: string[] }voicewake.setمع المعلمات{ triggers: string[] }←{ triggers: string[] }
- تتم تسوية المحفزات (إزالة الفراغات، حذف القيم الفارغة). وتعود القوائم الفارغة إلى القيم الافتراضية.
- يتم فرض حدود لأسباب تتعلق بالسلامة (قيود العدد/الطول).
الأحداث
- حمولة
voicewake.changedهي{ triggers: string[] }
- جميع عملاء WebSocket (تطبيق macOS، وWebChat، وغير ذلك)
- جميع العقد المتصلة (iOS/Android)، وكذلك عند اتصال العقدة كدفعة أولية لـ “الحالة الحالية”
سلوك العميل
تطبيق macOS
- يستخدم القائمة العامة لضبط محفزات
VoiceWakeRuntime. - يؤدي تعديل “Trigger words” في إعدادات Voice Wake إلى استدعاء
voicewake.setثم الاعتماد على البث لإبقاء العملاء الآخرين متزامنين.
عقدة iOS
- تستخدم القائمة العامة لكشف المحفزات في
VoiceWakeManager. - يؤدي تعديل Wake Words في Settings إلى استدعاء
voicewake.set(عبر Gateway WS) كما يحافظ أيضًا على استجابة كشف كلمات التنبيه محليًا.
عقدة Android
- التنبيه الصوتي معطل حاليًا في وقت تشغيل/إعدادات Android.
- يستخدم الصوت في Android التقاطًا يدويًا للميكروفون في تبويب Voice بدلًا من محفزات كلمات التنبيه.