PRZEWODNIK techniczny

Testy porównawcze SWE i agentów kodujących

SWE-bench to test porównawczy, który sprawdza, czy system AI może rozwiązać rzeczywiste problemy GitHub poprzez edycję bazy kodu Python, tak aby własne testy projektu zakończyły się pomyślnie.

Posłuchaj tego przewodnikaOpowiadane przez sztuczną inteligencję · ~3 min

Na tej stronie4 minuty czytania
  1. Przegląd
  2. Głębokie nurkowanie
  3. Implementacja w świecie rzeczywistym
  4. Przyszłość testów porównawczych SWE i agentów kodujących
  5. Wdrażanie tego w praktykę
  6. Odkrywaj dalej
  7. Często zadawane pytania

Przegląd

Ma to znaczenie, ponieważ jest to jedna z najczęściej cytowanych miar agentów kodujących, a jej wyniki można łatwo przesadzić, nie wiedząc, jak działają zadania, rusztowania agentów i kontrole testów.

Głębokie nurkowanie

SWE-bench was introduced by Carlos Jimenez and colleagues at Princeton in 2023 and published at ICLR 2024. It contains 2,294 task instances drawn from 12 widely used Python repositories, including Django, scikit-learn, sympy, matplotlib and requests. Each instance pairs a real GitHub issue with the pull request that fixed it. The system under test receives the issue text and the repository as it was before the fix, and must produce a patch. Scoring uses the tests from the original pull request. FAIL_TO_PASS tests failed before the human fix and passed after it, so they check that the issue is solved. PASS_TO_PASS tests passed both before and after, so they check that nothing else broke. An instance counts as resolved only if all of these pass, and the headline number is the percentage resolved. At launch, the best models resolved only a few percent of tasks. Two subsets matter. SWE-bench Lite has 300 instances chosen to be cheaper and more self-contained. SWE-bench Verified, released in 2024 by OpenAI with the SWE-bench authors, has 500 instances that human engineers screened to remove vague issue descriptions or tests that would reject valid solutions. Verified is now the most commonly quoted split. Scores reflect a model plus its scaffold, the program that lets it browse files, run commands and edit code. SWE-agent from Princeton and the Agentless pipeline, which localizes, repairs and validates without an open-ended agent loop, are well-known examples. The same model can score very differently in different scaffolds. Common misreadings: the original set is Python-only and covers a dozen repositories; passing tests does not guarantee maintainable code; the repositories and fixes are public, so contamination is possible; and multi-attempt results are not comparable to single-attempt ones. Related benchmarks such as SWE-bench Multilingual, SWE-Lancer and Terminal-Bench probe other languages, freelance tasks and command-line work.

Implementacja w świecie rzeczywistym

Zadanie przekazuje agentowi problem Django opisujący nieprawidłowe zachowanie oraz sprawdzenie repozytorium przy zatwierdzeniu przed poprawką; agent musi napisać łatkę, która jest następnie oceniana na podstawie testów, które przeszły pomyślnie pierwotną, ludzką poprawkę.

Dostawca zgłasza wynik zweryfikowany w SWE-bench przy użyciu własnej wiązki agentów i kilku prób na zadanie; kupujący powinien potwierdzić, czy jest to wynik pojedynczej próby, przed porównaniem go z numerem innego dostawcy.

Zespół inżynierów tworzy wewnętrzny zestaw w stylu SWE z własnych prywatnych repozytoriów i rozwiązanych zgłoszeń, aby sprawdzić, czy agent, który ma dobrą opinię publiczną, faktycznie pracuje nad jego kodem.

Badacze korzystają z wielomodalnego środowiska SWE, w którym problemy pochodzą z projektów front-endowych JavaScript i często zawierają zrzuty ekranu błędów wizualnych, aby przetestować umiejętności, których nie można zmierzyć w oryginale Python.

Przyszłość testów porównawczych SWE i agentów kodujących

W miarę wzrostu najlepszych wyników w SWE-bench Verified, benchmark oddziela wiodące systemy w mniej wyraźny sposób, a uwaga skupia się na nowszych zestawach zadań ze świeższymi problemami, większą liczbą języków programowania, dłuższą pracą wieloetapową oraz raportowaniem kosztów i niezawodności. Zanieczyszczenie stanowi trwały problem, ponieważ repozytoria źródłowe są publiczne, co sprzyja testom porównawczym, które dodają najnowsze zadania. Dla zespołów wybierających narzędzia punktem wyjścia są publiczne tabele wyników; testowanie agentów na ich własnych bazach kodów i biletach pozostaje najbardziej niezawodnym sygnałem.

Wdrażanie tego w praktykę

Dlaczego to ma znaczenie

  • Koszt i budżet. Decyzje dotyczące architektury wpływają na wydajność i koszty operacyjne przez lata.
  • Jaśniejsze decyzje. Edukacja techniczna pomaga zespołom wybrać odpowiedni stos, a nie tylko najnowszy.
  • Kontrola jakości. Lepsze wybory inżynieryjne zmniejszają liczbę incydentów związanych z niezawodnością w produkcji.

Uważaj na

  • Optymalizacja jednego testu porównawczego może ukryć szersze słabości systemu.
  • Koszty infrastruktury i utrzymania są często niedoszacowane.
  • W miarę jak systemy stają się coraz bardziej złożone, luki w bezpieczeństwie i obserwowalności mogą się zwiększać.

Kolejne kroki

  1. Przed wdrożeniem zdefiniuj docelowe opóźnienia, jakość i koszty.
  2. Test porównawczy w realistycznych warunkach obciążenia i danych.
  3. Monitorowanie przyrządu pod kątem błędów, dryftu i wpływu użytkownika.
  4. Przed skalowaniem przygotuj ścieżki wycofywania zmian i reakcji na incydenty.

Odkrywaj dalej

Darmowy newsletter

Otrzymuj codzienne podsumowanie AI

Trzy zweryfikowane historie AI każdego poranka w dni robocze, napisane prostym angielskim. Bezpłatne na zawsze, bez reklam.

Jedno e‑mail każdego dnia roboczego. Wypisz się jednym kliknięciem. Nigdy nie sprzedajemy ani nie udostępniamy Twojego adresu.

Sprawdź się

Weź udział w quizie SWE-bench i Coding Agent Benchmarks

Natychmiastowa informacja zwrotna na każde pytanie oraz udostępnialny certyfikat z weryfikowalnym ID po zaliczeniu kursu.

Rozpocznij quiz

Wspieraj darmową edukację AI. AI Understanding jest organizacją non-profit 501(c)(3) — bez reklam, bez płatnej ściany, zawsze. Przekaż darowiznę

Często zadawane pytania

Co to są testy porównawcze SWE i agentów kodujących?

SWE-bench to test porównawczy, który sprawdza, czy system AI może rozwiązać rzeczywiste problemy GitHub poprzez edycję bazy kodu Python, tak aby własne testy projektu zakończyły się pomyślnie. Ma to znaczenie, ponieważ jest to jedna z najczęściej cytowanych miar agentów kodujących, a jej wyniki można łatwo przesadzić, nie wiedząc, jak działają zadania, rusztowania agentów i kontrole testów.

O co prosi system zadanie SWE-bench?

Każda instancja łączy rzeczywisty problem z migawką repozytorium, a system musi wygenerować poprawkę kodu, która go rozwiązuje.

Co to są testy FAIL_TO_PASS?

Potwierdzają, że problem został faktycznie rozwiązany, ponieważ przechodzą one dopiero po wprowadzeniu poprawki.

Jaka jest rola testów PASS_TO_PASS?

Przeszły one przed i po ludzkiej poprawce, więc chronią przed regresjami wprowadzonymi przez łatkę agenta.

Czym jest SWE-bench Verified?

Wersja Verified została wydana w 2024 roku przez OpenAI wraz z autorami SWE-bench, odfiltrowując zadania, które były niedookreślone lub posiadały testy odrzucające prawidłowe rozwiązania.

Ile instancji znajduje się w SWE-bench Lite?

Lite to podzbiór 300 instancji wybrany tak, aby był tańszy i bardziej samowystarczalny.