SWE-CI: Evaluating Agent Capabilities in Maintaining Codebases via Continuous Integration
تقدم الورقة البحثية SWE-CI، وهو أول معيار مرجعي على مستوى المستودع مبني على حلقات التكامل المستمر لتقييم قدرة وكلاء النماذج اللغوية الكبيرة على صيانة الكود البرمجي على المدى الطويل من خلال مطالبتهم بحل مهام تطور معقدة ومتعددة الالتزامات (commits) عبر فترات ممتدة، مما ينقل التركيز من مجرد الصحة الوظيفية الساكنة ذات الخطوة الواحدة إلى جودة الكود الديناميكية والمستدامة.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أنك توظف مهندسًا معماريًا جديدًا لبناء منزل.
الطريقة القديمة (المعايير السابقة):
تعطي المهندس المعماري مخططًا واحدًا: "ابنِ مطبخًا به مغسلة وموقد". فيسلمك المطبخ. تتحقق من المغسلة والموقد، وهما يعملان! فتعطيه نجمة ذهبية.
ما المشكلة؟ أنت لا تعرف ما إذا كان قد استخدم مواد رخيصة ستتعفن خلال شهر، أو ما إذا كان قد بنى المطبخ بطريقة تجعل من المستحيل إضافة غرفة طعام لاحقًا. في العالم الحقيقي، المنازل لا تُبنى في يوم واحد؛ بل يتم العيش فيها، وتغييرها، وتوسيعها على مدار عقود. الاختبارات القديمة كانت تتحقق فقط مما إذا كان المنزل "جاهزًا" في اليوم الأول، وليس مما إذا كان بإمكانه الصمود بينما تكبر العائلة فيه.
الطالطريقة الجديدة (SWE-CI):
تقدم هذه الورقة البحثية اختبارًا جديدًا يسمى SWE-CI. بدلًا من مطالبة الذكاء الاصطناعي ببناء مطبخ لمرة واحدة، يقولون له:
"إليك هذا المنزل كما كان في عام 2020. على مدار الـ 71 يومًا القادمة، ستحتاج العائلة إلى إضافة غرفة أطفال، ثم مكتب منزلي، ثم نظام ألواح شمسية، وأخيرًا طابق ثاني. مهمتك ليست فقط بناء الغرفة الأولى؛ بل هي الحفاظ على بقاء المنزل بأكله قائمًا، آمنًا، وسهل التوسع خلال الـ 71 يومًا القادمة."
الفكرة الجوهرية: "المنزل الذي يستمر في التغير"
قام الباحثون ببناء معيار باستخدام 100 مشروع برمجيات حقيقي (مثل مكتبات Python الشهيرة). لم ينظروا فقط إلى نقطتي البداية والنهاية؛ بل نظروا إلى الرحلة بأكملها بينهما.
- الجدول الزمني: في المتوسط، تغطي كل مهمة 233 يومًا من التاريخ الحقيقي مع 71 تحديثًا (commit).
- التحدي: يجب على الذكاء الاصطناعي أن يعمل كفريق برمجيات لا يكتفي بإصلاح خطأ ما ثم يرحل. عليه أن يحافظ على "صحة" الكود أثناء إضافة ميزات جديدة، وإصلاح الميزات القديمة، والتأكد من أن الأشياء الجديدة لا تكسر الأشياء القديمة.
كيف يختبرون الذكاء الاصطناعي: فريق "المهندس والمعماري والبنّاء"
لجعل الأمر واقعيًا، لم يطلبوا من الذكاء الاصطناعي "الإصلاح" فحسب؛ بل قسموا الذكاء الاصطناعي إلى دورين، محاكيين بذلك شركة برمجيات حقيقية:
- المهندس المعماري (العقل): يقوم هذا العميل بفحص الأجزاء المعطلة من المنزل (الاختبارات الفاشلة) ويقول: "حسنًا، السقف يسرب، ونحن بحاجة إلى نافذة جديدة. لنضع خطة لإصلاح التسريب أولاً، لكن لا تقلق بشأن النافذة الآن."
- البنّاء (اليدان): يأخذ هذا العميل الخطة ويقوم فعليًا بكتابة الكود لإصلاح التسريب.
يفعلون ذلك في حلقة: خطط ← ابنِ ← اختبر ← خطط ← ابنِ.
إذا قام البنّاء بإصلاح التسريب ولكنه هدم جدارًا بالخط الخطأ أثناء القيام بذلك، يجب على المهندس المعماري ملاحظة ذلك في الجولة التالية وإصلاح الجدار. تتكرر هذه الدورة عشرات المرات.
النتيجة: "درجة جاهزية المستقبل" (EvoScore)
في الاختبارات القديمة، إذا كان الكود يعمل في النهاية، تحصل على 100%. في SWE-CI، يستخدمون درجة خاصة تسمى EvoScore.
فكر في الأمر مثل درجة الائتمان لجودة الكود:
- إذا أصلح الذكاء الاصطناعي مشكلة اليوم ولكنه جعل الكود فوضويًا للغاية بحيث يصبح إصلاح مشكلة مختلفة في الأسبوع المقبل كابوسًا، فإن درجته تنخفض.
- إذا أصلح الذكاء الاصطناعي المشكلة اليوم بطريقة نظيفة ومنظمة تجعل عمل الأسبوع المقبل سهلاً، فإن درجته ترتفع.
لديهم أيضًا فحص "التراجع" (regression). إذا أصلح الذكاء الاصطناعي خطأً ولكنه تسبب بالخطأ في تعطل ميزة كانت تعمل بشكل مثالي من قبل، فهذا "تراجع" (مثل إصلاح تسريب ولكن تسبب في انفجار الأنابيب). وجدت الورقة أن معظم نماذج الذكاء الاصطناعي سيئة جدًا في هذا؛ فهي غالبًا ما تكسر أشياء أكثر مما تصلح عند العمل على تطوير الكود لفترة طويلة.
ماذا وجدوا؟
- الذكاء الاصطناعي يتحسن، لكنه لم يصل بعد: النماذج الأحدث أفضل بكثير من النماذج القديمة في هذا المجال، لكنها لا تزال تعاني في "اللعبة الطويلة". إنها بارعة في الإصلاحات السريعة، لكنها غالبًا ما تخلق "ديونًا تقنية" (كود فوضوي) يضر بها لاحقًا.
- الشركات المختلفة لها أساليب مختلفة: يبدو أن بعض نماذج الذكاء الاصطناعي (مثل نماذج Claude) تهتم أكثر بالاستقرار طويل الأمد، بينما يندفع البعض الآخر لإصلاح المشكلة الفورية ويتجاهلون الفوضى المستقبلية.
- مشكلة "صفر تراجع": تفشل معظم نماذج الذكاء الاصطناعي في الحفاظ على استقرار الكود. في الاختبار، كسرت معظم النماذج الميزات الموجودة مسبقًا أكثر من 75% من الوقت عند محاولة تطوير الكود على مدى فترة طويلة.
الخلاصة
هذه الورقة البحثية هي بمثابة جرس إنذار. إنها تخبرنا أنه بينما يعد الذكاء الاصطناعي مذهلاً في كتابة الكود لمهمة واحدة، إلا أنه لا يزال يتعلم كيف يكون مهندس برمجيات جيدًا يهتم بالصحة طويلة الأمد للمشروع.
SWE-CI هو النادي الرياضي الجديد حيث ندرب الذكاء الاصطناعي ليس فقط على رفع الأوزان الثقيلة (كتابة الكود)، بل على الجري في ماراثون (صيانة الكود) دون أن يتعثر في رباط حذائه.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.