- macOS: مفتاح تبديل محلي لتمكين/تعطيل التنبيه الصوتي. يتطلب macOS 26+؛ راجع التنبيه الصوتي (macOS) للاطلاع على تفاصيل وقت التشغيل/PTT.
- iOS: مفتاح تبديل محلي لتمكين/تعطيل التنبيه الصوتي في Settings.
- Android: مفتاح تبديل محلي لتمكين/تعطيل التنبيه الصوتي ومحرر لكلمات التنبيه في Settings → Voice. يتطلب التعرّف على الكلام على الجهاز في 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.set الإدخال: يزيل المسافات البيضاء من الطرفين، ويحذف الإدخالات الفارغة، ويحتفظ بحد أقصى يبلغ 32 مشغّلًا، ويقتطع كل مشغّل إلى 64 وحدة ترميز UTF-16 من دون تقسيم أزواج البدائل. إذا كانت النتيجة فارغة، تُستخدم الإعدادات الافتراضية المضمّنة (openclaw وclaude وcomputer).
التوجيه (من المشغّل إلى الهدف)
target للتوجيه واحدًا فقط مما يلي:
{ "mode": "current" }{ "agentId": "main" }{ "sessionKey": "agent:main:main" }
"Hey, Bot!!" و"hey bot" يتطابقان ويُعدّان مكررين) — وهذا تطبيع أكثر صرامة من إزالة المسافات من الطرفين فقط المستخدمة لقائمة المشغّلات العامة أعلاه.
الأحداث
يُبث كلاهما إلى كل عميل WebSocket ذي نطاق قراءة (تطبيق macOS وWebChat وما شابه) وإلى كل عقدة متصلة. وتتلقى العقدة أيضًا كليهما على هيئة دفعة لقطة أولية فور اتصالها.
سلوك العميل
- macOS: يستدعي
voicewake.set/voicewake.getويستمع إلىvoicewake.changedليظل متزامنًا مع العملاء الآخرين. - iOS: يستدعي
voicewake.set/voicewake.getويستمع إلىvoicewake.changedلإبقاء اكتشاف كلمات التنبيه محليًا سريع الاستجابة. - Android: يستدعي
voicewake.set/voicewake.get، ويستمع إلىvoicewake.changed، ويعلن عنvoiceWakeأثناء تمكينه. يظل التعرّف على الجهاز وفي الواجهة فقط؛ ويتوقف مؤقتًا عندما يكون الصوت مستخدمًا بواسطة Talk أو الإملاء اليدوي أو التقاط ملاحظة صوتية أو نطق الرسائل.