Mohamed Ashraf Elsaed

ما يقدمه aletheia-mem وما لا يقدمه

بقلم Mohamed Ashraf Elsaedنُشر 6 دقيقة قراءة

هذه ترجمة آلية لم تُراجَع بعد. الأصل الإنجليزي هو المرجع. اقرأ الأصل الإنجليزي

Aletheia (حزمة npm باسم aletheia-mem) مركز ذاكرة وقواعد مجاني ومحلي لأدوات البرمجة بالذكاء الاصطناعي. يسرد هذا المقال ما يقدمه، مع الأرقام التي تقف خلف كل ادعاء، ثم يسرد ما لا يقدمه، لأن القائمة الثانية تهم بقدر الأولى.

شعار Aletheia: شبكة على شكل دماغ، وبداخلها طبقات من الذاكرة

المشكلة

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

الفائدة 1: مخزن واحد تقرأه أدوات كثيرة

ملف SQLite واحد يُقرأ عبر MCP (الإدخال القياسي وHTTP) وواجهة REST وسطر أوامر. ثلاث عشرة أداة MCP تغطي البحث والخط الزمني والنص الكامل بالمعرّف وحفظ ذاكرة والقواعد وقائمة حالة العمل. الالتقاط التلقائي عبر الخطافات (hooks) مبني لست أدوات، وجُرّب من البداية إلى النهاية على حمولات مسجّلة. أما ما عمل على تثبيت حقيقي فأضيق من ذلك، ويبيّن قسم الحدود أدناه ذلك بدقة.

صفحة Aletheia الرئيسية لمشروع تجريبي: ما يعرفه Aletheia مرتبًا من الأحدث، والقواعد المطبقة
الصفحة الرئيسية لمشروع تجريبي. كل ما يظهر مخزّن في ملف محلي واحد.

الفائدة 2: خصوصية افتراضية

لا يغادر شيء جهازك ما لم تبدأه أنت: مزوّد نموذج تضبطه، أو مزامنة مع مركز تشغّله، أو تصدير تشاركه، أو webhook للتنبيهات، أو التنزيل لمرة واحدة لنموذج التضمين الاختياري. وهناك تنبيهان صريحان: حذف الأسرار قائم على الأنماط فهو غير كامل، وقاعدة البيانات SQLite عادية بلا تشفير في حالة السكون، فاستخدم تشفير القرص إذا احتجت إليه.

الفائدة 3: قواعد تُكتب مرة واحدة

القاعدة تعليمة دائمة لكل الأدوات. تكتبها مرة واحدة، وأمر يعرض المعاينة أولًا يكتبها في ملف كل أداة: CLAUDE.md وAGENTS.md وGEMINI.md وقواعد Cursor وWindsurf وملفات Copilot وAider. اختُبرت هذه الكاتبات في مجلدات مؤقتة. لم تقرأ أي أداة حقيقية ملف قواعد كتبه Aletheia، ولم يُتحقق من كاتبَي Copilot وAider.

الفائدة 4: ذاكرة تقرؤها وتصححها وتأخذها معك

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

الفائدة 5: بداية صغيرة يمكن توقعها لكل جلسة

كتلة بداية الجلسة فهرس بسطر واحد لكل ذاكرة، مقطوع عند 6,000 حرف. والوكيل الذي يحتاج أكثر يستدعي search وtimeline وget_observations. يقدّر Aletheia الكلفة بالرموز (tokens) على أنها عدد الحروف مقسومًا على أربعة، ويقول ذلك في السطر الأخير من الكتلة. التقدير ليس ادعاء توفير: في مخزن تجريبي صغير كانت الكتلة أكبر من نص الذكريات التي تسردها (نحو 194 رمزًا مقابل نحو 132)، ولا يتحقق توفير فعلي إلا بذكريات ذات سرد طويل.

الفائدة 6: استرجاع مقيس بطريقة منشورة

قست الاسترجاع على LoCoMo: أسئلة الفئات من 1 إلى 4 التي لها دليل مرجعي، أي 1,536 سؤالًا في 10 محادثات. Recall@5 هو نسبة أدوار الدليل المرجعي للسؤال التي وُجدت في أعلى خمس نتائج، بمتوسط على الأسئلة. هو قياس للاسترجاع فقط. كل رقم أدناه قسته أنا، بالأوامر الموجودة في docs/project/benchmarks.md.

مخطط أعمدة لـ Recall at 5 على 1,536 سؤالًا من LoCoMo: claude-mem بنسبة 36.0 بالمئة من README الخاص به، وبحث Aletheia بالكلمات المفتاحية 55.3، والهجين على الأدوار الخام 57.4، والهجين مع حقائقه الخاصة 57.7، ومع حقائق مجموعة البيانات 64.8، ومع حقائق مجموعة البيانات وإعادة الترتيب 72.3
Recall@5، للاسترجاع فقط. صفوف الهجين تحتاج حزمة التضمينات الاختيارية. الصفوف التي فيها حقائق مجموعة البيانات تستخدم حقائق كتبها مؤلفو الاختبار، لا حقائق استخرجها Aletheia.
التشغيل Recall@5 MRR ميلي ثانية لكل استعلام
claude-mem 15.2.0، الأدوار الخام، من README الخاص به 36.0% 0.285 p50 1,699 ms وp95 2,824 ms (خامل، 40 استعلامًا)
Aletheia، الأدوار الخام، بحث بالكلمات المفتاحية (BM25، الافتراضي) 55.3% 0.482 2.00
Aletheia، الأدوار الخام، هجين 57.4% 0.497 3.72
Aletheia هجين + حقائقه المستخرجة بالقواعد 57.7% 0.492 4.94
Aletheia هجين + حقائق مجموعة البيانات 64.8% 0.591 5.53
Aletheia هجين + حقائق مجموعة البيانات + إعادة الترتيب 72.3% 0.680 646.19

اقرأه بعناية.

عند 50,000 صف اصطناعي كان p95 للبحث بالكلمات المفتاحية 32.7 ms ضمن نطاق المشروع و58.6 ms عبر كل المشاريع (Linux، bun bench/scale.mjs 50000 20000 --index tuned --queries 200 --seed 1).

ما لا يقدمه

متى يستحق الاستخدام

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

لتجربته في عشر دقائق داخل مجلد مؤقت، اتبع مقال الشرح العملي الخاص بـ aletheia-mem.

ما تحققت منه وما لم أتحقق منه

الأرقام من README وdocs/project/benchmarks.md وملفات النتائج في bench/results/2026-10-26، وقد قرأتها في 2026-10-31. أوامر صفوف Aletheia عامة، فيستطيع أي أحد تكرارها. صف claude-mem ليس له ملف نتائج، بل README فقط. أرقام الرموز من تشغيل aletheia context مع aletheia-mem 0.1.10 في مجلد مؤقت في 2026-10-30. لم أعد تشغيل اختبار LoCoMo لهذا المقال، ولم أقس claude-mem مرة أخرى.

ما الذي كنت سأفعله بشكل مختلف

  1. أنشر نتيجة دقة الإجابات قبل جدول الاسترجاع. يوجد سكربت، لكن لا تُنشر نتيجة من نموذج حقيقي، والقراء يسمعون “دقة” حين يرون نسبة مئوية.
  2. أقيس الطرفين بالطريقة نفسها. أخلط متوسطًا داخل العملية بوسيط HTTP لأن هذا ما أبلغ عنه كل تشغيل. كنت سأعيد تشغيل الاثنين عبر HTTP بإحصاء واحد، وأودع المخرجات الخام، فلا يحتاج فرق السرعة إلى حاشية.

المصادر

كُتبت مسودة هذه المقالة بمساعدة الذكاء الاصطناعي. راجعت كل ادعاء ونفذت الأوامر المعروضة.

عن المشروع: Aletheia.

Mohamed Ashraf Elsaed
Mohamed Ashraf Elsaed
قائد تقني في Convertedin، القاهرة. أبني أدوات لوكلاء البرمجة بالذكاء الاصطناعي وأكتب عن لارافيل وNode والهندسة.