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 pracę z lokalnym modelem przez llama.cpp i interfejs zgodny z API OpenAI. Claude Code obsługuje bramy zgodne z API Anthropic, ale Anthropic nie wspiera kierowania tego klienta do modeli innych niż Claude. Zadanie z Qwenem zrealizowaliśmy za pośrednictwem Claude Code, ponieważ zmodyfikowany vLLM emulował wymagany interfejs.

Zgodność techniczna pozwala uruchomić konkretną kombinację wersji. Oficjalne wsparcie mówi, czy producent bierze odpowiedzialność za jej utrzymanie i pomoc po aktualizacji. Dla firmy przekłada się to na ryzyko przestoju.

Porównanie przeprowadziliśmy po godzinach na domowym komputerze z RTX 3090. Opisuje zachowanie tych wersji klientów na jednym stosie. Pojedyncze przebiegi nie tworzą rankingu producentów ani prognozy dla innego repozytorium.

OpenCode ma udokumentowaną ścieżkę lokalną

Dokumentacja dostawców OpenCode pokazuje llama.cpp przez pakiet @ai-sdk/openai-compatible, parametr baseURL oraz jawne limity kontekstu i wyjścia. Przy interfejsie Responses wskazuje pakiet @ai-sdk/openai.

Poniżej znajduje się użyta przez nas sekcja dostawcy z usuniętymi lokalnymi ścieżkami. Port, nazwa modelu i limity odpowiadają zmierzonemu profilowi vLLM z kontekstem 150 000 tokenów:

{
  "$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 limity muszą odpowiadać ustawieniom serwera. Konfiguracja do pomiaru miała globalne "*": "allow", aby pytania o zgodę nie zmieniały czasu przebiegu. Tego ustawienia nie przenosimy do zwykłego repozytorium. Tam zostaw pytania o zgodę albo określ wąską listę dozwolonych operacji. Szerokie uprawnienia dotyczyły jednorazowych kopii pozbawionych sekretów.

Cztery rzeczywiste próby OpenCode

ZadanieUkryte kontroleCzasCo pokazała próba
eksport CSV1/332,69 spominął separator wymagany w README
paginacja3/3325,88 sprzygotował minimalną poprawkę, potem zbędnie przeglądał .git i podał nieprawdziwe zdanie w raporcie
import CSV5/589,04 snajszybszy w pełni poprawny wynik tego zadania
druga tura importu3/3130,03 spoprawnie utworzył lub zaktualizował rekord w tej samej sesji

To pełniejszy obraz niż zdanie „OpenCode działa”. W jednym zadaniu wypadł bardzo dobrze, w innym naruszył jawny kontrakt, a po poprawnym kodzie czasem kontynuował pracę bez potrzeby. Dlatego sprawdzamy ukryte kontrole, końcowy zestaw zmian i opis wyniku.

Brama Claude Code ma określoną granicę

Dokumentacja połączenia z bramą Claude Code opisuje ANTHROPIC_BASE_URL i poświadczenie. Brama może centralizować uwierzytelnianie, logowanie oraz kierowanie żądań do obsługiwanych modeli Claude.

Dokumentacja wsparcia Anthropic mówi wprost, że kierowanie Claude Code do modeli innych niż Claude nie jest obsługiwane. Standard firmowy nie powinien zależeć od tego, czy kolejna wersja klienta nadal będzie zgodna z emulatorem.

Co pokazał eksperyment Claude Code

Wczesna próba Claude Code na llama.cpp trwała 7298,5 sekundy i przekroczyła dostępny kontekst. Zadanie pozostało nieukończone, a pozostawionego testu nie dało się skompilować, więc próba nie dostała końcowej oceny jakości.

Na zmodyfikowanym vLLM z kontekstem 150 000 tokenów Claude Code i Qwen Code dostały to samo długie polecenie: naprawić dwa miejsca w Go, które ignorowały błędy json.Marshal, zachować format poprawnej odpowiedzi, dodać deterministyczne zachowanie awaryjne, testy oraz dokumentację.

Klient sterujący Qwen3.8-27BOcenaCzasWywołaniaCo sprawdzono
Qwen Code100/100502,14 s52brak odjęć według kryteriów, 2 testy regresji
Claude Code przez emulację98/1001732,38 s50dwa punkty odjęte, poprawne zachowanie awaryjne i 6 testów

Codex przyznał obie oceny po przebiegach agentów, stosując kryteria Syntalith: poprawność (40 punktów), testy regresji (20), zgodność (15), zakres zmian i utrzymywalność (10), weryfikacja (10) oraz dokumentacja (5). Wynik 100/100 oznacza brak odjętych punktów w tych kryteriach podczas tej jednej próby. Wynik 98/100 oznacza dwa punkty mniej w tej samej ocenie, ale opublikowane podsumowanie nie rozbija tej różnicy na kategorie. Nie jest to ocena zewnętrznego audytora ani dowód powtarzalności.

Claude Code potrzebował 3,45 razy więcej czasu. W tej próbie połączył dobry wynik jakościowy z wysokim kosztem czasowym. Rezultat pokazuje zgodność tej wersji klienta z tą wersją emulatora i nie uzasadnia szerszych wniosków.

Jak podjąć decyzję na podstawie pracy

  1. Daj klientom ten sam stan kodu, polecenie, limit kontekstu, poziom wysiłku i politykę narzędzi.
  2. Użyj ukrytych kontroli, których agent nie widzi w prompcie.
  3. Odrzuć wynik, gdy narusza kontrakt, nawet przy zielonych testach publicznych.
  4. Zapisz wersje klienta, dostawcy i szablonu czatu.
  5. Po aktualizacji powtórz krótki test podstawowy, wznowienie sesji i jedno zadanie regresyjne.

OpenCode jest mocnym kandydatem do udokumentowanego profilu lokalnego. Qwen Code uzyskał najlepszy wynik w naszym długim zadaniu. Codex ma oficjalną konfigurację własnego dostawcy. Emulacja Claude Code ma wartość badawczą, lecz Anthropic jej nie wspiera, więc nie proponujemy jej jako firmowego standardu.

Syntalith może zbudować dwa kontrolowane profile i zestaw ukrytych kontroli, a następnie nauczyć zespół samodzielnej oceny na Kursie AI-Native. Usługa kończy się wyborem, który można sprawdzić i przekazać zespołowi. Domowy GPU pozostaje narzędziem eksperymentu. Bezpłatny skan procesu pomaga dobrać klienta 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