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:

bash
openclaw plugins enable codexopenclaw plugins enable logbook

اضبط نموذج رؤية صريحًا لضمان بدء تشغيل حتمي:

json5
{  plugins: {    entries: {      codex: {        enabled: true,      },      logbook: {        enabled: true,        config: {          visionModel: "codex/gpt-5.6-sol",        },      },    },  },}

إذا كنت تستخدم plugins.allow، فأدرج كلًا من codex وlogbook. أعد تشغيل Gateway بعد تغيير إعدادات Plugin، ثم افحص التسجيلات وافتح لوحة المعلومات:

bash
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. ينبغي أن يعرض صف الحالة جارٍ الالتقاط دون خطأ. تظهر بطاقة خط زمني عند إغلاق نافذة التحليل، أو يمكنك تحديد حلّل الآن بعد التقاط نشاط.

آلية العمل

  1. الالتقاط: كل captureIntervalSeconds (الافتراضي 30 ثانية)، يستدعي Logbook أمر الالتقاط الخاص بـ Node المحدد ويخزّن إطار JPEG بعد تغيير حجمه. تُعلَّم الإطارات المتطابقة المتتالية على أنها خمول وتُستبعد من التحليل.
  2. الملاحظة: بعد انقضاء نافذة تحليل (الافتراضي 15 دقيقة)، يأخذ Plugin عينات تصل إلى 16 إطارًا نشطًا ويرسلها إلى نموذج الرؤية، الذي يعيد ملاحظات نشاط ذات طوابع زمنية ("VS Code: تعديل store.ts وإصلاح خطأ في النوع"). كما تؤدي فجوة التقاط أطول من دقيقتين أو حلول منتصف الليل المحلي إلى إغلاق النافذة الحالية.
  3. التركيب: تُراجع الملاحظات مع بطاقات آخر 45 دقيقة الموجودة لتكوين بطاقات خط زمني (مدة كل منها 10-60 دقيقة) تتضمن عنوانًا وملخصًا وفئة والتطبيق الرئيسي وأي مشتتات موجزة.
  4. التنقية: تُحذف الإطارات الأقدم من retentionDays (الافتراضي 14). ويُحتفظ بالبطاقات والملاحظات والاجتماعات اليومية المخزنة مؤقتًا.

تستخدم حدود الأيام وساعات الخط الزمني المنطقة الزمنية المحلية لـ Gateway، وليس المنطقة الزمنية للمتصفح. توجد الإطارات وقاعدة بيانات الخط الزمني SQLite ضمن <state-dir>/logbook/.

تدفق النماذج والبيانات

يستخدم Logbook مسارين منفصلين للنماذج:

المرحلة البيانات المرسلة مسار النموذج
الملاحظة ما يصل إلى 16 إطار JPEG مأخوذًا كعينة مع أوقات التقاطها visionModel، أو إدخال Codex متوافق مستعار من tools.media
تركيب البطاقات الملاحظات ذات الطوابع الزمنية وبطاقات الخط الزمني الحديثة نموذج الوكيل الافتراضي عبر وقت تشغيل LLM الخاص بـ Plugin
إنشاء الاجتماع اليومي بطاقات اليوم المحدد واليوم السابق نموذج الوكيل الافتراضي عبر وقت تشغيل LLM الخاص بـ Plugin
السؤال عن يومك السؤال وبطاقات اليوم المحدد والملاحظات الحديثة نموذج الوكيل الافتراضي عبر وقت تشغيل LLM الخاص بـ Plugin

لا تُرسل قاعدة بيانات SQLite الكاملة إلى أي من النموذجين. لا تُرسل لقطات الشاشة الخام إلا إلى مرحلة الملاحظة؛ بينما تتلقى عمليات تركيب البطاقات وإنشاء الاجتماع اليومي والأسئلة والأجوبة نصًا مشتقًا.

الإعداد

json5
{  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 نموذج الملاحظة بالترتيب التالي:

  1. plugins.entries.logbook.config.visionModel
  2. أول إدخال Codex يدعم الصور ضمن tools.media.image.models
  3. أول إدخال 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 مفقودة

تحقق من الشروط الثلاثة جميعًا:

  1. تتضمن نتيجة openclaw plugins list --enabled القيمة logbook.
  2. أُعيد تشغيل Gateway بعد تغيير Plugin أو قائمة السماح.
  3. يتضمن اتصال واجهة التحكم النطاق operator.write؛ لا تتلقى جلسات القراءة فقط واصف علامة التبويب التفاعلية.

إذا تم تعيين plugins.allow، فيجب أن يتضمن كلاً من logbook وcodex للإعداد الموصى به.

يُبلغ الالتقاط عن خطأ

bash
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، أو حدّد حلّل الآن بعد التقاط النشاط.
  • تُعد الإطارات المتطابقة المتتالية دليلاً على الخمول ولا تدخل في دُفعات التحليل. غيّر الشاشة الظاهرة قبل الاختبار.
  • إذا أظهرت أحدث دفعة خطأً، فأصلح مشكلة النموذج أو المصادقة وحدّد حلّل الآن. لا تُعاد محاولة الدُفعات الفاشلة إلا عند تنفيذ هذا الإجراء الصريح لتجنب الإنفاق المتكرر على النموذج.

ذو صلة

Was this useful?
On this page

On this page