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

أدير عمليات استوديو تصميم من داخل Claude Code. عشرة إلى عشرين طرفية مفتوحة، كل واحدة منها أنا. ولأشهر، كانت كل واحدة منها تجعل الشخص نفسه يكرر كلامه.
فريق Brainy فتح الجلسة التي بدأت كل هذا بسطر واحد: سئمنا من تكرار أنفسنا. ثم أرفقوا معيار قياس (benchmark) لسبعة منتجات ذاكرة ومستودعاً، وسألوا لماذا الذاكرة التي خلفي ليست مثل ذلك.
هذه الورقة هي ما وجدناه حين أخذنا ذلك على محمل الجد. أعدنا بناء نظام الذاكرة، وشغّلنا سير عمل بحثي من ستة عشر عميلاً (agent) على كل إضافة ذاكرة ومزوّد استطعنا تسميته، وجعلنا ثمانية من هؤلاء العملاء يحاولون دحض الثمانية الآخرين، وقسنا عملنا نفسه على مطالبات (prompts) حقيقية بدلاً من اختبار كتبناه لأنفسنا. النتيجة ليست توصية بإضافة معينة. إنها رقمان، وهاوية، وقاعدة حول ما يُسمح للذاكرة بادّعائه.
للخلل اسم
كتابة دؤوبة، استرجاع اختياري. هذه هي علة تكرار الكلام برمّتها.
نظام ذاكرة يكتب بعناية ويقرأ متى شاء يبدو سليماً في كل تدقيق. الملفات موجودة. الحقائق صحيحة. الفهرس مرتب.
والإنسان لا يزال يشرح قاعدة النشر للمرة الرابعة، لأنه في اللحظة التي كانت فيها القاعدة مهمة، لم يذهب شيء ليجلبها.
كان هذا حالنا. كل جلسة كانت تكتب ذاكرات. وقراءتها كانت تعتمد على ملف فهرسة واحد يُدار يدوياً وأن يكون قصيراً بما يكفي لتحميله، وعلى قراري أنا، في منتصف المهمة، بأن أذهب لأبحث.
لم يحدث أي منهما بشكل موثوق. المخزن كان "أغلبه كتابة"، والذاكرة التي أغلبها كتابة هي يوميات، لا ذاكرة.
كتابة دؤوبة، استرجاع اختياري.
ملف الذاكرة لديك فيه هاوية مخفية
يحمّل Claude Code فهرس الذاكرة التلقائية لديك، ملف MEMORY.md، حتى 200 سطر أو 25,000 بايت، أيهما يأتي أولاً. بعد ذلك السطر، لا يُحمَّل شيء. لا تحذير، لا خطأ، لا ملاحظة في الجلسة.
ملفنا كان 229 سطراً و31,283 بايتاً. سقف البايتات قطعه عند السطر 176. تحت ذلك السطر كانت تجلس ثلاثة أقسام كاملة من القواعد الثابتة: الأمان، التسليم والشحن، والتكلفة وتوجيه النماذج.
ثلاثة وخمسون سطراً، 23% من الفهرس. لم تصل قط إلى أي جلسة.
والأسوأ أن الملف يُضاف إليه من الأسفل الأحدث. السقف يقتطع من الأسفل. فالذاكرات التي تسقط أولاً هي تلك التي كتبتها مؤخراً، وهي التي تخص الشيء الذي تعمل عليه الآن.
إن كنت قد أضفت قاعدة إلى ذاكرتك ورأيت العميل يتجاهلها بعد أسبوع، عدّ أسطرك. السقف موثّق في مشكلتين على متتبع مشاكل Claude Code، وهو يفعل بك هذا الآن إن كان الملف قد تجاوز أياً من الرقمين.
نتيجة كاملة كانت صحيحة بنسبة 17%
النسخة الأولى من الحل استغرقت ساعتين. فهرس نص كامل فوق المخزن، وربط (hook) يبحث فيه عند كل مطالبة ويحقن أعلى النتائج. على مجموعة من 23 استعلام اختبار، سجّل 22.
ثم قرأنا السجل الحي. ستة مطالبات حقيقية، 18 ذاكرة مُحقَنة، نحو ثلاث منها فقط ذات صلة. سبعة عشر بالمئة.
المعيار كان استعلامات مثل "انشر إلى الإنتاج". لا أحد في الفريق يكتب هكذا. إنهم يكتبون مطالبات طويلة، محادثاتية، متعددة الجُمل، مع لقطات شاشة وروابط ملصقة فيها.
نص المطالبة الحرفي استعلام بحث سيئ للغاية، والموضوع عادةً يعيش في الدور السابق من المحادثة. بنينا أنبوباً جيداً وضخخنا فيه ماءً سيئاً.
أربعة أسباب، كل واحد مقاس، وكل واحد أُصلح:
| ما فعلته النسخة الأولى | ما يجب أن تفعله |
|---|---|
| بحثت في نص المطالبة الحرفي | تقرأ الموضوع من النص الكامل للمحادثة، وتدع المطالبة تُحدّده أكثر |
| تُطلق عند أدوار الآلة، إشعارات المهام، مخرجات الربط | تُطلق فقط عند سؤال بشري |
| مطابقة النصوص الفرعية، فكانت "api" تطابق "rapid" | مطابقة على مستوى الكلمات مع اشتقاق (stemming) |
| تجمع كل مصطلح مطابَق، مكافِئة الاتساع | تسجّل فقط أندر ثلاثة مصطلحات |
السبب الخامس كان الأسوأ. ترك محادثة الجلسة تقود البحث كان يعني أن جلسة عن الذاكرة تسترجع كل ملاحظة ذاكرة في كل دور، وسؤال عن النشر يحصل على ملفات فهرسة بدلاً من قاعدة النشر. السياق قد يُحدّد استعلاماً له موضوع بالفعل. لا يجوز له أبداً أن يخترع موضوعاً.
بعد إعادة الكتابة: 14 من 16 مطالبة حقيقية حصلت على الذاكرة الصحيحة ضمن أعلى نتيجتين، و18 من 18 مطالبة محادثاتية، من نوع "حسناً تابع"، لم تحصل بشكل صحيح على شيء.
الصمت ميزة. الذاكرة المحقونة في مطالبة لم تكن بحاجة إليها هي ضجيج على النموذج أن يقرأه ويتجاوزه.
القاعدة الواحدة: لا نموذج في مسار المطالبة
هنا الرقم الأول. رحلة ذهاب وإياب إلى نموذج لغوي من ربط (hook) تستغرق 8.6 ثانية. بحث نص كامل عبر المخزن بأكمله يستغرق 18 ميلي ثانية.
كل مطالبة تكتبها تُشغّل الربط قبل أن يرى العميل كلماتك. ضع نموذجاً في ذلك الربط وكل سؤال تطرحه يكلف ثماني ثوانٍ قبل أن يبدأ. هذا هو السبب الكامل وراء شعور معظم إضافات الذاكرة "الذكية" بالبطء.

لذا القاعدة مطلقة: النموذج لا يعمل أبداً في مسار المطالبة. يعمل بشكل غير متزامن (offline)، عند نهاية الجلسة وفي مسح يومي، ويكتب ما يتعلمه في الفهرس.
يقترح ذاكرات من نص المحادثة. يشتق الكلمات التي سيكتبها شخص فعلياً حين يحتاج ذاكرة، فملاحظة عنوانها "حادثة نشر الإنتاج" يمكن أن تطابق "هل أنا على وشك تدمير الإنتاج". يجد التكرارات والتناقضات. ثم يرحل، والشيء الذي يجيب وقت المطالبة هو SQLite بسيط.
ما يكلفه الانقسام
تكلفة ذلك الانقسام صفر دولار. كل استدعاء نموذج يمر عبر الاشتراك الذي ندفعه أصلاً، والاسترجاع، الذي يعمل عند كل مطالبة، لا يكلف شيئاً على الإطلاق. حين لا يتطابق شيء، لا تُنفق أي رموز (tokens). التكلفة الهامشية للذاكرة صفر تماماً، بالتصميم، إلى الأبد.
قياسان أصغر يجسّدان القاعدة. نموذج تضمين (embedding) صغير يكلف نحو 1.5 ثانية فقط للتحميل، في عملية تبدأ من جديد عند كل مطالبة بميزانية 18 ميلي ثانية.
استيراد مكتبة رقمية يكلف 70 ميلي ثانية باردة مقابل عملية عارية بـ17 ميلي ثانية. ثلاثة أضعاف الميزانية بأكملها، لتوفير 0.02 ميلي ثانية من الحساب. البحث بالكلمات المفتاحية يفوز على مستوى الكمون قبل أن يصل إلى النقاش حول الجودة.
الكتابة تبقى فورية. كان هذا القرار برمّته.
"ملفات مبعثرة" هي الشكوى الخطأ
النقد الذي واصلنا سماعه كان: ذاكرتك مبعثرة عبر ملفات ماركداون، وليست متسقة، ولا تُحضِر الذاكرة كاملة إلى كل محادثة. Hermes، بيئة العمل للعميل التي أشار إليها الفريق، لديها ذاكرة واحدة تنمو معك.
كلا الشطرين يستحقان جواباً مباشراً.

إحضار الذاكرة كاملة إلى كل محادثة مستحيل حسابياً. مخزننا هو 875,553 رمزاً (tokens). نافذة السياق هي 200,000. هذا 4.4 نافذة من الذاكرة، وهي تنمو كل يوم.
لا أحد يحضر الذاكرة كاملة. الجميع يسترجع.
و"الذاكرة الواحدة" لدى Hermes هي 3,575 حرفاً. ملف ذاكرة من 2,200 حرف زائد ملف تعريف مستخدم من 1,375 حرفاً، كلاهما دائماً في المطالبة، وكلاهما بسقف صارم. كل ما تعرفه Hermes غير ذلك يعيش في ملفات على القرص ويُبحث عنه عند الطلب بنفس نوع الفهرس الذي نستخدمه.
"مبعثرة في ملفات ماركداون" تصف كلا النظامين. عدد الملفات هو التخزين. الوصول هو الفهرس. أربعمائة وسبعة وثمانون ملفاً خلف فهرس نص كامل واحد ليس تبعثراً؛ استعلام واحد يلمسها جميعاً خلال 18 ميلي ثانية.
أين كان النقد محقاً
كان محقاً في عكس ما ادّعاه. طبقة Hermes الدائمة الحضور نحو 1,300 رمز. طبقتنا كانت 6,152. هم أخفّ بـ4.7 مرة، وتلك الخفة تأتي من قاعدة صارمة: حين تمتلئ الذاكرة، تفشل الكتابة ويجب على العميل أن يوحّد قبل أن يستطيع إضافة أي شيء.
نظرنا في تلك القاعدة عن كثب ورفضناها. متتبع مشاكل Hermes نفسه لديه نشر رفع السقوف إلى 8,000 و3,000 حرف وما زال يصطدم بها، "مسبباً فشل استدعاءات memory.add وفقداناً متكرراً لتصحيحات المشغّل."
الكتابة الفاشلة لا تُنتج توحيداً. إنها تُنتج صمتاً، والشيء المفقود هو التصحيح الذي قدّمه المستخدم للتو. ملفنا التعريفي يُنزّل أضعف سطر فيه إلى المخزن القابل للبحث بدلاً من ذلك، والكتابة لا تفشل أبداً. اثنا عشر سطراً أُقحمت في ملف تعريفي من أربعة عشر سطراً: أربعة نُزّلت، وكل سطر قاله المستخدم فعلياً نجا.
ما علّمتنا إياه سبعة منتجات ذاكرة
المعيار الذي فتحه الفريق اختبر سبعة مزوّدي ذاكرة ذاتيي الاستضافة عبر 30 مستخدماً محاكياً، و1,579 جلسة، و71,060 دوراً، و3,750 سؤالاً لكل منها. سجّل الإجابة الخاطئة بسالب واحد، لا صفر. هذا الاختيار وحده كشف معظم ما يلي.
| المزوّد | الإجمالي | حقائق متغيرة | حقائق كاذبة مزروعة | تفضيلات شرطية | رموز النموذج لكل دور |
|---|---|---|---|---|---|
| Honcho | 0.477 | 0.643 | 0.181 | 0.606 | 13,716 |
| mem0 | 0.392 | 0.250 | 0.090 | 0.836 | 9,560 |
| Supermemory | 0.288 | 0.144 | 0.026 | 0.694 | 2,644 |
| Hindsight | 0.281 | 0.455 | 0.114 | 0.275 | 2,937 |
| RetainDB | 0.270 | 0.279 | 0.035 | 0.495 | 4,365 |
| OpenViking | 0.132 | 0.143 | 0.067 | 0.187 | 1,674 |
| Mnemosyne | 0.116 | 0.344 | -0.204 | 0.207 | 255 |
ثلاثة استنتاجات أهم من الترتيب نفسه
لا أحد يرفض بشكل موثوق ذاكرة كاذبة مزروعة. الأفضل، Honcho، أجاب فقط 36.4% من تلك الأسئلة بشكل صحيح تماماً وأكّد الكذبة المزروعة بنسبة 25.8% من المرات. Mnemosyne سجّل تحت الصفر: يؤكد القيم الخاطئة أكثر مما يؤكد الصحيحة.
الجميع يزداد سوءاً كلما نما التاريخ. من الجلسات 6 إلى 10 إلى الجلسات 46 إلى 50، نصيب mem0 من الإجابات الخاطئة ذهب من 8.3% إلى 22.1%. كل مزوّد تقريباً تضاعف.
الأنظمة التي بدت آمنة كانت في الغالب صامتة. OpenViking ترك 67% من الإجابات فارغة، Mnemosyne 50%. تحت أرضية صفرية كانت لتبدو تنافسية.
والاستنتاج الذي غيّر تصميمنا: الدليل كان يُسترجع ثم لا يُستخدم. في أسئلة الحقائق الكاذبة المزروعة، استرجع Honcho الذاكرة الداعمة الصحيحة ضمن أعلى ثلاث نتائج 81% من الوقت وما زال يجيب خطأً 18% من الوقت. الاسترجاع لم يكن عنق الزجاجة. ما فعله النظام بعد الاسترجاع هو العنق.
Honcho ينفق أيضاً 617,278 رمز نموذج لكل جلسة على اشتقاقه الخلفي. مخزننا بالكامل هو 875,553 رمزاً. تبنّيه كان سيعني إنفاق معظم المجموعة، كل جلسة، إلى الأبد، للإجابة عن أسئلة يجيب عنها فهرس بحث بالفعل.
هذا هو شكل قرار البناء مقابل التبني. نقاط قوتهم لم تكن عنق زجاجتنا. نقاط ضعفهم، نموذج لغوي يحذف طرفاً من تناقض دون بوابة ثقة، دون تدقيق، ودون تراجع، كانت بالضبط متطلباتنا.
الذاكرة التي تصلح نفسها هي نظامان
"ذاكرة تصلح نفسها" كانت على قائمة الفريق. البحث أظهر ما تعنيه تلك العبارة فعلياً، وهو ليس شيئاً واحداً.
ورقة عن مستويات تحكم الذاكرة قاست ذلك: القواعد الحتمية تسجّل 5% في فئة واحدة من التنظيف، ونموذج يسجّل 100% فيها، بينما النموذج نفسه يسجّل 0% في الحذف المُدرك للنية حيث القواعد تؤدي جيداً. القيام بكليهما يكسب 27.8 نقطة. الذاكرة ذاتية الإصلاح تحتاج تمريرة حتمية وتمريرة نموذج في نقاط مختلفة، أبداً واحدة أو الأخرى.

التمريرة الحتمية تجد التكرارات المطابقة بايتاً بالبايت والذاكرات التي تسمّي مسار ملف لم يعد موجوداً. ثلاثة عشر إشارة حقيقية في التشغيلة الأولى. تمريرة النموذج تجد التناقضات بين ذاكرات مترابطة وتقترح أيها يحل محل الأخرى.
بدون حراسة، كانت تمريرة النموذج صحيحة نحو 55% من الوقت، وكل خطأ كان بثقة عالية. تقاعدت من قاعدة إذن ثابتة باستخدام ملاحظة مرجعية عن جلسات سحابية. قتلت حقيقة عن شبكة توصيل محتوى (CDN) لمنتج واحد باستخدام ملاحظة إصدار منتج آخر، لأن كليهما ذكر "CloudFront".
سمحت لخريطة مؤشرات بالتقاعد من الذاكرة الحقيقية التي كانت تشير إليها. تقاعدت من قائمة ست قرارات مفتوحة لأن ذاكرة أحدث حلّت واحداً منها فقط.
أربعة حراس، وتراجع
أربعة حراس أصلحوا ذلك. ثقة عند 0.75 أو أعلى. تداخل حقيقي في الموضوع، موضوعان مشتركان أو كيانان مشتركان، أبداً تقنية واحدة مشتركة. نفس الفئة، فالقاعدة والحدث لا يتقاعد أحدهما من الآخر أبداً.
ونطاق كامل: يجب أن يقول الحكم إن الذاكرة الفائزة تغطي كل ما تدّعيه الذاكرة الخاسرة، و"عند الشك، قل جزئي" مكتوب في المطالبة. مع تفعيل الحراس، طبّق نفس المسح تلقائياً تقاعداً واحداً بالضبط، الصحيح، وأرسل ثلاثة توترات حقيقية إلى قائمة انتظار مراجعة.
سبب أمان تشغيله دون إشراف ليس أن النموذج جيد في هذا. إنه أن لا شيء يُحذف أبداً، وكل قرار مسجّل في سجل تدقيق، وأمر واحد يعكسه.
الذاكرات المتقاعدة تبقى في المخزن بعلامة مرئية وعقوبة ترتيب. الحقائق القديمة تتحلل بنصف عمر بدلاً من الاختفاء: ملاحظة مشروع تفقد نصف وزنها كل 150 يوماً، أما قاعدة قدّمها المستخدم فلا تتحلل أبداً.
لا تخفض الحراس أبداً لجعل القيّم يبدو منتجاً.
الذاكرة ادّعاء، فتحقق منه
هنا الجزء الذي لا يفعله أي شيء آخر درسناه.
ذاكرة كانت صحيحة في مايو ثم توقفت عن كونها صحيحة بهدوء غير مرئية. لا تتناقض مع شيء، ولا تسمّي مساراً ميتاً، إنها فقط تجلس هناك خاطئة.
كان لدينا واحدة تقول إن رموز إنستغرام "تُدوَّر تلقائياً أسبوعياً بواسطة Lambda". لم تكن هناك Lambda. لم يُدوَّر رمز طوال حياته. قُرئت كصحيحة لأشهر.

لذا كل ذاكرة الآن تُعامل كمجموعة من الادّعاءات، والادّعاءات تُفحص. نموذج يقرأ الذاكرة و��ملأ حجج نمطية (typed arguments) لمجموعة ثابتة من الفحوصات: هل هذا المسار موجود، هل هذا الفرع موجود، هل طلب السحب هذا مُدمج، هل مشروع Doppler هذا موجود، هل هذا السر موجود، هل هذه النسخة موجودة، هل يستجيب هذا الرابط.
النموذج لا يكتب أمراً أبداً. كل حجة تُتحقق منها قبل أن يعمل أي شيء، وتسع محاولات حقن مطالبات (prompt injection) ضده رُفضت جميعها. صدفة أوامر (shell) من تأليف نموذج بشكل مجدوَل هي ثغرة تنفيذ كود عن بُعد بخطوات إضافية.
التشغيلة الكاملة الأولى استخرجت 383 ادّعاءً من 365 ذاكرة. ثلاثمائة وثمانية وعشرون نجحت. خمسة وعشرون فشلت.
خمس ذاكرات أشارت إلى مشاريع Doppler لم تعد موجودة. خمسة طلبات سحب سمّتها الذاكرات كمفتوحة كانت مُدمجة. سبعة مسارات ملفات كانت ميتة. ذاكرة واحدة قالت إن مستودعاً خاص وكان عاماً.
ما يُسمح للذاكرة بقوله
قاعدتان خرجتا من الإخفاقات، وكلتاهما تتعلقان بما يُسمح للذاكرة بقوله.
حالة طلب السحب ليست حقيقة، إنها مزاج. تتغير في ثوانٍ. أداة الاستخراج الآن تقبل فقط "مُدمج"، لأن الدمج نهائي، وترفض مفتوح أو مغلق. أحد عشر ادّعاءً أُسقطت.
وفحص مقسَّم حسب ما يعنيه فشله. مسار غير موجود دليل: نظام الملفات يقول الحقيقة من أي مكان. رابط لا يستجيب ليس دليلاً، لأن غير القابل للوصول من هذا الحاسوب المحمول ليس نفسه معطلاً.
لذا فحص الرابط عاجز ميكانيكياً عن إرجاع "فشل". يمكنه إثبات الحياة. مُحظَّر عليه إثبات الموت. هذه القاعدة موجودة لأنني وصفت منتجاً سليماً محمياً بجدار ناري بـ"معطل" ثلاث مرات في تدقيق واحد، والقاعدة التي عليك تذكّرها ليست قاعدة.
الادّعاء الفاشل يكتب علامة "غير مُتحقَّق منه" على الذاكرة. الاسترجاع يعرضها بجانب النتيجة. الإنسان لا يحتاج للمساس بها؛ الذاكرة تصل موسومة.
ما سرقناه، وممن
ستة عشر عميلاً بحثياً قرأوا المستودعات، واستنسخوها عند إشارات مرجعية (commits) ثابتة، وشغّلوا الكود، وحاولوا دحض بعضهم البعض. من 64 ادّعاءً، نجا 55. اقتباسان "مُلفَّقان" وجدول واحد استُبدل بآخر. لهذا تتحقق من صحة عملاء البحث.
أخذ ورفض: العملاء الثلاثة
| المصدر | ما أخذناه | ما رفضناه، ولماذا |
|---|---|---|
| Hermes Agent | ملف التعريف الدائم الحضور المحدود مع رأس سعة. قائمة "لا تلتقط": إخفاقات معتمدة على البيئة، ادّعاءات سلبية عن الأدوات، أخطاء عابرة، حكايات لمرة واحدة. تصريحية لا أمرية: "المستخدم يفضّل X"، أبداً "افعل X دائماً"، لأن الذاكرة الأمرية تتجاوز الطلب الحالي. | الخطأ الصارم حين تمتلئ الذاكرة؛ يُفقد تصحيحات. عميل واحد لكل مخزن؛ نحن نشغّل عشرين. |
| Honcho | قواعد ملف التعريف: أربع بادئات ثابتة، سقف لكل إدخال، وأفضل اختبار قبول كتبه أحد: إن كانت القيمة يُحتمل أن تتغير خلال ستة أشهر، فلا تنتمي إلى البطاقة. وضع إعادة البناء: النموذج يُعيد توليد ملف التعريف دون رؤية القديم، فتسقط الادّعاءات اليتيمة. | Honcho نفسه. 48,000 سطر، أربعة حاويات، 151 مفتاح إعداد، لا أمر تصدير، 617,000 رمز لكل جلسة. عنوانه الرئيسي "التفكير الاستنتاجي" مبرمج بشكل ثابت إلى قائمة فارغة في الكود المشحون. |
| claude-mem | الفرضية: الالتقاط يجب ألا يعتمد على قرار النموذج بكتابة ذاكرة. ومتتبع مشاكله، كتالوج مجاني لأنماط فشل الخدمة الخلفية (daemon). | الخدمة الخلفية، وسيط المتجهات الجانبي، عملية النموذج الفرعية لكل استدعاء أداة. تقريباً كل مشاكله المفتوحة الست والثلاثين هي أخطاء دورة حياة الخدمة الخلفية. فهرس نصه الكامل لا يغطي الجدول الذي يحمل الذاكرات. |
أخذ ورفض: بقية المجال
| المصدر | ما أخذناه | ما رفضناه، ولماذا |
|---|---|---|
| supermemory | تأكيد. شركة ذاكرة متجهية ممولة تخلّت عن الاسترجاع المُقرَّر بالنموذج وقالت لماذا في تعليق كود: الاسترجاع يحدث عند كل مطالبة، لا فقط حين يختار النموذج إنفاق استدعاء أداة. إزالة التكرار لكل جلسة. الفشل المفتوح. | البوابة عند عتبة تشابه فقط. عتبة لم تكن تؤدي المهمة عنّا أيضاً. |
| Zep و Graphiti | كل حقيقة تحصل على نافذة صلاحية؛ التناقض يضع علامة على القديمة كمُتقاعَدة بدلاً من حذفها. | الرسم البياني (graph). لا Neo4j، لا حل كيانات، لا استدعاء نموذج لكل حافة. الدلالات تناسب ماركداون مسطح وفهرس واحد. |
| skill-creator من Anthropic | حلقة التقييم كبوابة ترقية: مهارة تُقبل فقط بنتيجة أفضل بشكل صارم على بيانات محجوزة، والتعادل يُرفض. | لا شيء. سوقهم لا يشحن أي إضافة ذاكرة، فلا يوجد تقارب أولي ننتظره. |
| context-mode | الشكل: فهرس بحث زائد صندوق رملي يعيد فقط الإجابة سريع بما يكفي لحلقة تفاعلية. | معاملته كذاكرة. إنه جدار حماية نافذة سياق، لكل جلسة، ولا يحقن أبداً من تلقاء نفسه. |
الاقتباس فرضية
حلقة واحدة من البحث تستحق قسمها الخاص، لأنها الخطأ الذي يوشك أن يقع فيه كل من يقرأ ورقة كهذه.
ورقة استرجاع موثّقة جيداً قاست توسيع المستندات على معيار قياسي. توسيع مستند بإعادة الصياغة سجّل أدنى من خط الأساس بلا توسيع. توسيعه بنسخ مصطلحاته الخاصة سجّل أعلى بكثير.
مطالبة الإثراء لدينا أخبرت النموذج صراحةً أن الكلمات التي يولّدها يجب ألا تظهر في الملاحظة. كنا نولّد النصف الخاسر، ونكبت النصف الفائز، ونعزّز النصف الخاسر بمعامل 1.75.
فطبّقنا النتيجة. أعدنا اشتقاق كل الـ474 ذاكرة. المجموعة الاختبارية ذهبت من 14 من 16 إلى 13 من 16. أسوأ.
خط أساس الورقة كان مستنداً مُفهرَساً دون مصطلحاته الخاصة، حيث نسخها مرة أخرى هو التوسيع. مخزننا يُفهرس بالفعل العنوان والوصف والنص. نسخهما في حقل الاسم المستعار (alias) كان تكراراً، وأزاح إعادات الصياغة، التي كانت التوسيع الحقيقي الوحيد الذي لدينا.
أُعيد الأمر إلى ما كان عليه، وأُعيد الاشتقاق، وعاد إلى 14 من 16. أربعون دقيقة، وكانت ستكون صفراً لو قسنا قبل أن نُصدّق.
الاقتباس فرضية عن نظام شخص آخر.
نظام الذاكرة بعدها فعل شيئاً يستحق الملاحظة. التقط الفرضية، تلقائياً، عند نهاية الجلسة. لم يلتقط الدحض.
الملاحظة التي تقول "أدرج المصطلحات" ما زالت في المخزن اليوم كذاكرة حية. الالتقاط يكتب ما كان يُعتقد؛ لا يعرف متى قُلب الاعتقاد بعد ساعة. هذه مشكلة مفتوحة، وهي على القائمة أدناه.
ترك العميل يكتب مهاراته الخاصة يجعله أسوأ
طلب الفريق إنشاء مهارات مستقلة: حين يتكرر إجراء، يجب على العميل كتابته كمهارة قابلة لإعادة الاستخدام والإعلان عن ذلك. إنها قوة خارقة، والبحث يقول إن النسخة الساذجة منها عبء.
على معيار قياسي من 87 مهمة بفحوصات حتمية، المهارات التي ولّدها العميل لنفسه هبطت 8.1 نقطة تحت عدم وجود مهارات على الإطلاق، على Claude Code بأقوى نموذج. نفس النمط ظهر على بيئتي عمل أخريين.
المهارات المنسّقة بشرياً رفعت معدل النجاح من 33.9% إلى 50.5%. ونموذج يُسأل أي مهارتين أفضل يختار الأسوأ 84 مرة من كل 100 حين تكون الفجوة حقيقية.
الطول مهم بطريقة لا يتوقعها أحد. المهارات المُختصرة كسبت 19 نقطة، القياسية 21.5، المفصّلة 14.5، الشاملة 0.7. إنه تلّة، لا منحدر. بعد صفحة واحدة، التوثيق يتوقف عن المساعدة.
عكس الاستقلالية
فالنسخة التي بنيناها هي عكس الاستقلالية. تكتشف فقط إجراءً يتكرر عبر ثلاث جلسات منفصلة أو أكثر، وتعرف ذلك بالعدّ، لأن الـ67,704 دور من نصوص المحادثات مُفهرَسة، فـ"هل هذا متكرر" استعلام قاعدة بيانات بدلاً من تخمين نموذج.
تكتب المهارة خاملة، فلا يدخل وصفها سياق أحد أبداً. البوابة هيكلية، أبداً حكماً نثرياً: تسمية فشل ملموس تمنعه المهارة، وكل مسار تستشهد به يُتحقق منه مقابل نظام الملفات. الإنسان فقط من يرقّي.
اختُبرت مقابل ستة مسودات عدائية: تظليل مهارة مدمجة، "توفّر وقتاً"، رُئيت مرة واحدة، مسارات مُخترَعة، جسم متضخم: كلها رُفضت، والصالحة قُبلت.
التشغيلة الحقيقية الأولى عبر ثلاثين جلسة لم تجد شيئاً لصياغته. كانت تلك الإجابة الصحيحة. مهارة واحدة رُقّيت منذ ذلك الحين، حارس ضد أمر نشر يستهدف الإنتاج بصمت.
ما زال خاطئاً
الصدق أرخص من البديل، فإليك البقايا.
الطبقة الدائمة الحضور ما زالت أثقل بثلاث إلى أربع مرات من Hermes، عند نحو 24,000 بايت اليوم، وهي فهرس لا ملف تعريف. الخفة التي أعجبنا بها تأتي من آلية رفضناها، ولم نجد بعد آلية ألطف تنتج نفس الانضباط.
الاتساق غير مفروض عبر الحدود. لحظة شحن ملف تعريف المستخدم، كل حقيقة فيه وُجدت مرتين. القيّم يفحص الذاكرة مقابل الذاكرة، لا ملف التعريف مقابل المخزن، ولا الذاكرة مقابل ملف تعليمات المشروع نفسه. Honcho هو الدليل على أن عرضين مشتقَّين لحقيقة واحدة يختلفان في النهاية والنموذج يتبع الخطأ منهما.
الالتقاط يُطلق عند نهاية الجلسة وقبل الضغط (compaction)، وهذا بالضبط حين يكون تلخيص واثق لتسلسل لم ينجح قط أكثر احتمالاً. الاقتباس المُدحوض أعلاه هو المثال الحي.
الذاكرة قابلة للتحقق بقدر فحوصاتها فقط. المسار، الفرع، طلب السحب، السر، والنسخة يمكن التحقق منها. "ثلاثة آلاف من تلك الصفوف تنتمي إلى الصفحة" لا يمكن، و"المستخدم يفضّل X" ليس ادّعاءً على الإطلاق.
المخزن ما زال يمكن أن يحمل عبارة خاطئة بهدوء؛ فقط لا يمكن أن يحمل مساراً خاطئاً بهدوء.
وذاكرة نظام الذاكرة عن نفسه أصبحت قديمة. ملاحظة واحدة تشير إلى ملف ربط حذفه النظام حين نقل ربطاته إلى إضافة. إنها جالسة في قائمة انتظار المراجعة، موسومة غير مُتحقَّق منها، تنتظر مثل البقية.
القواعد الخمس
إن أخذت شيئاً واحداً من هذا الدفتر، خذ القائمة.
| القاعدة | الرقم خلفها |
|---|---|
| عدّ أسطر وبايتات MEMORY.md الخاص بك | 200 سطر أو 25,000 بايت، أيهما يأتي أولاً، يُقتطع من الأسفل |
| لا نموذج في مسار المطالبة | 8.6 ثانية مقابل 18 ميلي ثانية |
| قِس على مطالبات حقيقية، لا مجموعتك الاختبارية الخاصة | 22 من 23 أصبحت 17% |
| لا تحذف أبداً، أحلّ محلها مع تراجع | القيّم كان صحيحاً 55% من الوقت بثقة عالية |
| عامل كل ذاكرة كادّعاء وافحصه | 383 ادّعاءً، 25 خاطئاً، ورابط قد لا يثبت الموت أبداً |
الدرس الأكبر هو ذلك الذي يواصل المجال بأكمله إعادة اكتشافه من الجانب الخاطئ. نصف الذاكرة المتعلق بالاسترجاع، إيجاد الملاحظة الصحيحة، مدروس جيداً ومحلول في معظمه بفهرس بحث لا يكلف شيئاً. نصف التحكم، تقرير ما يمكن أن تدّعيه ملاحظة، ومتى تُستبدَل، وكيف تُكشَف الكاذبة، هو حيث تتعفن الذاكرة.
لا أحد يبيع ذلك النصف، لأنه ليس ميزة. إنه انضباط، ويجب تجميعه في الكود حتى لا يضطر أحد لتذكّره.
إن أردت رؤية بقية ما يعمل عليه Boon، ابدأ بـClaude Code للمصممين، وخوادم MCP التي تمنح العميل أيادي، وعملاء الذكاء الاصطناعي للمصممين، وما تكلفه رموز العميل، وهي الفاتورة التي تُبقيها هذه الذاكرة عند الصفر. إن أردت هذا النوع من العناية على علامتك التجارية الخاصة، Brainy Studio هو حيث يبدأ الأمر.
الأسئلة الشائعة
لماذا ينسى Claude Code أشياء أضعها في MEMORY.md؟
يحمّل Claude Code فهرس الذاكرة التلقائية حتى 200 سطر أو 25,000 بايت، أيهما يُصادَف أولاً، ويتجاهل الباقي بصمت. الملف يُضاف إليه من الأحدث ويُقتطع من الأسفل، فالذاكرات الأحدث تسقط أولاً. إن كان العميل يتجاهل قاعدة أضفتها مؤخراً، عدّ أسطر الملف وبايتاته.
هل يجب أن أثبّت إضافة ذاكرة لـ Claude Code؟
تحقق من شيئين: هل تشغّل نموذجاً في مسار المطالبة، مما يضيف ثواني إلى كل مطالبة، وهل تشغّل خدمة خلفية (daemon)، حيث تعيش معظم مشاكل الإضافة الأكبر المفتوحة. ما أصلح مشكلتنا كان فهرس نص كامل يُبحث فيه عند كل مطالبة، وتمريرات نموذج غير متزامنة، وخطوة تحقق. لا شيء من ذلك يحتاج خدمة خلفية.
هل البحث بالكلمات المفتاحية جيد بما يكفي فعلاً لذاكرة عملاء الذكاء الاصطناعي؟
لهذه المهمة، نعم. على معيار الاسترجاع القياسي بدون أمثلة سابقة (zero-shot)، كل نموذج تضمين (embedding) أحادي المتجه خسر أمام البحث البسيط بالكلمات المفتاحية BM25، والشيء الوحيد الذي تفوّق عليه، معيد ترتيب بمُشفّر متقاطع (cross-encoder reranker)، يكلف نحو 1.5 ثانية من تحميل النموذج مقابل ميزانية 18 ميلي ثانية. توسيع المستندات، كتابة الكلمات التي سيكتبها شخص فعلياً في الفهرس بشكل غير متزامن، هي التقنية التي تساعد، وهي مجانية.
كيف تمنعون الذاكرة من تصديق شيء خاطئ؟
بطريقتين. قيّم لا يحذف أبداً: التناقض يضع علامة على الذاكرة الأقدم كمُتقاعَدة بعلامة مرئية وعقوبة ترتيب، كل قرار مسجَّل، وأمر واحد يعكسه. ومُتحقِّق يعامل كل ذاكرة كادّعاءات نمطية، يفحصها مقابل الواقع، ويضع علامة غير مُتحقَّق منها على الذاكرة حين يفشل أحدها.
كم يكلف تشغيل نظام الذاكرة هذا؟
صفر دولار على الهامش. الاسترجاع استعلام قاعدة بيانات محلي ولا يكلف شيئاً لكل مطالبة. كل استدعاء نموذج، الالتقاط عند نهاية الجلسة، إثراء الذاكرات الجديدة، والمسح اليومي للتناقضات، يمر عبر الاشتراك المدفوع أصلاً، أبداً واجهة برمجة تطبيقات مقاسة (metered API). التكلفة الحقيقية هي حصة الخطة، تقريباً استدعاء صغير واحد لكل جلسة.
Boon runs Brainy's studio on this memory. If you want a design partner whose AI remembers your brand rules, your file conventions and your last three decisions, start a project with Brainy Studio.
Get Started




