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

المشكلة
كل وكيل برمجة ينسى بين الجلسات، وكل وكيل يتذكر بطريقته. تشرح للوكيل المستودع وقاعدة النشر وتسمية غريبة يوم الاثنين، وفي يوم الثلاثاء يسأل الوكيل من جديد. وإذا انتقلت من أداة إلى أخرى فالذاكرة لا تنتقل معك. يحفظ Aletheia الذاكرة والقواعد مرة واحدة على جهازك، ويترك لكل أداة أن تقرأها بالصيغة التي تفهمها أصلًا.
الفائدة 1: مخزن واحد تقرأه أدوات كثيرة
ملف SQLite واحد يُقرأ عبر MCP (الإدخال القياسي وHTTP) وواجهة REST وسطر أوامر. ثلاث عشرة أداة MCP تغطي البحث والخط الزمني والنص الكامل بالمعرّف وحفظ ذاكرة والقواعد وقائمة حالة العمل. الالتقاط التلقائي عبر الخطافات (hooks) مبني لست أدوات، وجُرّب من البداية إلى النهاية على حمولات مسجّلة. أما ما عمل على تثبيت حقيقي فأضيق من ذلك، ويبيّن قسم الحدود أدناه ذلك بدقة.
الفائدة 2: خصوصية افتراضية
- يرتبط الخادم بواجهة loopback (
127.0.0.1). وأي ربط آخر يفعّل تسجيل الدخول ويطبع تحذيرًا. - لا حساب ولا قياس عن بُعد (telemetry). مزوّد النموذج الافتراضي هو
none، فالاستخراج قائم على القواعد ولا يجري أي اتصال بالشبكة. - على أنظمة POSIX يكون لمجلد البيانات الإذن 0700، ولقاعدة البيانات وملفات spool والمفاتيح الإذن 0600. بعض الملفات الأخرى أوسع (
alerts.dbإذنه 0644 وتصدير المحو 0664)، والمجلد ذو الإذن 0700 يمنع المستخدمين الآخرين. - تزيل الخطافات الأسرار وكتل
<private>قبل تخزين أي شيء، ويمكن استثناء مشروع بالمتغيرALETHEIA_EXCLUDED_PROJECTS. - الأمر
aletheia eraseيحذف عمدًا ويكتب إيصالًا موقّعًا. الإيصال يثبت أنه لم يُعدَّل، لا أن البيانات اختفت من القرص: تصدير ما قبل المحو يحتفظ بالنص المحذوف، ولا ينفّذ Aletheia الأمرVACUUM، وصفحات SQLite المحررة لا تُكتب فوقها فورًا.
لا يغادر شيء جهازك ما لم تبدأه أنت: مزوّد نموذج تضبطه، أو مزامنة مع مركز تشغّله، أو تصدير تشاركه، أو 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@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 |
اقرأه بعناية.
- قارن صف claude-mem بصفوف الأدوار الخام فقط. هي الصفوف الوحيدة التي يخزّن فيها النظامان النص الخام نفسه.
- صف claude-mem ليس له ملف نتائج. مصدره README المشروع. المخرجات الخام لذلك التشغيل غير مودعة وتاريخه غير مسجّل. استخدم claude-mem 15.2.0، وحفظ كل دور عبر نقطة الحفظ في claude-mem، وهناك إصدارات أحدث لم أختبرها.
- أعمدة السرعة ليست متكافئة. رقم Aletheia هو متوسط زمن استدعاء ترتيب داخل العملية. أما أرقام claude-mem فهي وسيط ومئين 95 لطلب HTTP إلى عامل (worker). هي تُظهر رتبة الحجم، لا نسبة.
- صفوف الهجين تحتاج حزمة التضمينات الاختيارية. البحث الافتراضي هو البحث بالكلمات المفتاحية، أي صف 55.3%.
- مستخرِج القواعد بالكاد يفيد. صفه 57.7% مع MRR أقل من الأدوار الخام (0.492 مقابل 0.497). حقائق مجموعة البيانات تضيف 7.3 نقطة؛ ومستخرِج Aletheia لا يكرر هذا الكسب.
- هناك فجوة معروفة في الأدلة. سجل محلي لتشغيل الأدوار الخام، يتجاهله git، يُظهر 44.7% للبحث الهجين. أما ملف النتائج المودع، الذي يستخدمه README، فيُظهر 57.4%. بقية السجلات تطابق ملفاتها. السبب مجهول ولم يُعَد التشغيل، فالرقم 57.4% هو المنشور لا المحسوم.
عند 50,000 صف اصطناعي كان p95 للبحث بالكلمات المفتاحية 32.7 ms ضمن نطاق المشروع و58.6 ms عبر كل المشاريع (Linux، bun bench/scale.mjs 50000 20000 --index tuned --queries 200 --seed 1).
ما لا يقدمه
- دقة الإجابات. Recall@5 يسأل هل استُرجع الدليل. ولا يسأل هل كانت الإجابة صحيحة. يوجد سكربت لذلك (
bench/accuracy.mjs)، لكن لا تُنشر نتيجة دقة من نموذج حقيقي. - إثباتًا على كل أداة. عملت الخطافات في جلسات حقيقية لـ Claude Code (يومان من الاستخدام) وCommand Code (جلسة قصيرة واحدة) وCodex CLI (جلسة تفاعلية واحدة)، على جهاز واحد لمستخدم واحد. أما Cursor وGemini CLI وWindsurf فهي إعدادات كُتبت من توثيقها، ولم تُختبر على تثبيت حقيقي، ولم يعمل أي خطاف داخلها ولا داخل OpenCode.
- إعداد Windows مختبرًا. يشغّل التكامل المستمر الاختبارات على Windows، لكن عدة فحوص تُتجاوز هناك، منها التثبيت والالتقاط من البداية إلى النهاية، ولم تُجرَّب أي أداة حقيقية.
- حذفًا كاملًا للأسرار. يفوته ما لا يشبه نمطًا معروفًا، مثل
MY_API_KEY=...، ولا يعمل علىPOST /v1/memoriesولا على مربع الملاحظة في لوحة التحكم. - مزامنة فريق مختبرة. المزامنة وMCP البعيد مستضافان ذاتيًا، واختُبرا على loopback ومجلدات مؤقتة، لا بين جهازين حقيقيين.
- الاستقرار. المشروع في مرحلة alpha.
- ترجمات راجعها ناطقون أصليون. ترجمات README العشر مترجمة آليًا.
متى يستحق الاستخدام
يناسبك إذا استخدمت أكثر من أداة برمجة، وأردت ذاكرتك في ملف تقرؤه وتنقله، أو لا تستطيع إرسال نص الجلسات إلى خدمة مستضافة. وإذا كانت الذاكرة المدمجة في أداة واحدة تكفيك، فقد لا تحتاج طبقة أخرى. وإذا أردت مشاركة فريق مستضافة بحسابات، فوضع الفريق في 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 مرة أخرى.
ما الذي كنت سأفعله بشكل مختلف
- أنشر نتيجة دقة الإجابات قبل جدول الاسترجاع. يوجد سكربت، لكن لا تُنشر نتيجة من نموذج حقيقي، والقراء يسمعون “دقة” حين يرون نسبة مئوية.
- أقيس الطرفين بالطريقة نفسها. أخلط متوسطًا داخل العملية بوسيط HTTP لأن هذا ما أبلغ عنه كل تشغيل. كنت سأعيد تشغيل الاثنين عبر HTTP بإحصاء واحد، وأودع المخرجات الخام، فلا يحتاج فرق السرعة إلى حاشية.
المصادر
- README الخاص بـ Aletheia، الأرقام المقيسة والحدود, جُلب في 2026-10-31
- توثيق Aletheia، الخصوصية وحذف الأسرار, جُلب في 2026-10-31
- توثيق Aletheia، سياق بداية الجلسة, جُلب في 2026-10-31
- نتائج اختبارات Aletheia القياسية، 2026-10-26, جُلب في 2026-10-31
