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

وحدات وقت التشغيل الخمس عشرة

كيف يعمل الدماغ

يصمم وولف فيش وقت تشغيله على نمط الدماغ البشري — ليس كاستعارة، بل كنمط معماري. كل وحدة تتولى وظيفة إدراكية واحدة بالضبط، وتتواصل عبر ناقل أحداث مشترك (الجسم الثفني) بدلاً من استدعاء بعضها البعض مباشرة. عندما تصل رسالة، تتدفق عبر الوحدات مثل إشارة عصبية:
  1. وصول المدخل — محوّل القناة (سطح المكتب أو Telegram أو WhatsApp) يُطلق حدث input.received على corpus
  2. بناء السياق — القشرة الجبهية تقرأ ملفات الهوية، تستعلم الحصين عن الذكريات ذات الصلة، تسأل المخيخ عن القدرات المتاحة، وتمرر كل شيء عبر مرشح الانتباه RAS ليتسع ضمن ميزانية الرموز
  3. LLM يفكر — المهاد يوجّه الموجّه المُجمّع إلى أفضل مزوّد متاح (DeepSeek ← MiMo ← Kimi ← MiniMax ← Claude ← OpenAI ← Ollama)، ويبث الرد
  4. تحليل الرد — منطقة فيرنيكه تستخرج استدعاءات الأدوات والنص من البث، مع التوحيد عبر صيغ المزوّدين السبعة السحابيين
  5. فحص الأمان — إذا وُجدت استدعاءات أدوات، تفحصها اللوزة مقابل أنماط الخطر وإما توافق أو تطلب تأكيداً أو تحظر
  6. تنفيذ الأدوات — القشرة الحركية تشغّل الأدوات الموافق عليها، مع تسجيل كل خطوة في ملفات المهام مع منطق إعادة المحاولة
  7. تسليم الرد — منطقة بروكا تبث النص النهائي للمستخدم عبر القناة
  8. حفظ الذاكرة — الحصين يُلحق المحادثة بملف حلقة اليوم
  9. التعلم — العقد القاعدية تسجّل نجاح أو فشل استدعاءات الأدوات، مبنيةً سجل تغذية راجعة
كل هذا يحدث في خط أنابيب حتمي من 17 خطوة. جذع الدماغ يشغّل العمليات الخلفية (مراقبة الملفات، المهام المجدولة، دمج الذاكرة الليلي)، الوطاء يراقب صحة النظام، والجزيرة توفر الوعي الذاتي حتى يستطيع الوكيل الإبلاغ عن حالته. الفكرة الأساسية: لأن كل وحدة تتواصل عبر الأحداث وتكتب حالتها في ملفات Markdown، فإن الدماغ بأكمله قابل للمراقبة والتعديل في كل طبقة.

مرجع الوحدات

يمتلك وولف فيش 15 وحدة وقت تشغيل، كل منها تتولى وظيفة محددة. كلها موجودة في src/main/runtime/ وتتواصل حصرياً عبر ناقل الأحداث (corpus).

corpus.ts — ناقل الأحداث

يقابل الجسم الثفني. الجهاز العصبي الذي يربط جميع الوحدات. مبني على mitt مع أكثر من 30 حدثًا مكتوب النوع. يسجّل معالج جامع (wildcard) كل حدث في ملفات Markdown يومية في brain/corpus/YYYY-MM-DD.log.md بتفريغ مؤقت كل ثانيتين. تُنظَّف السجلات القديمة بعد 7 أيام. يُهيَّأ أولًا ويُمرَّر ككائن وحيد (singleton) لجميع الوحدات الأخرى.

thalamus.ts — تحليل نموذج الدماغ

يقابل المهاد (بوابة الحس). يدير تسعة مزودي نماذج لغة سحابيين بالإضافة إلى Ollama عبر fetch() خالص. يحلّ نموذج الدماغ الذي اخترته صراحةً (config.llm.brain) ويشغّله — لا يوجد تدرّج تلقائي ولا استبدال بين المزودين. عند خطأ عابر، يُعيد محاولة دماغ السحابة نفسه وفق جدول تراجع أسّي بدلًا من التوجيه إلى مزوّد آخر. يستخدم net.isOnline() للكشف الفوري عن وضع عدم الاتصال. يكشف عن مولّد موحَّد async *stream() يُرجع أنواع StreamChunk.

prefrontal.ts — بنّاء السياق

يقابل القشرة الأمامية الجبهية (الوظيفة التنفيذية). أهم وحدة. يقرأ ملفات Markdown في مساحة العمل، ويستدعي cerebellum لتعريفات الأدوات، ويستدعي cortex للبحث في الذاكرة، ويمرر المرشحين عبر RAS للتقييم، ويجمع المُطالبة النظامية النهائية مع وسوم XML. يكتب لقطات تصحيح في brain/prefrontal/.debug/. يستثني brain/cerebellum/ وbrain/corpus/ من مرشحي الذاكرة.

ras.ts — مرشّح الانتباه

يقابل جهاز التنشيط الشبكي. يحدد ما هو ذو صلة. تقييم صلة قائم على الكلمات المفتاحية بحدّ أدنى 0.25. توزيع ميزانية الرموز: 15% هوية، 10% prefrontal، 30% ذاكرة، 20% مهارات، 25% سجل. يستخدم تقدير ~4 محارف لكل رمز.

cortex.ts — فهرس البحث

يقابل القشرة المخية. استرجاع سريع عبر SQLite. وضع WAL، جدول افتراضي FTS5، ترتيب BM25. قابل للتخلص بالكامل — احذف cortex.db وسيُعاد بناؤه من Markdown. يدعم فهرسة/إزالة ملف واحد لمراقب الملفات في brainstem.

hippocampus.ts — الذاكرة

يقابل قرن آمون. نظام ذاكرة ثلاثي الطبقات.
  • الحلقات (episodes/YYYY-MM-DD.md): سجلات محادثة يومية، تُضاف في كل دور دون استدعاء نموذج لغة
  • المُدمَجة (consolidated/YYYY-WNN.md): ملخصات أسبوعية يولّدها دمج brainstem الليلي
  • المعرفة (knowledge/): ملفات موضوعية دائمة تُرقَّى من الحلقات

cerebellum.ts — محمّل القدرات

يقابل المخيخ (تنسيق الحركة). يكتشف القدرات ويحمّلها. يمسح brain/cerebellum/ بحثًا عن مجلدات القدرات، ويحلل واجهة YAML لـ SKILL.md، ويستورد الإضافات ديناميكيًا، ويسجل الأدوات وأنماط الخطر. يمرر PluginContext (pluginDir + workspaceRoot) إلى الإضافات عند التهيئة.

wernicke.ts — محلل الرد

يقابل منطقة فيرنيكه (فهم اللغة). يفهم مخرجات نموذج اللغة. يحلل القطع المتدفقة، ويستخرج استدعاءات الأدوات، ويوحّدها عبر ثلاثة تنسيقات مزودين في نوع واحد ToolCall. يتعامل مع JSON الجزئي وكتل التفكير.

broca.ts — مجمّع الرد

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

amygdala.ts — بوابة الأمان

يقابل اللوزة الدماغية (كشف التهديد). لا توجد أنماط مكتوبة في الكود — كلها مُحمَّلة من SKILL.md عبر cerebellum. يطابق ضد toolName + " " + JSON.stringify(args). ثلاثة مستويات تصنيف: safe (المتابعة)، confirm (إظهار مربع موافقة)، block (الرفض). تدفق موافقة عبر IPC مع جسر مبني على Promise.

motor.ts — منفّذ المهام

يقابل القشرة الحركية. يشغّل استدعاءات الأدوات مع تسجيل كامل. ينشئ ملفات Markdown للمهام في brain/motor/tasks/TASK-{id}.md. تسجيل لكل خطوة بالمعطيات والمخرجات والمدة وعدد المحاولات. إعادة محاولة 3 مرات بتراجع أسّي 2ث/6ث/18ث. AbortController لدعم الإيقاف.

basalganglia.ts — حلقة الملاحظات

يقابل العقد القاعدية (المكافأة/التعلم). يتعلم من النتائج. ملفات ملاحظات يومية بكامل المعطيات ومقتطف من المخرجات (~200 محرف). يسجل أربعة أنواع نتائج: نجاح، فشل، رفض، موافقة.

hypothalamus.ts — مراقب النظام

يقابل الوطاء (التوازن الداخلي). يراقب صحة النظام. setInterval كل 60 ثانية يراقب الذاكرة العشوائية، والقرص، والمعالج، واستخدام نافذة السياق. يطلق أحداث health.warning وhealth.critical على corpus عند تجاوز العتبات.

brainstem.ts — العمليات الخلفية

يقابل جذع الدماغ (الوظائف اللاإرادية). يعمل دون تفاعل المستخدم. مراقب ملفات chokidar بتأخير 500ms يحفّز إعادة فهرسة cortex عند تغير الملفات. مجدول node-cron يقرأ الجداول من brainstem/heartbeat.md. الدمج الليلي المدعوم بنموذج لغة يجمّع الحلقات في ملخصات أسبوعية (السحابة أولًا للجودة). كل ذلك داخل العملية — لا توجد عمليات خفية على مستوى النظام.

insula.ts — الوعي الذاتي

يقابل الجزيرة (الإحساس الداخلي). يعرف حالته الخاصة. يظهر عبر قدرة introspect بثلاث أدوات: wolffish_status، وwolffish_performance، وwolffish_memory. يقرأ ملفات مساحة العمل مباشرة للحصول على الإحصائيات. اسأل وولف فيش “كيف حالك؟” وسيقرأ سجلاته الخاصة للإجابة.