# الجلسات والذاكرة ## الجلسات ### كيف تعمل الجلسات كل محادثة مع وكيل تحدث في **جلسة**. تُعرَّف الجلسات بمفاتيح تُشفِّر السياق, أي وكيل وأي قناة وأي دردشة. تحتفظ الجلسات بنص كامل (JSONL يضاف إليه فقط) لجميع الرسائل واستدعاءات الأدوات والنتائج. هذا النص هو ما يمنح الوكلاء سياقاً حول المحادثة الجارية. ### مفاتيح الجلسة يتم توجيه الجلسات تلقائياً بناءً على السياق: | النمط | المعنى | |---------|---------| | `agent:main:main` | المحادثة المباشرة الرئيسية | | `agent:::group:` | دردشة جماعية على قناة محددة | | `agent:::channel:` | محادثة قناة/غرفة | | `cron:` | تنفيذ مهمة مجدولة | | `hook:` | تنفيذ مُشغَّل بـ Webhook | ### دورة حياة الجلسة - **الإعادة اليومية**, تُعاد ضبط الجلسات تلقائياً في وقت قابل للتكوين (4 صباحاً المحلي بشكل افتراضي). يُنشئ هذا سياق محادثة جديداً كل يوم مع الحفاظ على السجل. - **انتهاء صلاحية الخمول**, الجلسات التي لم تكن نشطة لفترة قابلة للتكوين يمكن إعادة ضبطها تلقائياً. - **الإعادة اليدوية**, ابدأ من جديد في أي وقت بأمر `/new` أو `/reset`. ### تتبع الرموز تتبع الجلسات استخدام الرموز التراكمي (الإدخال والإخراج وقراءة الذاكرة المؤقتة وكتابتها) لمراقبة التكلفة وإدارة نافذة السياق. --- ## الضغط ### ما هو الضغط؟ عندما تقترب المحادثة من حد نافذة سياق النموذج، يقوم Neotask بـ**ضغطها**, تلخيص الرسائل القديمة في نظرة عامة مكثفة وبدء جلسة جديدة بذلك الملخص بالإضافة إلى الرسائل الأخيرة. ### كيف يعمل 1. **الكشف**, مراقبة استخدام السياق (المشغّل الافتراضي: 80% من نافذة السياق) 2. **التلخيص**, تُلخَّص الرسائل القديمة في إدخال ضغط 3. **جلسة جديدة**, تبدأ جلسة جديدة مع حقن الملخص في الأعلى 4. **الحفظ**, تُحفظ النصوص القديمة للسجل لكنها لا تُحمَّل في السياق بعد ذلك ### التكوين - **مفعّل/معطّل**, تبديل الضغط التلقائي - **العتبة**, نسبة نافذة السياق التي تشغّل الضغط (80% بشكل افتراضي) - **الحد الأدنى من الرسائل**, لا يتم الضغط إذا كان عدد الرسائل أقل من N ### الضغط اليدوي يمكنك تشغيل الضغط يدوياً في أي وقت باستخدام أمر `/compact`. هذا مفيد عندما تريد إعادة ضبط السياق دون فقدان المعلومات المهمة. --- ## الذاكرة ### ذاكرة الوكيل كل وكيل لديه نظام ذاكرة لحفظ المعلومات المهمة عبر الجلسات: - **MEMORY.md**, ملف markdown في مساحة عمل الوكيل حيث تُخزَّن الحقائق والتفضيلات والسياق المهمة - **دليل الذاكرة**, ملفات إضافية في `memory/` للمعرفة المنظمة ### البحث المتجهي يدعم Neotask البحث بالتشابه المتجهي في ذاكرة الوكيل: 1. **الفهرسة**, تُفهرَس ملفات الذاكرة باستخدام التضمينات 2. **البحث**, يستعلم الوكلاء عن الذاكرة بلغة طبيعية ("ماذا قال المستخدم عن تفضيلات API الخاصة به؟") 3. **الاستدعاء**, تُرجع الذكريات ذات الصلة مرتبةً حسب التشابه ### إضافة الذاكرة (LanceDB) توفر إضافة ذاكرة LanceDB تخزيناً متجهياً متقدماً: - قاعدة بيانات متجهية دائمة - حجم قطعة وتداخل قابل للتكوين - بحث تشابه فعال - إعادة فهرسة تلقائية عند تغيير ملفات الذاكرة ### الاستدعاء التلقائي عند بدء الجلسة، يمكن استدعاء الذكريات ذات الصلة تلقائياً وحقنها في سياق الوكيل. يمنح هذا الوكلاء استمرارية عبر الجلسات دون تحميل سجلات محادثة كاملة. --- ## استمرار الجلسة تُخزَّن جميع بيانات الجلسة محلياً: - **بيانات تعريف الجلسة**, `sessions.json` يتبع الجلسات النشطة وآخر نشاط وعدد الرموز والإعداد - **النصوص**, نصوص الجلسات الفردية مخزّنة كملفات `.jsonl` - **الاسترداد**, تنجو الجلسات من إعادة تشغيل البوابة دون فقدان البيانات ### التنظيف - الجلسات التي لم يُوصَل إليها لفترة قابلة للتكوين (30 يوماً بشكل افتراضي) مؤهلة للتنظيف - إدارة الجلسات اليدوية متاحة من خلال واجهة المستخدم أو API - النصوص المضغوطة تُؤرشف لكن يمكن مراجعتها