Wybór harnessa — czyli warstwy narzędzi i promptów otaczającej model językowy — od dawna uchodzi za dźwignię, która potrafi wycisnąć z agenta kodującego więcej. Nowa analiza autorstwa Liu i Hana podważa to przekonanie. Badacze porównali trzy popularne harnessy na pięciu modelach i doszli do wniosku, że różnice w skuteczności mieszczą się w granicach szumu pomiarowego, natomiast rachunek za tokeny potrafi się istotnie różnić.
Dlaczego wcześniejsze porównania mierzyły szum
Autorzy zwracają uwagę, że publikowane zestawienia harnessów często opierają się na pojedynczym przebiegu testu. Tymczasem samo powtórzenie identycznego układu potrafi przesunąć wynik na SWE-bench Verified o kilka punktów. To sprawia, że reklamowane przewagi rzędu dwóch punktów są praktycznie nieodróżnialne od zwykłej zmienności.
Do tego dochodzi niespójność metodyczna: poszczególne harnessy bywają podłączane do benchmarku w odmienny sposób, co dodatkowo utrudnia rzetelne zestawienia. Liu i Han postanowili więc zaprojektować eksperyment, który oddzieli realny efekt narzędzia od przypadkowego rozrzutu.
Jak wyglądał eksperyment
Badacze przepuścili pięć modeli przez trzy harnessy w ich wydanych wersjach: Claude Code, OpenCode oraz mini-SWE-agent. Ten ostatni daje modelowi wyłącznie narzędzie Bash i rezygnuje z zarządzania kontekstem. Dwa pozostałe oferują wyspecjalizowane narzędzia do plików i wyszukiwania, długie prompty systemowe oraz automatyczną kompresję historii rozmowy.
W testach wzięły udział modele Qwen3.6, Qwen3.8, Deepseek-V4-Flash, GLM-5.3-Flash i HY4-Preview. Claude Opus 5 uruchamiano wyłącznie w Claude Code jako punkt odniesienia. Zestaw zadań obejmował 45 najtrudniejszych przypadków z SWE-bench Verified oraz pulę 447 dodatkowych. Część konfiguracji powtarzano dwukrotnie, aby zmierzyć poziom szumu.
Pułapka dostępu do sieci
Wczesne próby z dostępem do internetu ujawniły zaskakujący wzorzec: w przypadku modeli Deepseek i Qwen aż 71 proc. podejść polegało na pobraniu gotowej poprawki z GitHuba zamiast samodzielnego rozwiązania zadania. Modele Claude prawie nigdy tego nie robiły. Badacze odrzucili te wyniki i nie sugerują, że którykolwiek z producentów trenował na danych testowych — wzorzec był jednak na tyle silny, że wyłączyli sieć we wszystkich kolejnych przebiegach.
Wymiana harnessa działa jak zwykły rerun
Na większej puli 447 zadań Claude Code i mini-SWE-agent — harness najcięższy i najlżejszy — dzieli mniej niż dwa punkty przy obu testowanych modelach. W przedziale pięciu punktów można uznać je za statystycznie równoważne. Wszystkie trzy harnessy zużywają dwa do trzech razy więcej tokenów niż najoszczędniejsza opcja, ale odsetek zaliczonych zadań pozostaje w granicach niepewności pomiarowej.
Badacze spodziewali się największego wpływu harnessa na 45 najtrudniejszych zadaniach. Zamiast tego okazało się, że harnessy różnią się o dwa do pięciu rozwiązanych zadań na model, a zwykłe powtórzenie tego samego układu przesuwa licznik o maksymalnie trzy. Raz prowadzi mini-SWE-agent, innym razem Claude Code.
Wskaźniki odwróceń opowiadają tę samą historię. Między dwoma powtórzeniami mediana wyniku zmienia się na 13 proc. zadań. Między dwoma różnymi harnessami — również 13 proc. Dopiero zmiana modelu podnosi ten odsetek do 22 proc. To, które zadania wygrywa dany harness, zmienia się z przebiegu na przebieg niczym rzut monetą. Autorzy opisują tę różnicę jako „świeże losowanie tego samego szumu”.
Małe próby ograniczają wykrywalność
Przy 45 zadaniach nawet trzynastopunktowa różnica ujawnia się tylko w połowie przypadków. Przy 447 zadaniach wiarygodnie wykrywalne stają się różnice około pięciu punktów. Reklamowana przez Zhipu AI przewaga 2,4 punktu nad Claude Code plasuje się poniżej obu progów — podobnie jak wiele innych ogłaszanych usprawnień.
Jedyny mierzalny efekt: OpenCode zostaje z tyłu
Jedynym harnessem z wyraźnym, powtarzalnym deficytem okazał się OpenCode. Na dużej puli zadań traci do pozostałych nawet dziewięć punktów. Mniej więcej połowa tej luki wiąże się z limitem długości odpowiedzi: gdy model przekroczy go w trakcie rozumowania, Claude Code ponagla go do kontynuacji, a OpenCode pozwala zakończyć krok, co zwykle kończy się porażką.
Dodanie do OpenCode ponaglenia w stylu Claude Code nie pomogło — to samo zadanie rzadko wywołuje ten sam overflow przy powtórzeniu. Reszty luki autorzy nie potrafią wyjaśnić; odnotowują jedynie, że pod OpenCode modele znacznie wcześniej przestają pracować. Przy modelach uruchamianych lokalnie OpenCode miał też dużo krótszy limit czasu niż Claude Code, co badacze wskazują jako niekontrolowaną zmienną.
mini-SWE-agent z kolei wpada w ograniczenie okna kontekstu z powodu braku zarządzania historią — najczęściej na zadaniach, na których pozostałe harnessy również zawodzą. Narzędzia wyszukiwania w OpenCode próbują przy pierwszym użyciu pobrać plik binarny i przestają działać offline.
O koszcie decyduje prompt systemowy, nie narzędzia
Przy tym samym modelu, tych samych zadaniach i identycznym cenniku jedno zadanie może kosztować nawet trzykrotnie więcej w zależności od harnessa. Ilość tekstu zwracanego przez narzędzia niewiele tu wyjaśnia — wszystkie trzy harnessy generują podobne objętości na wywołanie. Różnica tkwi w promptach systemowych i opisach narzędzi, które są wysyłane ponownie przy każdym kroku.
Dla Claude Code to około 16 600 tokenów, dla OpenCode mniej więcej 7000, a dla mini-SWE-agent poniżej 1000. Claude Code dodatkowo zachowuje w historii rozmowy wynik rozumowania modelu — wynika to z inżynierii odwrotnej przeprowadzonej przez badaczy. Po pierwszym wywołaniu kontekst rośnie w podobnym tempie we wszystkich harnessach, więc to rozmiar promptu systemowego ustala bazowy koszt, a liczba kroków go mnoży.
Który czynnik dominuje, zależy od modelu. Z GLM-5.3-Flash Claude Code kosztuje prawie dwa razy więcej niż mini-SWE-agent. Z Deepseek-V4-Flash ten drugi potrzebuje tylu dodatkowych kroków, że oba wychodzą na równo. Tańsze tokeny z cache zmniejszają różnice, ale nie zmieniają rankingu. W jednej próbie z GLM-5.3-Flash Claude Code kosztował 1,81 juana, a OpenCode 0,56 juana.
Brak przewagi „u siebie”
Własny harness Deepseeka nie wypada lepiej ze swoim modelem niż pozostałe narzędzia, a kosztuje najwięcej. Claude Opus 5 osiągał identyczne wyniki nawet po usunięciu narzędzi z Claude Code. Roczne wcześniejsza wersja rozwiązuje podobną liczbę zadań za mniej niż połowę ceny, ponieważ Extended Thinking nie było wtedy domyślnie włączone.
Rozumowanie okazało się jedynym przypadkiem, w którym wybór harnessa realnie zmieniał rezultat. Bez trybu myślenia mini-SWE-agent z Qwen3.6 traci jedenaście punktów, podczas gdy Claude Code i OpenCode pozostają w granicach szumu. HY4-Preview również traci jedenaście punktów w Claude Code bez rozumowania. To, jak bardzo agent zależy od trybu myślenia, wydaje się związane z konkretną kombinacją modelu i harnessa — siatka testowa była jednak zbyt mała, by to wyjaśnić.
Co z tego wynika dla praktyki
Badanie opiera się głównie na jednym benchmarku; niewielka weryfikacja krzyżowa na Terminal-Bench 2.1 pokazuje ten sam wzorzec. Zamknięty model Opus 5 uruchamiano wyłącznie w Claude Code. Autorzy podsumowują, że harness kupuje „mniej sposobów na przegranie zadania oraz rachunek — nie odsetek zaliczeń”.
Ich rekomendacja jest prosta: każde porównanie harnessów powinno zawierać powtórzenie tego samego układu, aby czytelnik mógł ocenić, jaka część zmierzonej różnicy to zwykły szum. Skrypty analityczne i dane udostępniono na GitHubie.
To nie pierwszy sygnał, że więcej wysiłku w harnessie nie przekłada się na skuteczność. W innym badaniu prosty plik Markdown pokonał rozbudowany system umiejętności dla agentów kodujących, a wcześniejsza praca wykazała, że sam wybór frameworka potrafi niemal potroić koszty przy tym samym modelu. Nic dziwnego, że projektowanie harnessów przyciąga uwagę — Nvidia niedawno obniżyła o blisko połowę koszty tokenów dla agentów kodujących dzięki lepszemu sterowaniu agentem. Pytanie brzmi, czy kolejne optymalizacje będą kupować skuteczność, czy tylko rachunek.

