Nodes and media

الإيقاظ الصوتي

يعامل OpenClaw كلمات التنبيه كقائمة عامة واحدة يملكها Gateway.

  • لا توجد كلمات تنبيه مخصصة لكل عقدة.
  • يمكن لأي واجهة مستخدم لعقدة/تطبيق تعديل القائمة؛ يحفظ Gateway التغييرات ويبثها إلى الجميع.
  • يحتفظ macOS وiOS بمفاتيح تبديل محلية لتمكين/تعطيل Voice Wake (تختلف تجربة المستخدم المحلية + الأذونات).
  • يحتفظ Android حاليًا بإيقاف Voice Wake ويستخدم تدفق ميكروفون يدويًا في تبويب Voice.

التخزين (مضيف Gateway)

تُخزَّن كلمات التنبيه وقواعد التوجيه في قاعدة بيانات حالة Gateway:

  • ~/.openclaw/state/openclaw.sqlite

الجداول النشطة هي:

  • voicewake_triggers
  • voicewake_routing_config
  • voicewake_routing_routes

ملفات settings/voicewake.json وsettings/voicewake-routing.json القديمة هي مدخلات ترحيل doctor فقط؛ يقرأ وقت التشغيل جداول SQLite ويكتب إليها.

البروتوكول

الطرق

  • voicewake.get{ triggers: string[] }
  • voicewake.set مع المعاملات { triggers: string[] }{ triggers: string[] }

ملاحظات:

  • تُطبَّع المحفزات (إزالة المسافات الزائدة، وإسقاط القيم الفارغة). تعود القوائم الفارغة إلى الإعدادات الافتراضية.
  • تُفرض الحدود للسلامة (حدود العدد/الطول).

طرق التوجيه (المحفز → الهدف)

  • voicewake.routing.get{ config: VoiceWakeRoutingConfig }
  • voicewake.routing.set مع المعاملات { config: VoiceWakeRoutingConfig }{ config: VoiceWakeRoutingConfig }

شكل VoiceWakeRoutingConfig:

json
{  "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، وما إلى ذلك)
  • جميع العقد المتصلة (iOS/Android)، وكذلك عند اتصال العقدة كدفعة أولية من "الحالة الحالية".

سلوك العميل

تطبيق macOS

  • يستخدم القائمة العامة للتحكم في محفزات VoiceWakeRuntime.
  • يؤدي تعديل "كلمات المحفز" في إعدادات Voice Wake إلى استدعاء voicewake.set ثم الاعتماد على البث لإبقاء العملاء الآخرين متزامنين.

عقدة iOS

  • تستخدم القائمة العامة لاكتشاف محفزات VoiceWakeManager.
  • يؤدي تعديل كلمات التنبيه في الإعدادات إلى استدعاء voicewake.set (عبر Gateway WS) ويحافظ أيضًا على استجابة اكتشاف كلمات التنبيه المحلية.

عقدة Android

  • Voice Wake معطل حاليًا في وقت تشغيل/إعدادات Android.
  • يستخدم صوت Android التقاط الميكروفون اليدوي في تبويب Voice بدلًا من محفزات كلمات التنبيه.

ذات صلة

Was this useful?
On this page

On this page