Бенчмарк · agentic
SWE-bench Multilingual
SWE-bench Multilingual проверяет, может ли ИИ-агент по программированию решать реальные issue с GitHub, редактируя репозиторий кода на разных языках программирования. Оценка — % Resolved: доля из 300 задач, чьё исправление проходит собственные тесты проекта.
Подробнее
- Пример
- Тип задачи: агенту дают отчёт об ошибке из реального open-source репозитория (например, на Go, Java или Ruby) вместе с кодовой базой на коммите до исправления, и он должен создать patch, редактирующий один или несколько файлов, чтобы устранить описанную проблему; эталонного решения не предоставляется.
- Метрика
- Метрика — % Resolved: каждый из 300 экземпляров оценивается как пройден/не пройден, а итог — процент пройденных. Экземпляр засчитывается, только если после применения patch агента все тесты Fail-to-Pass (нацеленные на баг) проходят и все тесты Pass-to-Pass (существующее поведение) по-прежнему проходят.
- Приёмка
- Patch проверяется запуском тестового набора репозитория в изолированном container: назначенные тесты Fail-to-Pass должны теперь проходить, а все тесты Pass-to-Pass — оставаться зелёными. Любой сбой, ошибка или неприменимый patch помечают экземпляр как нерешённый; частичного зачёта нет.
- Почему важно
- Он проверяет навыки программирования за пределами Python на 9 языках и 42 реальных репозиториях и показывает, что модели решают заметно меньше issue на языках вроде Go, Rust или PHP, чем на Python, — более честная проверка кросс-языковой обобщающей способности в разработке ПО.
Разбор примера
Задача
Иллюстративный репрезентативный пример. Репозиторий: Go-библиотека строковых утилит на коммите до исправления. Issue:
Reverse() паникует / возвращает искажённый текст на строках с многобайтовыми символами UTF-8. Тест Fail-to-Pass TestReverseUnicode ожидает, что Reverse("héllo") == "olléh". Агент получает только текст issue и репозиторий — без эталонного patch.Решение
func Reverse(s string) string {
r := []rune(s)
for i, j := 0, len(r)-1; i < j; i, j = i+1, j-1 {
r[i], r[j] = r[j], r[i]
}
return string(r)
}
Разбор
Исходный код разворачивал строку побайтово, что разрезает многобайтовые руны UTF-8 и портит символы вроде
é; преобразование в срез []rune и обмен концов разворачивает по кодовым точкам Unicode, поэтому Reverse("héllo") даёт "olléh". Оценка: засчитано, только если тест TestReverseUnicode (Fail-to-Pass) теперь проходит и все тесты Pass-to-Pass по-прежнему проходят в container.| Дата | Модель | Результат | Источник |
|---|---|---|---|
| 2026-07-22 | Laguna S 2.1 | 78.5% | Poolside выпускает Laguna S 2.1 — открытую модель для агентного программирования с весами |
| 2026-03-27 | Composer 2 | 73.7% | Cursor опубликовал технический отчёт по обучению агентной модели Composer 2 |
| 2025-11-07 | Kimi K2 Thinking | 61.1% | Moonshot AI выпустила Kimi K2 Thinking, открытую модель рассуждений на 1 трлн параметров |
| 2025-07-28 | Kimi K2 | 47.3% | Moonshot выпустила Kimi K2, открытую агентную MoE-модель с 32B активных параметров |
| 2025-07-28 | Kimi K2 | 47.3% | Kimi K2: открытая MoE-модель с 1T параметров и оптимизатором MuonClip |
| 2025-07-11 | Kimi K2 | 47.3% | Moonshot AI выпустила Kimi K2: MoE-модель с 1 трлн параметров и агентными возможностями |
| 2025-07-11 | Kimi K2-Instruct | 47.3% | Moonshot AI выпустила Kimi-K2-Instruct, MoE-модель на 1 трлн параметров с агентными возможностями |