CORVUS: Context Optimization and Reduction Via Underlying Synchronization for LLM Coding Agents
يقدم CORVUS بنية مسار مبتكرة لوكلاء البرمجة القائمين على النماذج اللغوية الكبيرة (LLMs) تعمل على فصل إجراءات قراءة الملفات عن ملاحظاتها من خلال الحفاظ على سجل متزامن لمحتويات الملفات الحالية، مما يؤدي إلى القضاء على اللقطات القديمة وإعادة القراءات المتكررة لتقليل استهلاك الرموز (tokens) ودورات الاستدلال بشكل كبير مع الحفاظ على الأداء.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل عالماً تمتلك فيه مساعداً آلياً فائق الذكاء يمكنه كتابة أكواد الكمبيوتر، وإصلاح الأخطاء البرمجية، وبناء برامج كاملة بمجرد التحدث إليك. هذا ليس خيالاً علمياً؛ بل هو واقع "وكلاء البرمجة بنماذج اللغات الكبيرة (LLM coding agents)". هؤلاء هم نماذج ذكاء اصطناعي يعملون كمطورين مبتدئين: يفكرون في المشكلة، ويتفحصون الملفات، ويجرون التعديلات، ويتحققون من عملهم. ولكن هنا تكمن المشكلة: هؤلاء الروبوتات لديهم مشكلة في الذاكرة قصيرة المدى. لكي يتذكروا ما فعلوه، يحتفظون بمذكرات جارية لكل فكرة، وإجراء، ونتيجة. وكلما زاد تعقيد المهمة، طالت هذه المذكرات. وفي النهاية، تصبح المذكرات ضخمة جداً لدرجة أن الروبوت يصاب بالارتباك، وينسى التفاصيل الأكثر أهمية، ويبدأ في ارتكاب أخطاء سخيفة لأنه يحاول قراءة كتاب مكون من 500 صفحة فقط ليتذكر ما فعله قبل خمس دقائق. هذه الظاهرة، حيث تجعل المعلومات الزائدة الذكاء الاصطناعي أغبى، تسمى "تعفن السياق" (context rot).
إليك CORVUS، وهو نظام ذكي جديد مصمم لإصلاح فوضى الذاكرة هذه. بدلاً من ترك مذكرات الروبوت تنمو دون سيطرة بملاحظات قديمة وغير محدثة، يعمل CORVUS مثل مكتبة سحرية حية. فهو يدرك أن الكود يتغير باستمرار. إذا قرأ الروبوت ملفاً، ثم عدله، ثم قرأه مرة أخرى، فإن الملاحظة القديمة في المذكرات تصبح مجرد نفايات عديمة الفائدة. لذا يمنع CORVUS الروبوت من كتابة محتوى الملف في كل مرة. بدلاً من ذلك، يحتفظ بـ "قائمة متزامنة" للملفات التي يحتاجها الروبوت. وقبل أن يتخذ الروبوت قراراً جديداً، يقوم CORVUS بهدوء بفحص ملفات الكمبيوتر الفعلية، ويجلب أحدث نسخة منها، ويقدمها للروبوت. بهذه الططريقة، يمتلك الروبوت دائماً أحدث وأوضح المعلومات دون مذكرات متضخمة بصفحات مكررة وفاقدة للصلاحية. والنتيجة؟ يعمل الروبوت بشكل أسرع، وتكلفة تشغيله أقل، ويرتكب أخطاء أقل، مع الحفاظ على ذاكرته خفيفة ومركزة.
المشكلة: فخ "اللقطة القديمة"
لفهم سبب أهمية CORVUS، نحتاج أولاً إلى النظر في كيفية عمل وكلاء البرمجة هؤلاء عادةً. تخيل أنك تحاول إصلاح صنبور يسرب الماء، لكنك تفعل ذلك وأنت معصوب العينين، ولا يمكنك رؤية الغرفة إلا من خلال سلسلة من الصور التي التقطتها سابقاً.
في الطريقة التقليدية، في كل مرة يأخذ فيها الوكيل (روبوتنا) نظرة على ملف، فإنه يأخذ "لقطة" (snapshot) لهذا الملف ويلصقها في سجل تاريخه. إذا تغير الملف لاحقاً — بسبب قيام الروبوت بتعديله، أو بسبب قيام مطور بشري بإجراء تعديل عليه — فإن تلك اللقطة القديمة في السجل تبقى كما هي تماماً. وتصبح قديمة/غير محدثة (stale).
وجد مؤلفو الورقة البحثية أن هذا يسبب مشكلتين رئيسيتين:
- القراءات المكررة: لأن اللقطة القديمة مدفونة في تاريخ طويل، غالباً ما ينسى الروبوت أنه نظر بالفعل إلى الملف. فيقرأ الملف مرة أخرى، ويأخذ لقطة أخرى، ويلصقها. هذا يشبه قراءة نفس الصفحة من كتاب خمس مرات لأنك فقدت مكان توقفك. في اختباراتهم، وجدوا أن الرماوت كان يعيد قراءة الملفات التي رآها بالفعل في 26% من الحالات.
- أخطاء السياق القديم: والأسوأ من ذلك، قد يحاول الروبوت تعديل ملف بناءً على لقطة قديمة. تخيل أن الروبوت يرى سطراً من الكود يقول "السطر 10: أشعل الضوء"، ولكن في الواقع، تم حذف هذا السطر قبل خمس دقائق. يحاول الروبوت تعديل "السطر 10"، فيفشل، ويصاب بالارتباك، ويضطر لقضاء وقت وطاقة إضافيين لمعرفة ما حدث خطأ.
كانت الطريقة القديمة للإصلاح "تفاعلية". الأمر يشبه انتظار حقيبة ظهرك حتى تمتلئ بالصخور لدرجة أنك لا تستطيع رفعها، ثم تحاول إخراج بعض الصخور منها. تجادل الورقة بأن هذا متأخر جداً. الحل الحقيقي هو منع وضع الصخور في حقيبة الظهر من الأساس.
الحل: "المزامنة الحية"
يقترح المؤلفون نظام CORVUS (تحسين السيا وتقليله عبر المزامنة الأساسية). فكر في CORVUS ليس كمذكرات، بل كـ بث مباشر.
بدلاً من لصق محتوى الملف في سجل التاريخ، يستخدم CORVUS أداة خاصة تسمى sync_file. عندما يقول الروبوت: "أحتاج إلى النظر في speech_recognition.py"، لا يقوم CORVUS بنسخ النص في السجل. بدلاً من ذلك، يضع ملاحظة صغيرة وخفيفة الوزن في السجل تقول: "مزامنة: speech_recognition.py".
خلف الكوالب، يحافظ CORVUS على مجموعة ملفات متزامنة (Synced File Set). هذه قائمة خاصة بالملفات التي يعمل عليها الروبوت حالياً. وقبل أن يتخذ الروبوت أي قرار جديد (في كل دورة استدلال)، يقوم CORVUS بإجراء "مزامنة سياق" سريعة. يذهب إلى الكمبيوتر الفعلي، ويجلب النسخة الحالية والأحدث من كل ملف في تلك القائمة، ويحقنها في "البرومبت" (الأمر) الخاص بالروبوت.
هذا يغير كل شيء:
- لا تكرار: لا يرى الروبوت أبداً نسختين من نفس الملف. هو يرى فقط النسخة الوحيدة الحالية.
- لا بيانات قديمة: إذا تغير ملف ما، ففي المرة التالية التي يفكر فيها الروبوت، سيحصل على النسخة الجديدة تلقائياً. لن يحاول أبداً تعديل كود لم يعد موجوداً.
- وزن أخف: يظل سجل التاريخ صغيراً لأنه يحتوي فقط على أفكار وأفعال الروبوت، وليس كتل ضخمة من نصوص الملفات.
ما وجدوه: أسرع، أرخص، وأذكى
اختبر الباحثون CORVUS في تحديين صعبين للبرمجة: SWE-POLYBENCH_VERIFIED (والذي يتضمن مهام بلغات Java و JavaScript و TypeScript) و SWE-BENCH PRO (الذي يتميز بمشكلات معقدة على مستوى الشركات). أجروا هذه الاختبارات على أربعة نماذج ذكاء اصطنا-ي قوية، بما في ذلك CLAUDE SONNET 4 و QWEN3-CODER-480B.
كانت النتائج مبهرة، حيث أظهرت أن الحفاظ على حداثة السياق يجعل الذكاء الاصطناعي أكثر كفاءة بشكل كبير:
- قراءة أقل هدراً: قلل CORVUS من قراءات الملفات المكررة بنسبة تتراوح بين 22% إلى 86%. توقف الروبوت عن إضاعة الوقت في إعادة قراءة الملفات التي عرفها بالفعل.
- خطوات أقل: لأن الروبوت لم يكن يرتبك بسبب البيانات القديمة، فقد أنهى المهام بشكل أسرع. انخفض عدد دورات الاستدلال (الخطوات) بنسبة 15% إلى 37%. على سبيل المثال، في أحد النماذج، انخفض متوسط الخطوات من 45.03 إلى 28.22.
- أوامر (Prompts) أقصر: كان "البرومبت" النهائي (الرسالة المرسلة للذكاء الاصطنا لإنهاء المهمة) أقصر بنسبة 15% إلى 32%.
- توفير المال: بما أن تكلفة الذكاء الاصطناعي تعتمد على مقدار النص الذي يعالجه، فقد تراكمت هذه المدخرات. في بعض المهام، انخفضت التكلفة بنسبة تصل إلى 50.28%. على سبيل المثال، المهمة التي كانت تكلف 5.27 دولار انخفضت إلى 2.62 دولار.
- السرعة: انتهت العملية بأكملها بشكل أسرع بنسبة تصل إلى 40% من حيث الوقت الإجمالي.
والأهم من ذلك، تشير الورقة إلى أن الروبوت لم يصبح أغبى بسبب قلة النصوص التي يقرأها. فقد ظلت نسبة النجاح (مدى قدرته على إصلاح الخطأ بشكل صحيح) مماثلة للطريقة القديمة، وفي بعض الحالات، تحسنت قليلاً.
الصورة الكبيرة
تحقق المؤلفون أيضاً مما إذا كان CORVUS يعمل مع الطرق الأخرى التي تحاول تنظيف السجلات الفوضوية. ووجدوا أن CORVUS وهذه الأدوات "التفاعلية" للتنظيف هما صديقان حميمان. CORVUS يمنع حدوث الفوضى من المصدر (upstream)، بينما تقوم الأدوات الأخرى بتنظيف ما تبقى (downstream). وعند استخدامهما معاً، وفروا المزيد من الرموز (tokens) والمال.
باختاً، يشير CORVUS إلى أنه لكي يكون وكلاء البرمجة بالذكاء الاصطناعي فعالين حقاً، لا ينبغي لهم فقط أن يكونوا جيدين في تذكر الماضي؛ بل يجب أن يكونوا جيدين في البقاء على اتصال بالحاضر. من خلال فصل عملية "قراءة ملف" عن "محتوى الملف"، وبدلاً من ذلك الحفاظ على مزامنة حية مع قاعدة الأكواد، يمكننا بناء وكلاء أسرع، وأرخص، وأقل عرضة لارتباك "تعفن السياق". لا تدعي الورقة أنها تحل كل مشكلة في الذكاء الاصطناعي، لكنها تظهر أن تغييراً هيكلياً بسيطاً — استبدال المذكرات الثابتة ببث مباشر — يمكن أن يحدث فرقاً هائلاً في مدى جودة عمل هؤلاء المساعدين الرقميين.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.