Benchmark · agentic
SWE-bench Verified
يختبر ما إذا كان بإمكان وكيل ذكاء اصطناعي حلّ مسائل (issues) حقيقية من GitHub من البداية إلى النهاية. مجموعة «Verified» هي 500 مهمة تم التحقق منها يدويًا من مستودعات Python مفتوحة المصدر الشهيرة.
اقرأ المزيد
- مثال
- بالنظر إلى بلاغ عن خطأ وإلى المستودع، على النموذج إنتاج patch للشيفرة — مثلاً إصلاح دالة تحليل تواريخ فاشلة كي تنجح مجموعة اختبارات المشروع.
- طريقة التقييم
- نسبة المسائل التي تم حلّها — تُذكر عادةً كـ pass@1 (محاولة واحدة). الأعلى أفضل.
- التحقق
- آليّ بالكامل: يُطبَّق الـ patch المُنتَج وتُشغَّل اختبارات الوحدة الحقيقية المخفية للمشروع داخل صندوق رملي. لا تُحتسب المهمة إلا إذا نجحت كل الاختبارات المستهدفة ولم يتراجع أي شيء آخر.
- لماذا يهم
- المعيار الرائد لوكلاء البرمجة في العالم الحقيقي ورقمٌ بارز في كل إصدار متقدّم؛ والتقدّم هنا يعكس مدى قرب الوكلاء من هندسة البرمجيات المستقلة.
مثال محلول
المهمة
المستودع
django/django عند commit أساسي مثبّت. بلاغ الخطأ: django.utils.text.slugify("___This-is-a-Test___", allow_unicode=True) يُعيد '___this-is-a-test___'، لكن الشرطات السفلية والشرطات في البداية والنهاية ينبغي إزالتها لتكون النتيجة 'this-is-a-test'. يُعطى النموذج نص المشكلة فقط إضافةً إلى المستودع وعليه إخراج patch بصيغة unified diff.الحل
--- a/django/utils/text.py
+++ b/django/utils/text.py
@@ def slugify(value, allow_unicode=False):
value = re.sub(r"[^\w\s-]", "", value.lower())
- return re.sub(r"[-\s]+", "-", value)
+ return re.sub(r"[-\s]+", "-", value).strip("-_")
الشرح
تدمج slugify الفواصل الداخلية لكنها لا تقصّ أبدًا الـ
-/_ المحيطة، لذا فإن إلحاق .strip("-_") بالـ re.sub الأخير يزيلها؛ والـ patch أدنى ما يمكن ويحافظ على كل السلوك الآخر. يطبّق SWE-bench Verified الـ patch على المستودع عند الـ commit الأساسي ويقيّم بتشغيل المجموعة المخفية — ولا تنجح إلا إذا تحوّل كل اختبار FAIL_TO_PASS إلى ناجح مع بقاء جميع اختبارات PASS_TO_PASS خضراء.