Czy Qwen Code nadaje się do zwykłych zmian w aplikacji?
Sprawdziliśmy eksport CSV, paginację i import użytkowników. Qwen wykonał dwie zmiany poprawnie, a w trzeciej pominął walidację wykrytą przez ukryty test.
Syntalith
Qwen Code naprawił eksport CSV i paginację, ale przepuścił błąd w imporcie użytkowników: rekord z pustą nazwą lub rolą. Wszystkie 12 testów widocznych w repozytorium przeszło. Dopiero wspólny zestaw ukrytych kontroli pokazał brak, dając wynik 4/5.
Sprawdziliśmy cztery zwykłe zmiany z lokalnym Qwen3.8-27B w trybie medium. Każda próba zaczynała się w czystej kopii małego projektu, od polecenia przypominającego zgłoszenie błędu. Agent miał standardowe narzędzia i pracował bez sztucznego limitu czasu.
Poniżej zapisujemy czas, zakres zmian i liczbę zaliczonych kontroli. Testy publiczne były dostępne agentowi; ukryte sprawdzały dodatkowe warunki poza jego widokiem. Tam, gdzie podajemy ocenę punktową, wystawił ją OpenAI Codex według kryteriów Syntalith: poprawność, testy regresji, zgodność, zakres, weryfikacja i dokumentacja.
Wyniki Qwen Code przy ustawieniu medium
| Zadanie | Testy ukryte | Testy publiczne | Czas przebiegu | Co oznacza wynik |
|---|---|---|---|---|
| Eksport CSV | 3/3 | 3/3 | 38,24 s | najlepszy wynik zadania |
| Paginacja | 3/3 | 3/3 | 264,53 s | najmniejsza zgodna poprawka |
| Import CSV | 4/5 | 12/12 | 93,14 s | brak walidacji pustych pól |
| Kontynuacja importu | 3/3 | 12/12 | 146,88 s | poprawne tworzenie lub aktualizacja rekordu, wcześniejszy problem z walidacją pozostał |
Zapis 3/3 oznacza, że przebieg spełnił wszystkie trzy sprawdzane warunki. 4/5 oznacza jeden niespełniony warunek i nie jest miarą „80% niezawodności”. Każdy wiersz opisuje pojedynczy przebieg, więc czasy nie są obietnicą odpowiedzi, a tabela nie wyznacza prawdopodobieństwa sukcesu.
Polecenia przekazane agentowi
Polecenia nie zawierały instrukcji implementacji. Ich pełny sens był następujący:
Eksport: Klienci z kilkoma tagami pojawiają się więcej niż raz w eksporcie CSV. Napraw to pod src, zachowaj istniejące kolumny i dodaj test regresji.
Paginacja: Filtrowanie działa na pierwszej stronie, ale po „load more” pojawiają się wpisy innych właścicieli i znikają pasujące. Znajdź błąd w src/activity-store.js i napraw go z testami.
Import: Dodaj import CSV z kolumnaminame,role. Puste linie są dozwolone, ale błędny rekord lub duplikat emaila ma odrzucić cały plik bez częściowego zapisu. Dodaj testy i zaktualizuj README.
W kolejnym poleceniu zmieniliśmy kontrakt. Istniejący adres e-mail miał aktualizować nazwę i rolę, również wtedy, gdy duplikat pojawił się wcześniej w tym samym pliku. Operacja nadal miała być atomowa i zwracać liczniki created oraz updated.
Były to polecenia podobne do prawdziwych zgłoszeń. Agent musiał sam znaleźć w repozytorium separator CSV i kontrakt kursora. Z modelu danych oraz wymogu odrzucania błędnych wierszy powinien był wywnioskować, że puste imię i rola są błędnym rekordem. Ukryty test sprawdził właśnie ten brak.
Eksport CSV przy ustawieniu medium
Pierwsze zadanie dotyczyło małego błędu w eksporcie. Publiczne testy nie sprawdzały separatora opisanego w README. Qwen Code przy low przeszedł 3/3 testów publicznych, ale tylko 1/3 ukrytych. Przy medium odczytał zapisany kontrakt i przeszedł wszystkie testy w 38,24 s.
Nie wynika z tego, że medium zawsze wygrywa. Low może wystarczyć przy mechanicznej zmianie z tanią weryfikacją. W tym przebiegu krótsze rozumowanie oszczędziło 3,47 s, ale pozostawiło zachowanie niezgodne z dokumentacją.
Zgodność paginacji jest częścią poprawności
W zadaniu paginacji Qwen Code medium, Codex medium i OpenCode medium przeszły wszystkie dostępne testy. Różniły się zakresem zmian.
- Qwen Code
mediumprzygotował najmniejszą poprawkę zachowującą istniejący kontrakt. - Qwen Code
lowzmienił kontrakt kursora, mimo przejścia testów. - Codex wykonał szerszą przebudowę, która nie zachowała zgodności wstecznej.
- OpenCode naprawił problem minimalnie, a potem oglądał niepotrzebne pliki
.git.
Zaliczenie ukrytych testów nie zastępuje przeglądu zmian w kodzie. Kod może działać poprawnie, a mimo to obejmować zbyt szeroki zakres, by bezpiecznie go przyjąć.
Import z brakującą walidacją
Qwen Code zbudował działający import, opisał zmianę i przeszedł cały widoczny zestaw. Piąty ukryty test podał rekord z pustą nazwą lub rolą. Implementacja go zaakceptowała.
W tym samym zadaniu Codex przeszedł 5/5 ukrytych testów w 212 s, a OpenCode przeszedł 5/5 w 89,04 s. Qwen Code nie dał tu najlepszego wyniku jakościowego. Porównanie ma sens dopiero po rozdzieleniu zadań, warunków i zakresu zmian, zamiast sprowadzania decyzji do nazwy narzędzia albo jednej średniej.
Druga próba Qwen Code dodała poprawne tworzenie lub aktualizację rekordu w tej samej sesji, lecz nie naprawiła wcześniejszego błędu walidacji. W zespole działa to podobnie: kolejne zgłoszenie rzadko naprawia warunek, którego nikt nie wpisał do wymagań.
Jak czytać odpowiedź agenta
Recenzent powinien odpowiedzieć na pięć osobnych pytań:
- Czy kod się buduje i testy publiczne przechodzą?
- Czy zmiana spełnia kontrakt z dokumentacji?
- Czy trudne wejścia są walidowane?
- Czy zakres jest najmniejszy, który rozwiązuje problem?
- Czy raport końcowy dokładnie opisuje to, co sprawdzono?
Agent może spełnić cztery warunki, a mimo tego dostarczyć zmianę niegotową do scalenia. W produkcji potrzebne są więc powtarzalne testy i przegląd dopasowany do skutków błędu.
Wartość biznesowa to zmiana przyjęta przez zespół
Celem agenta kodowego jest skrócenie drogi od zgłoszenia do zmiany przyjętej przez zespół, przy zachowaniu długu i liczby incydentów pod kontrolą. Przydatny koszt można zapisać tak:
koszt zmiany przyjętej przez zespół = czas agenta
+ koszt infrastruktury
+ czas przeglądu człowieka
+ oczekiwany koszt poprawek
„Czas agenta” to czas przebiegu, „koszt infrastruktury” obejmuje sprzęt i energię, „czas przeglądu” oznacza pracę człowieka, a „koszt poprawek” uwzględnia przewidywane naprawy po wdrożeniu. Wolny model może się opłacać przy dobrze ograniczonych zadaniach wykonywanych nocą. Szybki model może zwiększać koszt, jeśli senior musi ręcznie odtwarzać każdy pominięty warunek.
Jak Syntalith wdraża taki profil
Syntalith dobiera i wdraża prywatne modele do pracy z kodem. Zaczynamy od zgłoszeń z Twojego repozytorium, przygotowujemy wspólne kontrole i porównujemy lokalny profil z używanym API. Dostajesz wyniki oraz konfigurację narzędzi z uzgodnionymi uprawnieniami. Zespół może też przećwiczyć kolejne zadania na Kursie AI-Native.
Opis metody znajdziesz w artykule jak testować lokalnego agenta programistycznego.
Syntalith ma status OpenAI Select Partner w OpenAI Partner Network.
Pomagamy szybciej odpowiadać klientom i znajdować informacje w firmowych dokumentach. Dobieramy i wdrażamy narzędzia AI, a Twój zespół uczymy z nich korzystać.
Jak wdrożyć ChatGPT i OpenAI w firmieOceńmy prywatne AI w warunkach Twojej firmy
Pomagamy firmom i osobom prywatnym dobrać sprzęt, uruchomić model i sprawdzić go na własnych zadaniach. Możesz zacząć od komputera, który już masz, albo od rozmowy przed zakupem. Pierwsza rozmowa jest bezpłatna, a wycenę przygotowujemy po ocenie zadania i sprzętu.
Prywatne modele LLM i fine-tuning