الانتقال إلى المحتوى الرئيسي

تمريرة الضغط الليلية

تماماً كما يُجمِّع النوم البيولوجي الذكريات، يُشغِّل وولف فيش عملية ضغط ليلية تُحوِّل إدخالات الأحداث إلى ملخصات أسبوعية موضوعية. هذا يمنح الوكيل وصولاً إلى سياق طويل المدى بدون استهلاك ميزانية التوكنات.

الموقع

~/.wolffish/workspace/brain/hippocampus/consolidated/
├── 2026-W18.md
├── 2026-W19.md
└── 2026-W20.md
الملفات تُسمّى بالسنة ورقم الأسبوع حسب معيار ISO: YYYY-WNN.md.

كيف يعمل

brainstem المُجدوِل يُفعَّل (الافتراضي: 23:00 ليلاً)
  → يقرأ ملفات الأحداث من نافذة التجميع
    → يُرسل الأحداث إلى LLM مع موجه تلخيص
      → LLM يستخرج المواضيع والأنماط والمواضيع المتكررة
        → يكتب consolidated/YYYY-WNN.md

العملية بالتفصيل

  1. التفعيل — مُجدوِل node-cron في brainstem يعمل في الوقت المُعدّ
  2. الجمع — يقرأ جميع إدخالات الأحداث من نافذة التجميع السابقة (الافتراضي: 7 أيام)
  3. التلخيص — يُرسل الإدخالات الخام إلى LLM مع موجه منظم يطلب تجميعاً موضوعياً
  4. الكتابة — يُكتب الناتج المُلخَّص في ملف التجميع الأسبوعي
  5. الفهرسة — يُعيد cortex فهرسة الملف الجديد عبر مراقب الملفات
يستخدم التجميع مزود السحابة عند توفره (جودة تلخيص أفضل). إذا كنت غير متصل بالإنترنت، يعود إلى نموذج Ollama المحلي. قد تكون النتيجة أقل دقة مع النموذج المحلي، لكن الضغط يعمل في كل الأحوال.

مثال على ملف مُجمَّع

هكذا قد يبدو ملف 2026-W20.md:
# Consolidated — Week 20, 2026

## Billing Service Project
- Started building the billing service with Stripe integration
- Chose event-driven architecture with domain events
- Implemented webhook handler with idempotency keys
- Resolved race condition in subscription upgrade flow

## React Patterns
- Discussed Server Components streaming patterns multiple times
- Generated several custom hooks: useServerAction, useOptimistic
- Preference confirmed: always use error boundaries with Suspense

## Personal
- Planning trip to Riyadh (searched flights 3 times this week)
- Prefers morning work sessions for deep coding tasks

## Decisions Made
- Use pnpm over npm going forward
- Conventional commits for all repositories
- Always use Zod for runtime validation at API boundaries

لماذا يهم التجميع

الأحداث مُفصَّلة — يوم مزدحم قد يُنتج أكثر من 20 إدخالاً. تحميل أسبوع من الأحداث الخام سيستهلك جزءاً كبيراً من ميزانية التوكنات المخصصة للذاكرة (30%). الملفات المُجمَّعة تضغط أسبوعاً كاملاً في فقرات قليلة من الملخصات الموضوعية، مما يمنح الوكيل وصولاً إلى أسابيع من التاريخ بدون تكلفة التوكنات.
الفترة الزمنيةبدون تجميعمع تجميع
أسبوع واحد~100 سطر أحداث~20 سطر مُجمَّع
شهر واحد~400 سطر أحداث~80 سطر مُجمَّع
3 أشهر~1200 سطر أحداث~240 سطر مُجمَّع

الإعدادات

إعدادات الضغط موجودة في config.json:
{
  "compaction": {
    "enabled": true,
    "schedule": "0 23 * * *",
    "windowDays": 7
  }
}
المفتاحالافتراضيالوصف
enabledtrueتفعيل/تعطيل الضغط
schedule"0 23 * * *"تعبير cron (الافتراضي: 23:00 يومياً)
windowDays7عدد أيام الأحداث التي تُجمَّع في كل تشغيل
يمكنك أيضاً إعداد هذه الخيارات في الإعدادات > الضغط في واجهة المستخدم.

التشغيل اليدوي

لا تحتاج لانتظار الجدول الليلي. brainstem يُتيح الضغط كإجراء قابل للتشغيل:
corpus.emit('brainstem.compact.trigger')
أو اطلب من وولف فيش مباشرة: “جمّع أحداثي الأخيرة الآن”.
إذا مررت بأسبوع مزدحم بشكل خاص وتريد التأكد من حفظ السياق المهم في شكل مضغوط، شغّل التجميع يدوياً قبل التشغيل الليلي.

تقييم الصلة

الملفات المُجمَّعة تمر عبر RAS تماماً مثل ملفات الأحداث والمعرفة. يُقيِّم RAS كل إدخال مُجمَّع مقابل الرسالة الحالية، فالسؤال عن “Stripe webhooks” سيجلب قسم خدمة الفوترة من الملف المُجمَّع مع تجاهل قسم تخطيط السفر.
الملفات المُجمَّعة هي ملخصات مُولَّدة بواسطة LLM. قد تفقد أحياناً بعض التفاصيل الدقيقة من الأحداث الخام. إذا لاحظت فقدان شيء مهم أثناء التجميع، أضفه إلى ملف المعرفة المناسب يدوياً.