Lokalny Qwen Code: działająca konfiguracja krok po kroku
Wyjaśniamy każde ustawienie profilu Qwen Code: poziom rozumowania, limit odpowiedzi, zachowanie toku myślenia, długość kontekstu i liczbę agentów.
Syntalith
W domowym eksperymencie najstabilniejszy profil Qwen Code używał średniego poziomu rozumowania po stronie klienta i żądania, zachowanego toku myślenia, kontekstu 150k i braku stałego limitu max_tokens. Jedna RTX 3090 obsługiwała jednego agenta.
Każde z tych ustawień odpowiada na zaobserwowany błąd. Nie jest listą „najlepszych praktyk” skopiowaną z dokumentacji.
Rdzeń profilu
Poniższy fragment pokazuje strukturę. Zastąp URL i nazwę zmiennej. Klucza nie wpisuj do JSON:
{
"$version": 4,
"model": {
"name": "qwen3.8-27b",
"reasoningEffort": "medium",
"skipLoopDetection": true
},
"tools": { "approvalMode": "auto-edit" },
"modelProviders": {
"openai": [{
"id": "qwen3.8-27b",
"envKey": "QWEN_VLLM_API_KEY",
"baseUrl": "http://127.0.0.1:18020/v1",
"generationConfig": {
"timeout": 0,
"maxRetries": 1,
"contextWindowSize": 150000,
"extra_body": {
"top_k": 20,
"min_p": 0,
"reasoning_effort": "medium",
"chat_template_kwargs": { "preserve_thinking": true }
}
}
}]
}
}
Sprawdź aktualny schemat w dokumentacji dostawców Qwen Code. Nasz pomiar używał Qwen Code 0.21.13. Aktualizacja klienta wymaga ponownego krótkiego testu.
Poziom rozumowania musi dotrzeć do modelu
Samo reasoningEffort w warstwie klienta nie wystarczyło dla ogólnego dostawcy OpenAI. Wbudowany szablon Qwena domyślnie wybiera xhigh, jeśli żądanie nie zawiera poziomu. Dlatego profil wysyła także extra_body.reasoning_effort.
W małym eksporcie CSV low było o 3,47 s szybsze od medium, ale pominęło separator opisany w README. xhigh w starszych komórkach zużywało więcej czasu bez powtarzalnej poprawy. Medium stało się domyślnym kompromisem; ten tryb nadal może się mylić.
Dlaczego usunęliśmy stałe max_tokens
Stały limit 8192 tokenów wyłączał adaptacyjną ścieżkę Qwen Code 8k–64k. Długie zapisy narzędzi kończyły się ucięciem, a agent próbował je powtarzać. Obecna konfiguracja nie narzuca tego pola i pozwala klientowi użyć mechanizmu ponowienia.
Brak stałego limitu nie oznacza braku granic systemu. Serwer ma limit kontekstu, kolejka ma limit zadań, a zewnętrzny nadzór może zatrzymać identyczną sekwencję bez postępu. Różnica polega na tym, że nie ucinamy poprawnego zapisu w przypadkowym miejscu.
Fałszywy detektor pętli
W pierwszym interfejsie Qwen Code wykonywał różne, udane edycje, które heurystyka uznała za stagnację. Sesja zakończyła się przed testem w przeglądarce. Ustawiliśmy skipLoopDetection: true, czyli wyłączyliśmy wbudowany detektor pętli w nieograniczonych próbach.
Zewnętrzna kontrola nadal zatrzymuje prawdziwy brak postępu: powtarzany identyczny błąd, tę samą komendę bez zmiany stanu albo rosnącą kolejkę. Heurystyka klienta i bezpieczeństwo procesu nie są tym samym.
Jedna karta, jeden agent
Serwer miał jedno miejsce na generowanie. Uruchamianie wielu subagentów tylko ustawiało rozmowy w kolejce i mnożyło kontekst. Profil zespołu powinien wyłączyć równoległych agentów albo skierować ich do oddzielnych procesów z własnymi zasobami.
Tak samo z uprawnieniami. auto-edit było właściwe w odłączonych kopiach repozytorium używanych do testów. W repozytorium produkcyjnym tryb zależy od gałęzi, testów i możliwości cofnięcia. Polecenia wdrożeniowe, sekrety i zasoby chmurowe wymagają osobnych bramek.
Higiena sesji
Wznawiaj sesję, gdy nowe polecenie zależy od wcześniejszych decyzji. Nowe, niezależne zadanie zacznij świeżo po zakończeniu poprzedniego. Kod już istnieje w repozytorium; nie trzeba ponownie przenosić milionów tokenów historii.
W naszej długiej sesji poprawka dwóch reguł CSS zajęła 477,80 s. Wynik był poprawny, lecz czas wynikał z nadmiernego rozumowania i dużej historii. To argument za sesjami zadaniowymi. Nie uzasadnia obniżenia jakości wszystkich prac.
Kopiowalny test profilu
Po zmianie klienta lub ustawień uruchom Qwen Code w pustej kopii repozytorium i podaj:
Utwórzqwen-smoke.jsonz dokładną treścią{"profile":"medium","ok":true}. Sprawdź ją poleceniemjq -e '.profile == "medium" and .ok == true' qwen-smoke.json. Nie zmieniaj innych plików.
Oczekiwany wynik to jeden nowy plik, kod wyjścia 0 z jq i końcowa odpowiedź, która nie deklaruje dodatkowych zmian. Potem w tej samej sesji poproś o zmianę profile na medium-resumed i ponowne wykonanie kontroli. To krótko sprawdza zapis narzędziowy, odczyt wyniku oraz wznowienie sesji. Nie ocenia jakości kodowania, więc po nim nadal uruchamiamy jedno zadanie repozytoryjne z ukrytą kontrolą.
Profil trzeba przekazać z testem
Plik ustawień bez kryteriów odbiorowych szybko staje się legendą. Do profilu dołącz:
- skróty pliku modelu i obraz serwera;
- wersję Qwen Code;
- krótki test JSON i narzędzia;
- jedno zadanie repozytoryjne z ukrytą kontrolą;
- spodziewany zakres czasu i VRAM;
- poprzedni działający profil.
Syntalith przygotowuje taki pakiet w lokalnym wdrożeniu i może nauczyć zespół, jak go aktualizować na Kursie AI-Native. Jeśli potrzebujesz architektury i wyceny, zacznij od bezpłatnego skanu procesu.
Bezpłatny skan procesów
Zacznij od bezpłatnego skanu procesów.
- 30 minut z inżynierem, który może prowadzić Twoje wdrożenie.
- Przegląd procesów, które kosztują Cię najwięcej czasu i pieniędzy.
- Pisemne podsumowanie: co zautomatyzować, w jakiej kolejności, z widełkami kosztów.
W 30 minut wybieramy proces do oceny, a w ciągu 2 dni roboczych dostajesz rekomendację, także gdy lepsza będzie prostsza droga.
0 zł
30 minut · pisemne podsumowanie w 2 dni robocze
Terminy zobaczysz w swojej strefie czasowej.
Wolisz napisać? Opisz proces