Przejdź do treści
← Wróć do bloga
qwen codeArtykuł

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.

Autor

Syntalith

Opublikowano Zaktualizowano 3 min czytania

Po kilku nieudanych próbach zostawiliśmy Qwen Code z poziomem rozumowania medium, zachowanym tokiem myślenia i kontekstem 150 000 tokenów. Poziom ustawialiśmy zarówno w kliencie, jak i w żądaniu. Usunęliśmy też stały limit max_tokens, który mógł ucinać długie zapisy narzędzi.

To konfiguracja z naszego eksperymentu na jednej RTX 3090, obsługująca jeden aktywny przebieg agenta. Poniżej wyjaśniamy, jaki problem rozwiązywało każde ustawienie i co sprawdzić przed przeniesieniem go do własnego środowiska.

Rdzeń profilu

Poniższy fragment pokazuje strukturę konfiguracji. Zastąp URL i nazwę zmiennej środowiskowej. 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. Pomiary opisane tutaj wykonaliśmy z Qwen Code 0.21.13. Po aktualizacji klienta uruchom ponownie krótki test kontrolny.

Poziom rozumowania musi dotrzeć do modelu

Samo reasoningEffort w warstwie klienta nie wystarczyło przy dostawcy zgodnym z interfejsem OpenAI. Wbudowany szablon Qwena wybiera xhigh, gdy żądanie nie podaje poziomu. Dlatego konfiguracja wysyła także extra_body.reasoning_effort, czyli wartość bezpośrednio do warstwy modelu.

W małym eksporcie CSV pojedynczy przebieg z low zakończył się o 3,47 s wcześniej niż przebieg z medium; 3,47 s oznacza różnicę łącznego czasu od uruchomienia do końca. Ten szybszy przebieg pominął separator opisany w README. Starsze przebiegi z xhigh trwały dłużej i nie dawały powtarzalnej poprawy. Medium zostało domyślnym kompromisem dla tej konfiguracji; nadal może popełniać błędy.

Dlaczego usunęliśmy stałe max_tokens

Stały limit 8192 tokenów odpowiedzi wyłączał adaptacyjną ścieżkę Qwen Code dla zapisów o długości 8k-64k tokenów. Długie zapisy narzędzi kończyły się ucięciem, a agent próbował je powtarzać. Obecna konfiguracja pomija to pole i pozwala klientowi użyć własnego mechanizmu ponowienia.

Brak stałego limitu nie usuwa granic systemu. Serwer ma limit kontekstu, kolejka ma limit zadań, a zewnętrzny nadzór może zatrzymać identyczną sekwencję bez postępu. Znika za to sztuczne cięcie poprawnego zapisu w przypadkowym miejscu.

Fałszywy detektor pętli

Podczas pierwszego przebiegu interfejsu Qwen Code wykonywał różne, udane edycje, które heurystyka uznała za stagnację. Sesja zakończyła się przed testem w przeglądarce. W próbach nastawionych na dokończenie pracy ustawiliśmy skipLoopDetection: true, czyli wyłączyliśmy wbudowany detektor pętli.

Zewnętrzna kontrola nadal zatrzymuje rzeczywisty brak postępu: identyczny błąd powtarzany bez zmiany, tę samą komendę bez zmiany stanu albo rosnącą kolejkę. Heurystyka klienta i zabezpieczenia procesu pełnią różne funkcje.

Jedna karta, jeden agent

Serwer miał jeden dostępny proces generowania, czyli mógł generować jedną odpowiedź naraz. Uruchamianie wielu subagentów ustawiało rozmowy w kolejce i powiększało użycie kontekstu. Konfiguracja zespołowa powinna wyłączyć równoległych agentów albo skierować ich do osobnych procesów z własnymi zasobami.

Uprawnienia także zależą od środowiska. auto-edit sprawdzało się w odłączonych kopiach repozytorium używanych do testów. Repozytorium produkcyjne potrzebuje ochrony gałęzi, testów i możliwości odzyskania zmiany. Polecenia wdrożeniowe, sekrety i zasoby chmurowe wymagają osobnych bramek.

Higiena sesji

Wznawiaj sesję, gdy nowe polecenie zależy od wcześniejszych decyzji. Niezależne zadanie zacznij w świeżej sesji po zakończeniu poprzedniego. Kod już istnieje w repozytorium, więc nie trzeba ponownie przesyłać całej wcześniejszej historii rozmowy.

W naszej długiej sesji poprawka dwóch reguł CSS zajęła 477,80 s, liczonych od rozpoczęcia do zakończenia tego etapu. Wynik był poprawny, lecz duża historia i poziom medium wydłużyły pracę. To argument za sesjami przypisanymi do zadań. Nie wynika z niego potrzeba obniżania jakości wszystkich prac.

Kopiowalny test profilu

Po zmianie klienta lub ustawień uruchom Qwen Code w pustej kopii repozytorium i podaj:

Utwórz qwen-smoke.json z dokładną treścią {"profile":"medium","ok":true}. Sprawdź ją poleceniem jq -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 oraz końcowa odpowiedź opisująca wyłącznie tę zmianę. Potem w tej samej sesji poproś o zmianę profile na medium-resumed i ponowne wykonanie kontroli. Ten test sprawdza zapis narzędziowy, odczyt wyniku i wznowienie sesji. Nie ocenia jakości kodowania, więc później nadal uruchamiamy zadanie repozytoryjne ze wspólną ukrytą kontrolą.

Konfigurację trzeba przekazać z testem

Po aktualizacji trzeba sprawdzić, czy profil nadal działa. Do konfiguracji 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 łącznego czasu od uruchomienia do końca oraz użycia pamięci VRAM;
  • poprzedni działający profil.

Potrzebujesz działającej konfiguracji na swoim sprzęcie? Syntalith uruchamia prywatne LLM dla firm i osób prywatnych. Dobieramy wersje modelu i klienta, sprawdzamy narzędzia i przekazujemy instrukcję. Możemy też nauczyć zespół utrzymania profilu na Kursie AI-Native.

OpenAI Select Partner

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 firmie

Oceń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
Porozmawiaj o prywatnym AI