يُعد «الحضور» في OpenClaw عرضًا خفيفًا يعتمد على أفضل جهد لكل من:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- Gateway نفسه، و
- العملاء المتصلين بـ Gateway (تطبيق mac، وWebChat، وCLI، وما إلى ذلك)
حقول الحضور (ما يظهر)
إدخالات الحضور هي كائنات مهيكلة تحتوي على حقول مثل:instanceId(اختياري لكنه موصى به بشدة): هوية عميل مستقرة (عادةًconnect.client.instanceId)host: اسم مضيف مناسب للبشرip: عنوان IP وفق أفضل جهدversion: سلسلة إصدار العميلdeviceFamily/modelIdentifier: تلميحات عن العتادmode:ui،webchat،cli،backend،probe،test،node، …lastInputSeconds: “الثواني منذ آخر إدخال من المستخدم” (إن كانت معروفة)reason:self،connect،node-connected،periodic، …ts: طابع وقت آخر تحديث (بالملي ثانية منذ الحقبة)
المنتجون (من أين يأتي الحضور)
تُنتَج إدخالات الحضور من مصادر متعددة ويتم دمجها.1) إدخال Gateway الذاتي
يزرع Gateway دائمًا إدخالًا “ذاتيًا” عند بدء التشغيل حتى تعرض واجهات المستخدم مضيف Gateway حتى قبل اتصال أي عملاء.2) اتصال WebSocket
يبدأ كل عميل WS بطلبconnect. عند نجاح المصافحة، يُدرج Gateway إدخال حضور
أو يحدّثه لذلك الاتصال.
لماذا لا تظهر أوامر CLI المنفردة
غالبًا ما يتصل CLI لأوامر قصيرة ومنفردة. لتجنب إغراق قائمة المثيلات، لا يتم تحويلclient.mode === "cli" إلى إدخال حضور.
3) إشارات system-event
يمكن للعملاء إرسال إشارات دورية أغنى عبر طريقة system-event. يستخدم تطبيق mac
ذلك للإبلاغ عن اسم المضيف، وIP، وlastInputSeconds.
4) اتصالات Node (الدور: node)
عندما تتصل عقدة عبر WebSocket الخاص بـ Gateway معrole: node، يُدرج Gateway
إدخال حضور لتلك العقدة أو يحدّثه (بنفس تدفق عملاء WS الآخرين).
قواعد الدمج وإزالة التكرار (لماذا يهم instanceId)
تُخزَّن إدخالات الحضور في خريطة واحدة داخل الذاكرة:
- تُفهرس الإدخالات بواسطة مفتاح حضور.
- أفضل مفتاح هو
instanceIdمستقر (منconnect.client.instanceId) يصمد عبر عمليات إعادة التشغيل. - المفاتيح غير حساسة لحالة الأحرف.
instanceId مستقر، فقد يظهر كصف
مكرر.
مدة البقاء والحجم المحدود
الحضور مؤقت عمدًا:- مدة البقاء: تُزال الإدخالات الأقدم من 5 دقائق
- الحد الأقصى للإدخالات: 200 (تُسقط الأقدم أولًا)
تنبيه بخصوص الاتصال البعيد/النفق (عناوين IP الخاصة بـ local loopback)
عندما يتصل عميل عبر نفق SSH أو إعادة توجيه منفذ محلي، قد يرى Gateway العنوان البعيد على أنه127.0.0.1. لتجنب استبدال عنوان IP جيد يبلّغ عنه العميل،
يتم تجاهل العناوين البعيدة الخاصة بـ local loopback.
المستهلكون
علامة تبويب المثيلات في macOS
يعرض تطبيق macOS ناتجsystem-presence ويطبق مؤشر حالة صغيرًا
(نشط/خامل/قديم) بناءً على عمر آخر تحديث.
نصائح تصحيح الأخطاء
- لرؤية القائمة الخام، استدعِ
system-presenceمقابل Gateway. - إذا رأيت تكرارات:
- تأكد من أن العملاء يرسلون
client.instanceIdمستقرًا في المصافحة - تأكد من أن الإشارات الدورية تستخدم نفس
instanceId - تحقق مما إذا كان الإدخال المشتق من الاتصال يفتقد
instanceId(التكرارات متوقعة)
- تأكد من أن العملاء يرسلون
ذو صلة
مؤشرات الكتابة
متى تُرسل مؤشرات الكتابة وكيفية ضبطها.
البث والتقسيم إلى مقاطع
البث الصادر، والتقسيم إلى مقاطع، والتنسيق لكل قناة.
بنية Gateway
مكونات Gateway وبروتوكول WebSocket الذي يقود تحديثات الحضور.
بروتوكول Gateway
بروتوكول النقل لـ
connect وsystem-event وsystem-presence.