← أحدث الأبحاث
🤖 machine learning

Why Does CLAUDE.md Keep Growing? Catastrophic Remembering in Agentic Coding

تحدد هذه الورقة "التذكر الكارثي" كسبب للنمو غير المحدود في مطالبات البرمجة الوكيلة مثل CLAUDE.md، موضحة أن إلحاق التعليمات أمر زهيد بينما حذفها مكلف حوسبياً، وتقترح أن تضمين الاستدلال الكامن في تعليقات المطالبات يمكن أن يوقف هذا التباعد بفعالية ويحسن أداء اتباع التعليمات بشكل كبير.

المؤلفون الأصليون: Kushal Chakrabarti

نُشر 2026-08-12
📖 6 دقيقة قراءة🧠 قراءة متعمّقة

المؤلفون الأصليون: Kushal Chakrabarti

البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل

تخيل أنك تعلم مساعداً آلياً ذكياً جداً، ولكنه نساي قليلاً، كيف يقوم بمهمة محددة، مثل كتابة تدوينات أو إصلاح الأكواد البرمجية. تبدأ بإعطائه قائمة بسيطة من القواعد: "استخدم ثلاث فقرات"، "لا تستخدم كلمة 'جداً'"، و"أنهِ دائماً بابتسامة". هذا ما يسمى بالتوجيه (Prompt). في عالم الذكاء الاصطناعي، تشبه هذه التوجيهات كتيبات التعليمات للروبوتات.

الآن، تخيل أن الروبوت ارتكب خطأً. تقوم بإصلاحه عبر إضافة قاعدة جديدة: "حسناً، وتأكد أيضاً من استخدام خمس نقاط بالضبط". يحاول الروبوت مجدداً، فيفشل، فتضيف قاعدة أخرى: "وتذكر أن تبدأ كل جملة بحرف كبير". مع مرور الوقت، تصبح هذه القائمة من القواعد أطول وأطول. في علوم الحاسوب، هناك مشكلة شهيرة تسمى النسيان الكارثي (catastrophic forgetting)، حيث يتعلم الروبوت شيئاً جديداً ويمحو بالخطأ ذاكرته للأشياء القديمة. لكن هذا البحث يتحدث عن العكس تماماً: التذكر الكارثي (catastrophic remembering). وهذا يحدث عندما يستمر الروبوت (أو الإنسان الذي يدير الروبوت) في إضافة القواعد دون حذف القديم منها أبداً، حتى عندما لا تعود هناك حاجة إليها. تصبح القائمة ضخمة وفوضوية لدرجة أن الروبوت يصاب بالارتباك، ويتباطأ، ويبدأ في ارتكاب الأخطاء مجدداً. السؤال الكبير هو: لماذا تستمر هذه القائمة في النمو إلى الأبد، وكيف نوقف ذلك؟

لغز القائمة التي لا تنتهي أبداً

قرر مؤلف هذا البحث، كوشال تشاكرابارتي من "ساوث بارك كومونز"، التحقيق في سبب نمو قوائم التعليمات "الوكيلية" (الملفات التي غالباً ما تحمل أسماء مثل CLAUDE.md أو AGENTS.md في المشاريع البرمجية) دون حدود. لقد درس ما يقرب من 1,870 مشروعاً برمجياً حقيقياً على GitHub وتتبع حياة أكثر من 247,000 تعليمات فردية.

وجدوا نمطاً غريباً: هذه القوائم نادراً ما تتقلص. بدلاً من ذلك، تنمو بمعدل 4.9 تعليمات جديدة لكل تحديث واحد للملف. وعلى مدار عمر الملف، يزداد عدد التعليمات بأكثر من الضعف، حيث ينمو بنسبة 226%. ينتهي الأمر بالملف بمتوسط 39 تعليمات، لكن بعضها يحتوي على أكثر من 100.

سأل الباحثون: لماذا لا يقوم الناس ببساطة بحذف القواعد القديمة غير المفيدة؟

اكتشفوا أن الجاني ليس أن القواعد "قديمة" (منتهية الصلاحية) أو أن القواعد السيئة تموت مبكراً. بدلاً من ذلك، المشكلة هي الاستدعاء الناقص (imperfect recall). فكر في الأمر هكذا: عندما تضيف قاعدة جديدة إلى القائمة، فأنت تعرف لماذا أضفتها. ربما أضفت "استخدم ثلاث فقرات" لأن الروبوت كان يكتب أربعاً. لكن هذا الـ "لماذا" هو مجرد فكرة في رأسك، وليس مكتوباً.

مع مرور الوقت وتعديل أشخاص آخرين للملف، أو مع تغير المشروع، يتلاشى ذلك السبب الأصلي. إذا نظرت إلى القائمة بعد ستة أشهر، سترى القاعدة "استخدم ثلاث فقرات"، لكن ليس لديك أدنى فكرة عن سبب وجودها. هل كانت لأن الروبوت كان ثرثاراً؟ أم لأن المدير طلب ذلك؟ بدون ذلك السبب، يبدو حذف القاعدة أمراً محفوفاً بالمخاطر. أنت تخشى أنه إذا حذفتها، فسوف يتعطل الروبوت مجدداً. لذا، تتركها كما هي. وفي الوقت نفسه، تستمر في إضافة قواعد جديدة لمشاكل جديدة. النتيجة هي قائمة قواعد متضخمة ومربكة لا يفهمها أحد بعد الآن. يطلق المؤلف على هذا اسم التذكر الكارثي: الاحتفاظ بكل شيء كان يجب عليك نسيانه.

تأثير "الجرافة"

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

لكن المثير للدهشة هو أنه حتى بعد هذا "الحرق"، تعود الحديقة للنمو مجدداً. تبدأ القائمة في النمو مرة أخرى فوراً، وبنفس السرعة السابقة. وهذا ما يسمى تأثير السقاطة (ratchet effect). ينخفض الحجم، لكن معدل النمو لا يتغير. السبب الجذري -وهو حقيقة أن الناس لا يستطيعون تذكر لما why أضيفت القواعد في المقام الأول- لم يتم إصلاحه أبداً، لذا تبدأ القائمة في الامتلاء مرة أخرى.

سحر "التعليقات"

إذاً، كيف نمنع القائمة من النمو إلى الأبد؟ يقترح البحث حلاً يستخدمه مهندسو البرمجيات منذ عقود: التعليقات (comments).

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

قاموا بإعداد محاكاة حيث كان على "المسؤولين" (وكلاء ذكاء اصطناعي) بناء وإصلاح توجيه (prompt). في مجموعة واحدة، كان عليهم كتابة التعليمات دون أي ملاحظات. وفي المجموعة الأخرى، سُمح لهم بإضافة تعليق بجانب كل تعليمة يشرح السبب. على سبيل المثال، بجانب "استخدم ثلاث فقرات"، قد يكون التعليق: "أُضيفت لأن الروبوت استمر في كتابة أربع فقرات في الجولة الثالثة".

كانت النتائج دراماتيكية.

  • بدون تعليقات: نمت التوجيهات لتصبح أكبر بنسبة 211.3% من الحجم المثالي والأدنى المطلوب للقيام بالمهمة.
  • مع التعليقات: ظلت التوجيهات بالحجم المثالي تقريباً، حيث نمت بنسبة 1.4% فقط عن الحد الأدنى.

لقد عملت التعليقات مثل آلة زمن. لقد حافظت على "الاستدلال الكامن" (السبب الخفي) لكل قاعدة. عندما ينظر المسؤول إلى القائمة لاحقاً، يمكنه رؤية التعليق، وفهم ما إذا كانت القاعدة لا تزال ضرورية، أو إدراك أنها لم تعد ضرورية، وحذفها بأمان. لقد أزالت التعليقات 99.3% من التعليمات الزائدة وغير الضرورية.

هل يعمل هذا بشكل أفضل حقاً؟

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

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

الخلاصة الكبرى

يختتم البحث بسؤال مرح ولكن جاد: "إذا كانت اللغة الإنجليزية هي لغة البرمجة الجديدة، فلما لماذا لا نستخدم التعليقات بعد؟"

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

غارق في أبحاث مجالك؟

تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.

جرّب Digest →