Plugin guides
Plugin السجل اليومي
يحوّل Plugin Logbook نشاط الشاشة إلى سجل عمل تلقائي. فهو يلتقط لقطات دورية للشاشة من Node مقترن، ويلخّصها في ملاحظات ذات طوابع زمنية، وينشئ بطاقات خط زمني في واجهة التحكم. ويمكنه أيضًا إنشاء ملاحظات الاجتماع اليومي والإجابة عن أسئلة تتعلق بيوم متتبَّع.
تظل الحالة المملوكة لـ OpenClaw على Gateway ضمن <state-dir>/logbook/، لكن
معالجة النماذج ليست محلية بالضرورة. تُرسل لقطات الشاشة المأخوذة كعينات إلى
مسار الرؤية المُعدّ؛ وتُرسل الملاحظات ونص الخط الزمني إلى نموذج الوكيل
الافتراضي. استخدم مسارات نماذج محلية للمرحلتين إذا كان يجب أن يبقى محتوى
الشاشة ونص النشاط المشتق على الجهاز.
يأتي Logbook مضمّنًا ومعطّلًا افتراضيًا. يؤدي تمكين Plugin إلى تفعيل التقاط
الشاشة في Gateway لأن القيمة الافتراضية لـ captureEnabled هي true.
قبل البدء
تحتاج إلى:
- Node متصل يوفّر
screen.snapshotأوlogbook.snapshot. يحتاج Node الخاص بتطبيق macOS إلى إذن Screen Recording. ويحصل مضيف Node لنظام macOS دون واجهة رسومية (openclaw node host run) على الأمرlogbook.snapshotالذي يوفّره Plugin والمدعوم بأداة النظامscreencapture. - تمكين Plugin Codex المضمّن ومصادقته. يوفّر Codex حاليًا عقد استخراج الصور
المنظّم الذي يتطلبه Logbook. سجّل الدخول باستخدام
openclaw models auth login --provider openai؛ وراجع بيئة تشغيل Codex للاطلاع على مسارات مصادقة أخرى. - نموذج وكيل افتراضي يعمل. يستخدمه Logbook لتركيب البطاقات وملاحظات الاجتماع اليومي وأسئلة وأجوبة اليوم بعد مرحلة الرؤية.
البدء السريع
مكّن Pluginَي Codex وLogbook:
openclaw plugins enable codexopenclaw plugins enable logbookاضبط نموذج رؤية صريحًا لضمان بدء تشغيل حتمي:
{ plugins: { entries: { codex: { enabled: true, }, logbook: { enabled: true, config: { visionModel: "codex/gpt-5.6-sol", }, }, }, },}إذا كنت تستخدم plugins.allow، فأدرج كلًا من codex وlogbook. أعد تشغيل
Gateway بعد تغيير إعدادات Plugin، ثم افحص التسجيلات وافتح لوحة المعلومات:
openclaw gateway restartopenclaw plugins inspect logbook --runtime --jsonopenclaw nodes status --connectedopenclaw nodes describe --node <idOrNameOrIp>openclaw dashboardيجب أن يتضمن وصف Node الأمر screen.snapshot أو logbook.snapshot.
لا تعلن Nodes دون واجهة رسومية عن logbook.snapshot إلا بعد تنشيط Plugin.
راجع استكشاف أخطاء Node وإصلاحها إذا كان الأمر
مفقودًا.
لا تظهر علامة تبويب Logbook إلا عندما يكون Plugin ممكّنًا وتستخدم جلسة واجهة
التحكم النطاق operator.write. ينبغي أن يعرض صف الحالة جارٍ الالتقاط دون
خطأ. تظهر بطاقة خط زمني عند إغلاق نافذة التحليل، أو يمكنك تحديد
حلّل الآن بعد التقاط نشاط.
آلية العمل
- الالتقاط: كل
captureIntervalSeconds(الافتراضي 30 ثانية)، يستدعي Logbook أمر الالتقاط الخاص بـ Node المحدد ويخزّن إطار JPEG بعد تغيير حجمه. تُعلَّم الإطارات المتطابقة المتتالية على أنها خمول وتُستبعد من التحليل. - الملاحظة: بعد انقضاء نافذة تحليل (الافتراضي 15 دقيقة)، يأخذ Plugin عينات تصل إلى 16 إطارًا نشطًا ويرسلها إلى نموذج الرؤية، الذي يعيد ملاحظات نشاط ذات طوابع زمنية ("VS Code: تعديل store.ts وإصلاح خطأ في النوع"). كما تؤدي فجوة التقاط أطول من دقيقتين أو حلول منتصف الليل المحلي إلى إغلاق النافذة الحالية.
- التركيب: تُراجع الملاحظات مع بطاقات آخر 45 دقيقة الموجودة لتكوين بطاقات خط زمني (مدة كل منها 10-60 دقيقة) تتضمن عنوانًا وملخصًا وفئة والتطبيق الرئيسي وأي مشتتات موجزة.
- التنقية: تُحذف الإطارات الأقدم من
retentionDays(الافتراضي 14). ويُحتفظ بالبطاقات والملاحظات والاجتماعات اليومية المخزنة مؤقتًا.
تستخدم حدود الأيام وساعات الخط الزمني المنطقة الزمنية المحلية لـ Gateway،
وليس المنطقة الزمنية للمتصفح. توجد الإطارات وقاعدة بيانات الخط الزمني
SQLite ضمن <state-dir>/logbook/.
تدفق النماذج والبيانات
يستخدم Logbook مسارين منفصلين للنماذج:
| المرحلة | البيانات المرسلة | مسار النموذج |
|---|---|---|
| الملاحظة | ما يصل إلى 16 إطار JPEG مأخوذًا كعينة مع أوقات التقاطها | visionModel، أو إدخال Codex متوافق مستعار من tools.media |
| تركيب البطاقات | الملاحظات ذات الطوابع الزمنية وبطاقات الخط الزمني الحديثة | نموذج الوكيل الافتراضي عبر وقت تشغيل LLM الخاص بـ Plugin |
| إنشاء الاجتماع اليومي | بطاقات اليوم المحدد واليوم السابق | نموذج الوكيل الافتراضي عبر وقت تشغيل LLM الخاص بـ Plugin |
| السؤال عن يومك | السؤال وبطاقات اليوم المحدد والملاحظات الحديثة | نموذج الوكيل الافتراضي عبر وقت تشغيل LLM الخاص بـ Plugin |
لا تُرسل قاعدة بيانات SQLite الكاملة إلى أي من النموذجين. لا تُرسل لقطات الشاشة الخام إلا إلى مرحلة الملاحظة؛ بينما تتلقى عمليات تركيب البطاقات وإنشاء الاجتماع اليومي والأسئلة والأجوبة نصًا مشتقًا.
الإعداد
{ plugins: { entries: { codex: { enabled: true, }, logbook: { enabled: true, config: { captureEnabled: true, captureIntervalSeconds: 30, analysisIntervalMinutes: 15, nodeId: "my-mac", screenIndex: 0, maxWidth: 1440, visionModel: "codex/gpt-5.6-sol", retentionDays: 14, }, }, }, },}جميع مفاتيح إعداد Logbook اختيارية. تُقرَّب القيم الرقمية إلى أعداد صحيحة وتُقيَّد بالنطاق المدعوم.
| المفتاح | القيمة الافتراضية | النطاق أو القيم | السلوك |
|---|---|---|---|
captureEnabled |
true |
قيمة منطقية | مفتاح رئيسي دائم للقطات الجديدة؛ يظل الخط الزمني متاحًا عندما تكون القيمة false |
captureIntervalSeconds |
30 |
5-600 |
التأخير بين محاولات الالتقاط |
analysisIntervalMinutes |
15 |
3-120 |
نافذة الملاحظة المستهدفة؛ قد تُغلقها الفجوات ومنتصف الليل مبكرًا |
nodeId |
غير مضبوط | معرّف Node أو اسم العرض | يثبّت الالتقاط على Node متصل واحد؛ المطابقة غير حساسة لحالة الأحرف |
screenIndex |
0 |
0-16 |
فهرس الشاشة الذي يبدأ من الصفر |
maxWidth |
1440 |
480-3840 |
الحد الأقصى المطلوب لحجم الالتقاط؛ يطبّقه macOS دون واجهة رسومية على البعد الأكبر |
visionModel |
غير مضبوط | provider/model |
مسار منظّم صريح؛ توقف المراجع المشوّهة التحليل مؤقتًا، وتتسبب الموفّرات غير المدعومة في فشل الدفعات |
retentionDays |
14 |
1-365 |
يحذف الإطارات القديمة؛ وتبقى البطاقات والملاحظات والاجتماعات اليومية |
من دون nodeId، يفضّل Logbook Node تطبيق متصلًا يوفّر
screen.snapshot، ثم يلجأ إلى Node دون واجهة رسومية يوفّر
logbook.snapshot. في إعداد غير مثبّت، ينتقل Node الذي فشل إلى ما بعد
Nodes المؤهلة الأخرى في ترتيب التناوب. مفتاح الإيقاف المؤقت في لوحة
المعلومات خاص بالجلسة فقط ويُعاد ضبطه عند إعادة تشغيل Gateway؛ استخدم
captureEnabled: false لإيقاف دائم.
اختيار نموذج الرؤية
يحدّد Logbook نموذج الملاحظة بالترتيب التالي:
plugins.entries.logbook.config.visionModel- أول إدخال Codex يدعم الصور ضمن
tools.media.image.models - أول إدخال Codex يدعم الصور ضمن
tools.media.models
يتم تخطي موفّري الوسائط الآخرين لأنهم لا يوفّرون حاليًا عقد الاستخراج المنظّم
الذي يتطلبه Logbook. يؤدي ضبط tools.media.image.enabled: false إلى تعطيل
إعدادات الوسائط الافتراضية المستعارة، لكن يظل visionModel الصريح في
Logbook ساريًا.
علامة تبويب لوحة المعلومات
- الخط الزمني: بطاقات قابلة للتوسيع لكل نشاط مع ألوان الفئات والتطبيق الرئيسي وشرائح المشتتات وإطار رئيسي من لقطة الشاشة.
- نظرة سريعة على اليوم: نسبة التركيز وتوزيع الفئات وأبرز التطبيقات.
- الاجتماع اليومي: يحوّل الأمس واليوم إلى تحديث جاهز للصق.
- اسأل عن يومك: أسئلة بلغة طبيعية تُجاب استنادًا إلى الخط الزمني المتتبَّع ("متى راجعت طلب سحب Gateway؟").
- حلّل الآن: يغلق نافذة الالتقاط الحالية فورًا بدلًا من انتظار فاصل التحليل.
أساليب Gateway
يسجّل Logbook أساليب RPC التالية في Gateway:
| الأسلوب | المعاملات | النطاق | النتيجة |
|---|---|---|---|
logbook.status |
لا شيء | operator.read |
حالة الالتقاط والتحليل والنموذج وNode ويوم Gateway والمنطقة الزمنية لـ Gateway |
logbook.days |
لا شيء | operator.read |
الأيام مع أعداد بطاقات الخط الزمني وحدود أوقات البطاقات |
logbook.timeline |
{ day?: "YYYY-MM-DD" } |
operator.read |
البطاقات المشتقة وإحصاءات اليوم؛ يستخدم يوم Gateway الحالي افتراضيًا |
logbook.frames |
{ startMs, endMs } |
operator.write |
بيانات الإطارات الوصفية ضمن نطاق أجزاء الألف من الثانية منذ الحقبة المطلوب |
logbook.frame |
{ frameId } |
operator.write |
إطار JPEG خام واحد بترميز base64 |
logbook.standup |
{ day?, refresh? } |
operator.write |
نص اجتماع يومي مخزّن مؤقتًا أو مُعاد إنشاؤه ليوم |
logbook.ask |
{ day?, question } |
operator.write |
إجابة تستند إلى الخط الزمني ليوم |
logbook.capture.set |
{ paused } |
operator.write |
حالة الإيقاف المؤقت الخاصة بالجلسة والحالة المحدّثة |
logbook.analyze.now |
لا شيء | operator.write |
يبدأ التحليل المعلّق، أو يعيد سبب تعذّر بدئه |
تعيد أساليب القراءة حالة التشغيل أو نصًا مشتقًا. تتطلب وحدات بكسل لقطات
الشاشة الخام والإجراءات التي تنفق على النماذج وتغييرات وقت التشغيل النطاق
operator.write. وتتطلب علامة تبويب واجهة التحكم أيضًا operator.write
لأنها تعرض تلك الإجراءات ومعاينات الإطارات الخام؛ ومع ذلك، يمكن لعميل
للقراءة فقط استدعاء أساليب النص المشتق مباشرة.
ملاحظات الخصوصية
- قد تحتوي اللقطات على أي شيء ظاهر على الشاشة، بما في ذلك الأسرار. لا تغادر الإطارات الجهاز مطلقًا إلا بوصفها مدخلات مأخوذة كعينات لنموذج الملاحظة المُعدّ.
- قد تغادر الملاحظات والبطاقات الحديثة والأسئلة الجهاز عبر نموذج الوكيل الافتراضي أثناء تركيب البطاقات أو إنشاء الاجتماع اليومي أو الأسئلة والأجوبة. طبّق سياسة معالجة البيانات الخاصة بالموفّر على مساري النموذج.
- استخدم مسارات محلية لكل من نموذج الملاحظة المنظّم ونموذج الوكيل الافتراضي عندما تحتاج إلى مسار معالجة محلي بالكامل.
- تُكتب الإطارات وقاعدة بيانات الخط الزمني والالتقاطات المؤقتة بأذونات ملفات للمالك فقط.
- تُعد إضافة
screen.snapshotإلىgateway.nodes.denyCommandsمفتاح الإيقاف القاطع لالتقاط الشاشة: فهي تحظر التقاط Node الخاص بالتطبيق وأمرlogbook.snapshotالخاص بـ Logbook على حد سواء. - يؤدي ضبط
tools.media.image.enabled: falseأيضًا إلى منع Logbook من استعارة نماذج صور الوسائط للتحليل؛ وعندئذٍ لا يُستخدم إلاvisionModelصريح في إعداد Plugin.
استكشاف الأخطاء وإصلاحها
علامة تبويب Logbook مفقودة
تحقق من الشروط الثلاثة جميعًا:
- تتضمن نتيجة
openclaw plugins list --enabledالقيمةlogbook. - أُعيد تشغيل Gateway بعد تغيير Plugin أو قائمة السماح.
- يتضمن اتصال واجهة التحكم النطاق
operator.write؛ لا تتلقى جلسات القراءة فقط واصف علامة التبويب التفاعلية.
إذا تم تعيين plugins.allow، فيجب أن يتضمن كلاً من logbook وcodex للإعداد
الموصى به.
يُبلغ الالتقاط عن خطأ
openclaw nodes status --connectedopenclaw nodes describe --node <idOrNameOrIp>openclaw logs --follow- تأكد من أن Node يوفّر
screen.snapshotأوlogbook.snapshot. - امنح إذن تسجيل الشاشة على جهاز Mac المستخدم للالتقاط.
- إذا تم إعداد
nodeId، فتأكد من مطابقته لمعرّف Node أو اسم العرض. - تحقق من أن
gateway.nodes.denyCommandsلا يحتوي علىscreen.snapshot.
بعد ثلاث حالات فشل متتالية، يزيد Logbook فترة الانتظار لعشر دورات التقاط ثم يعيد المحاولة. ويمكن لإعداد غير مثبّت على Node محددة الانتقال إلى Node مؤهلة أخرى.
تنجح عمليات الالتقاط ولكن لا تظهر أي بطاقات
- تعني حالة النموذج مفقود أنه لم يتم العثور على مسار رؤية منظّم متوافق.
فعّل Plugin Codex وصادِق عليه، أو عيّن
visionModelصريحًا وصالحًا. تظل الإطارات الملتقطة في حالة انتظار أثناء غياب النموذج، ويمكن تحليلها بعد إصلاح الإعداد. - انتظر مدة
analysisIntervalMinutes، أو حدّد حلّل الآن بعد التقاط النشاط. - تُعد الإطارات المتطابقة المتتالية دليلاً على الخمول ولا تدخل في دُفعات التحليل. غيّر الشاشة الظاهرة قبل الاختبار.
- إذا أظهرت أحدث دفعة خطأً، فأصلح مشكلة النموذج أو المصادقة وحدّد حلّل الآن. لا تُعاد محاولة الدُفعات الفاشلة إلا عند تنفيذ هذا الإجراء الصريح لتجنب الإنفاق المتكرر على النموذج.