Бенчмарк · agentic
SWE-bench Verified
Проверяет, может ли ИИ-агент решать реальные GitHub-issue от начала до конца. Набор «Verified» — 500 задач, вручную проверенных на популярных open-source репозиториях Python.
Подробнее
- Пример
- По баг-репорту и репозиторию модель должна выдать патч кода — например, починить падающую функцию разбора дат, чтобы прошёл тест-сьют проекта.
- Метрика
- % решённых issue — обычно как pass@1 (одна попытка). Больше — лучше.
- Приёмка
- Полностью автоматически: патч применяется, и реальные скрытые юнит-тесты проекта запускаются в песочнице. Задача засчитывается, только если проходят все целевые тесты и ничего не ломается.
- Почему важно
- Ведущий бенчмарк реальных кодинг-агентов и заглавная цифра в каждом frontier-релизе; прогресс здесь показывает, насколько агенты близки к автономной разработке.
Разбор примера
Задача
Репозиторий
django/django на фиксированном базовом коммите. Баг-репорт: django.utils.text.slugify("___This-is-a-Test___", allow_unicode=True) возвращает '___this-is-a-test___', хотя ведущие и хвостовые подчёркивания и дефисы должны обрезаться, чтобы получилось 'this-is-a-test'. Модель получает только текст issue и репозиторий и должна выдать патч в формате 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 их удаляет; патч минимален и не меняет остальное поведение. SWE-bench Verified применяет патч к репозиторию на базовом коммите и оценивает запуском скрытого набора тестов — проходит только если все тесты FAIL_TO_PASS становятся зелёными, а все PASS_TO_PASS остаются зелёными.