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

Claude Code i OpenCode z lokalnym Qwenem

OpenCode ma udokumentowane połączenie z modelem lokalnym. Claude Code wymaga zgodnej bramy, a Anthropic nie wspiera kierowania klienta do modeli innych niż Claude.

Autor

Syntalith

Opublikowano Zaktualizowano 3 min czytania

OpenCode oficjalnie opisuje połączenie z lokalnym llama.cpp przez interfejs zgodny z API OpenAI. Claude Code potrafi łączyć się z bramą zgodną z API Anthropic, ale producent nie wspiera kierowania tego klienta do modeli innych niż Claude. Nasz Qwen ukończył zadanie przez Claude Code tylko dlatego, że zmodyfikowany vLLM emulował wymagany interfejs sieciowy.

Zgodność techniczna pozwala uruchomić próbę. Oficjalne wsparcie określa, czy producent zobowiązuje się utrzymać dane połączenie i pomóc po aktualizacji. Dla firmy ta różnica wpływa na ryzyko przestoju.

Porównanie wykonaliśmy po godzinach na domowym komputerze z RTX 3090. Pokazuje zachowanie klientów na tym jednym stosie. Nie jest rankingiem producentów ani obietnicą wyników na innym repozytorium.

Ścieżka opisana przez OpenCode

Dokumentacja OpenCode pokazuje konfigurację llama.cpp przez pakiet @ai-sdk/openai-compatible, baseURL i jawne limity kontekstu oraz wyjścia. Dla protokołu Responses wskazuje osobny pakiet @ai-sdk/openai.

Poniżej jest użyta przez nas sekcja dostawcy po usunięciu lokalnych ścieżek. Port, nazwa modelu i limity odpowiadają mierzonemu profilowi vLLM 150k:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "qwen-local": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Local Qwen vLLM",
      "options": {
        "baseURL": "http://127.0.0.1:18020/v1",
        "apiKey": "{env:QWEN_VLLM_API_KEY}"
      },
      "models": {
        "qwen3.8-27b": {
          "name": "Qwen3.8-27B 150K Medium",
          "limit": { "context": 150000, "output": 32768 },
          "options": { "reasoningEffort": "medium" }
        }
      }
    }
  }
}

Klucz i dokładne limity muszą odpowiadać serwerowi. Konfiguracja testowa miała globalne "*": "allow", aby pytania o zgodę nie zniekształcały czasu. Tego ustawienia nie należy przenosić do normalnego repozytorium. Użyj pytań o zgodę albo jawnej listy dozwolonych operacji. Szerokie uprawnienia miały sens wyłącznie w jednorazowych kopiach bez sekretów.

Cztery realne próby OpenCode

ZadanieUkryte kontroleCzasCo trzeba wiedzieć
eksport CSV1/332,69 spominął wymagany w README własny separator
paginacja3/3325,88 sminimalna poprawka, potem zbędna inspekcja .git i błędne zdanie w raporcie
import CSV5/589,04 snajszybszy w pełni poprawny wynik tej komórki
druga tura importu3/3130,03 spoprawne tworzenie lub aktualizacja rekordu w tej samej sesji

To przydatniejszy obraz niż „OpenCode działa”. Klient był świetny w jednym zadaniu, złamał jawny kontrakt w drugim i po poprawnym kodzie potrafił dalej błądzić. Dlatego do oceny dołączamy testy ukryte i sprawdzamy końcowy zestaw zmian oraz raport.

Brama Claude Code ma węższy zakres

Dokumentacja połączenia bramy Claude Code opisuje ANTHROPIC_BASE_URL i poświadczenie. Taka brama może centralizować uwierzytelnienie, logowanie oraz kierowanie żądań do obsługiwanych modeli Claude.

Granica wsparcia Anthropic jest jednoznaczna: kierowanie Claude Code do modeli innych niż Claude nie jest obsługiwane. Nie należy budować produkcyjnego standardu na nadziei, że następna wersja klienta zachowa przypadkową zgodność z emulatorem.

Co pokazał eksperyment Claude Code

Pierwsza próba Claude Code na llama.cpp trwała 7298,5 s, przekroczyła kontekst i pozostawiła niedający się skompilować test. Zadanie nie zostało ukończone, więc próba nie dostała końcowej oceny.

Na zmodyfikowanym vLLM z limitem 150k Claude Code i Qwen Code dostały to samo długie polecenie: naprawić dwa zignorowane błędy json.Marshal w Go, zachować format odpowiedzi, dodać deterministyczne zachowanie awaryjne, testy i dokumentację.

Klient z Qwen3.8-27BOcenaCzasWywołaniaWynik
Qwen Code100/100502,14 s52zaakceptowany
Claude Code przez emulację98/1001732,38 s50poprawne zachowanie awaryjne i 6 testów

Claude Code był 3,45 razy wolniejszy. To dobry wynik jakościowy i słaby kandydat na domyślną ścieżkę operacyjną. Dowodzi zgodności tej wersji klienta z tą wersją emulatora, niczego więcej.

Jak podjąć decyzję bez wojny marek

  1. Daj klientom ten sam stan kodu, polecenie, limit kontekstu, poziom wysiłku i politykę narzędzi.
  2. Oceniaj ukrytymi kontrolami, których agent nie widzi w prompcie.
  3. Odrzuć wynik za naruszenie kontraktu nawet wtedy, gdy publiczne testy są zielone.
  4. Zapisz wersję programu, dostawcy i szablonu czatu.
  5. Po aktualizacji powtórz krótki test podstawowy, wznowienie sesji i jedno zadanie regresyjne.

OpenCode jest rozsądniejszym kandydatem do dokumentowanego lokalnego profilu. Qwen Code wygrał nasze długie zadanie. Codex ma po swojej stronie oficjalną konfigurację własnego dostawcy. Emulacja Claude Code ma wartość badawczą, ale Anthropic nie wspiera tego parowania, więc nie proponujemy jej jako firmowego standardu.

Syntalith może zbudować dwa kontrolowane profile, zestaw ukrytych kontroli i procedurę aktualizacji, a potem nauczyć zespół samodzielnej oceny na Kursie AI-Native. Wartością usługi są przewidywalny wybór i odbiór. Domowy GPU nie jest przedmiotem sprzedaży. Bezpłatny skan procesu dobiera narzędzie do pracy i wymaganego poziomu wsparcia.

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