Bramki i modele lokalne: LiteLLM, CC Switch, Claude Code Router, Ollama i LM Studio
Bramka albo lokalny serwer modeli pozwala uruchomić Claude Code i Codex na modelach innych niż endpoint dostawcy: Claude Code przez ANTHROPIC_BASE_URL i zmienną z poświadczeniem, Codex przez --oss albo własnego dostawcę. LiteLLM dokłada budżety na programistę, a Ollama, LM Studio i llama.cpp serwują modele lokalnie. Za każdą z nich przestają działać Remote Control i dyktowanie głosowe.
Ta strona jest dla programisty, który ma uruchomić agenta w sieci, z której kod nie może wyjść, i dla tech leada, który potem daje tę samą konfigurację ośmiu osobom z limitem wydatków. Dział bezpieczeństwa zgodził się na „wyłącznie modele lokalne” dla jednego repozytorium; na jednym laptopie agent po dwóch turach zapomniał o instrukcjach, a na kolejnym ktoś użył tagu :cloud, nie zauważając tego. Potrzebujesz konfiguracji sprawdzalnie lokalnej, z budżetem na osobę i głośnym błędem przy złym ustawieniu.
Co daje ci konfiguracja bramki i modeli lokalnych
Dział zatytułowany „Co daje ci konfiguracja bramki i modeli lokalnych”- Jedną regułę, której podlega każda bramka dla Claude Code, i miejsca, w których po cichu się psuje.
- Tabelę decyzyjną, która przypisuje twojej sytuacji narzędzie.
- Działający przykład: Claude Code na lokalnym modelu z Ollamy, plus Codex i Cursor.
- Workflow zespołowy: Ollama za LiteLLM w odizolowanej sieci, z budżetem na programistę i testami, które dowodzą, że nic nie wychodzi.
- Trzy prompty, pułapki i typowe awarie z naprawami.
Który model serwować i jak zmierzyć różnicę jakości względem Claude Opus 5.5 czy GPT-6 Astra, opisuje strona o modelach open-weight i hostowanych samodzielnie. Wersje i ceny modeli są w centrum modeli. Wdrożenie bramki dla modeli Claude w całej organizacji opisuje strona o bramce LLM, a samą decyzję o hostingu strona gdzie działa model.
Jak Claude Code rozmawia z bramką albo modelem lokalnym?
Dział zatytułowany „Jak Claude Code rozmawia z bramką albo modelem lokalnym?”Claude Code korzysta z Anthropic Messages API. Każdy serwer, który implementuje POST /v1/messages, może zastąpić Anthropic: ustawiasz na niego ANTHROPIC_BASE_URL i dajesz Claude Code poświadczenie. Ollama, LM Studio i llama-server z llama.cpp implementują ten endpoint samodzielnie, więc na jednej maszynie proxy jest opcjonalne. LiteLLM i Claude Code Router stoją przed wieloma backendami naraz.
Najczęściej pomijany element to zmienna z poświadczeniem. Dokumentacja bramek Claude Code (sprawdzona 2026-09-26) podaje trzy reguły:
| Zmienna | Wysyłana jako | Kiedy jej użyć |
|---|---|---|
ANTHROPIC_AUTH_TOKEN | nagłówek Authorization: Bearer | Bramka oczekuje tokenu bearer; domyślny wybór, jeśli nikt ci nic nie powiedział |
ANTHROPIC_API_KEY | nagłówek x-api-key | Bramka oczekuje klucza API; sesja interaktywna raz poprosi cię o jego zatwierdzenie |
apiKeyHelper (ustawienia) | oba nagłówki | Poświadczenie rotuje albo pochodzi z sejfu |
- Samo
ANTHROPIC_BASE_URLniczego nie przełącza. Zmienna z poświadczeniem bramki ma pierwszeństwo przed zapisanym logowaniem claude.ai. Bez niej aktywne zostaje logowanie, a z nim jego limity i rozliczenia. - Blok
envw pliku ustawień wygrywa z eksportem w powłoce tej samej zmiennej. Nigdy nie wpisuj poświadczenia do projektowego.claude/settings.json, bo ten plik trafia do repozytorium; użyj~/.claude/settings.jsonalbo ustawień zarządzanych. - Dowodem jest
/status. Zakładka Status pokazuje wierszAnthropic base URLz adresem bramki i wierszAuth tokenalboAPI keyz nazwą ustawionej zmiennej. WierszLogin methodz kontem claude.ai oznacza, że poświadczenie bramki nie dotarło.
Przewodnik Ollamy dla Claude Code dodaje ANTHROPIC_API_KEY="" obok ANTHROPIC_AUTH_TOKEN, żeby zapomniany klucz API gdzieś w środowisku nie przejął sesji.
Której bramki albo serwera modeli lokalnych użyć?
Dział zatytułowany „Której bramki albo serwera modeli lokalnych użyć?”Zacznij od tego, kto z niej korzysta i gdzie działa model.
| Twoja sytuacja | Wybierz | Dlaczego |
|---|---|---|
| Jedna osoba, chcesz dziś wypróbować model lokalny | Ollama (ollama launch claude) | Jedno polecenie podłącza Claude Code albo Codex do modelu lokalnego; Codex ma też --oss |
| Jedna osoba, aplikacja desktopowa i graficzny wybór modelu | LM Studio | CLI lms, lokalny endpoint /v1/messages i --local-provider lmstudio w Codex |
| Własna kwantyzacja, bez demona, nietypowy sprzęt | llama.cpp (llama-server) | Pełna kontrola; wywołania narzędzi wymagają --jinja |
| Jedna osoba przełącza Claude Code między kilkoma hostowanymi dostawcami | CC Switch albo Claude Code Router | CC Switch to aplikacja desktopowa, która przepisuje konfigurację dostawcy; CCR to lokalna bramka z regułami routingu i fallbackami |
| Jedna osoba, wiele hostowanych modeli za jednym kluczem | OpenRouter | Hostowany router z endpointem zgodnym z Anthropic (źródło wtórne, patrz niżej) |
| Zespół z kluczami, budżetami i logami, modele lokalne albo hostowane | Proxy LiteLLM | Klucze wirtualne dla każdego programisty, max_budget na klucz albo zespół, jedno miejsce do zmiany dostawcy |
| Modele Claude przez bramkę organizacji albo kontrakt chmurowy | Nie ta strona | Bramka LLM i gdzie działa model |
Popularność na dzień 2026-09-26 (gwiazdki GitHub odczytane przez API GitHub): Ollama 181 740; CC Switch 136 915; llama.cpp 129 535; LiteLLM 59 639; Claude Code Router 37 429; otwartoźródłowe CLI lms od LM Studio 5318 (sama aplikacja jest zamknięta). Gwiazdki mierzą zainteresowanie, a nie bezpieczeństwo.
Uruchom Claude Code na lokalnym modelu w Ollamie
Dział zatytułowany „Uruchom Claude Code na lokalnym modelu w Ollamie”To oficjalna integracja Ollamy z Claude Code (docs/integrations/claude-code.mdx w ollama/ollama, sprawdzona 2026-09-26). Działa, bo Ollama „supports a subset of the Anthropic Messages API”.
-
Uruchom Ollamę z kontekstem odpowiednim dla agenta. Domyślny kontekst Ollamy zależy od VRAM: 4k tokenów poniżej 24 GiB, 32k przy 24–48 GiB, 256k od 48 GiB. Ollama zaleca dla narzędzi programistycznych co najmniej 64 000 tokenów, więc na typowym laptopie domyślne ustawienie po cichu obcina prompt systemowy agenta:
Okno terminala # Terminal 1OLLAMA_CONTEXT_LENGTH=64000 ollama serve -
Uruchom Claude Code podłączony do modelu lokalnego.
qwen3.5to tag z przewodnika Ollamy; zastąp go lokalnym tagiem, który sam oceniłeś:Okno terminala # Terminal 2, tryb interaktywny: wybierasz model, Ollama uruchamia Claude Codeollama launch claude# Bez interfejsu, dla skryptów i CI: bez selektorów, w razie potrzeby pobiera modelollama launch claude --model qwen3.5 --yes -- -p "How does this repository work? Name the entry point and the test command."--yespomija selektory i wymaga--model. Wszystko po--trafia do Claude Code, więc-puruchamia go w trybie print. -
Sprawdź, czy model naprawdę działa lokalnie i z ustawionym kontekstem:
Okno terminala ollama ps # CONTEXT powinno pokazać 64000; PROCESSOR powinno pokazać 100% GPU
Powinieneś zobaczyć odpowiedź Claude Code, która wymienia pliki istniejące w twoim repozytorium. Jeśli odpowiedź jest ogólnikowa albo pomija pliki, model nie wywołał narzędzi: najpierw sprawdź kontekst w ollama ps, potem spróbuj modelu obsługującego wywołania narzędzi. Przewodnik Ollamy każe „use tools with compatible models”, a strona zgodności zaznacza, że kontrola wyboru narzędzi, narzędzia odroczone i hostowane wyszukiwanie w sieci „are not fully supported”.
Konfiguracja ręczna z tego samego przewodnika, bez ollama launch:
export ANTHROPIC_AUTH_TOKEN=ollamaexport ANTHROPIC_API_KEY=""export ANTHROPIC_BASE_URL=http://localhost:11434claude --model qwen3.5Ten sam model lokalny w Codex albo Cursor
Dział zatytułowany „Ten sam model lokalny w Codex albo Cursor”Opisane wyżej: ollama launch claude albo ANTHROPIC_BASE_URL z ANTHROPIC_AUTH_TOKEN i ANTHROPIC_API_KEY="". Dla LM Studio schemat jest ten sam po lms server start: ANTHROPIC_BASE_URL=http://localhost:1234, a jako --model podajesz ID załadowanego modelu. Endpoint opisuje dokumentacja LM Studio; połączenie z Claude Code pochodzi z wyciągu wyszukiwarki ze strony lmstudio.ai (źródło wtórne), więc zanim na nim polegasz, uruchom test dymny. llama-server uruchom z --jinja (wymagane do wywołań narzędzi) i -c 65536, a potem ustaw ANTHROPIC_BASE_URL na jego port; llama.cpp nie dokumentuje połączenia z Claude Code, więc obowiązuje ten sam test dymny.
Codex ma wbudowany przełącznik dla lokalnych dostawców (--oss i --local-provider, --help codex-cli 0.157.1):
codex --oss --local-provider ollama -m qwen3.5codex --oss --local-provider lmstudio -m LOADED_MODEL_ID # po `lms server start`ollama launch codex # Ollama zapisuje osobny profil Codexcodex --profile ollama-launch -c 'web_search="disabled"' # ten profil z wyłączonym wyszukiwaniem Ollamyollama launch codex --restore usuwa ten profil.
Przewodnik Ollamy dla Codex również wymaga co najmniej 64k kontekstu. Własny dostawca w config.toml musi obsługiwać Responses API (wire_api = "responses"); pełny blok jest na stronie o modelach open-weight i hostowanych samodzielnie.
Czy agent Cursora może używać modelu serwowanego na twojej maszynie albo w twojej sieci, nie zweryfikowano na dzień 2026-09-26. Nie planuj konfiguracji wyłącznie lokalnej ani odizolowanej na Cursorze, dopóki opiekun konta Cursor nie potwierdzi ścieżki danych na piśmie. claude i codex działają w zintegrowanym terminalu Cursora, więc programista może zostać przy Cursorze jako edytorze, a dla objętego ograniczeniami repozytorium używać agenta terminalowego.
Przełączanie dostawców dla jednej osoby: CC Switch, Claude Code Router i OpenRouter
Dział zatytułowany „Przełączanie dostawców dla jednej osoby: CC Switch, Claude Code Router i OpenRouter”Wszystkie trzy to narzędzia indywidualne. Żadne nie daje budżetów zespołowych, a dwa z nich wysyłają kod do hostowanych dostawców.
CC Switch (farion1231/cc-switch, MIT) to aplikacja desktopowa w Tauri, która przełącza dostawców, serwery MCP, skille i prompty dla Claude Code, Codex, Gemini CLI, OpenCode i sześciu innych narzędzi wymienionych w README. Instalacja: brew install --cask cc-switch na macOS albo instalator MSI, wersja przenośna lub buildy dla Linuksa z wydań na GitHubie. Istnieją strony podszywające się pod projekt, a aplikacja trzyma twoje klucze dostawców, więc pobieraj ją wyłącznie z wydań na GitHubie albo z ccswitch.io, jedynej strony, którą repozytorium nazywa oficjalną.
Claude Code Router (npm @musistudio/claude-code-router 3.1.1, MIT) określa się jako „a local model gateway and control plane for coding agents”. Wersja 3 to przede wszystkim aplikacja desktopowa, z alternatywnym CLI wymagającym Node 22 lub nowszego:
npm install -g @musistudio/claude-code-routerccr ui # interfejs zarządzania na http://127.0.0.1:3458; bramka nasłuchuje na http://127.0.0.1:3456W interfejsie: Providers > Add Provider, potem Server > Start, potem Agent Config > wybierz Claude Code (albo Codex, OpenCode i inne) > zastosuj.
OpenRouter to hostowany router z endpointem zgodnym z Anthropic. Jego cookbook ustawia ANTHROPIC_BASE_URL=https://openrouter.ai/api i umieszcza klucz OpenRouter w ANTHROPIC_AUTH_TOKEN, a także ostrzega, że wywołania narzędzi i rozszerzone myślenie mogą nie działać z modelami spoza Anthropic. Oba szczegóły są wtórne (wyciąg wyszukiwarki ze strony openrouter.ai, nie sama strona, stan na 2026-09-26); sprawdź cookbook przed konfiguracją.
Zespół w sieci odizolowanej z budżetem na programistę
Dział zatytułowany „Zespół w sieci odizolowanej z budżetem na programistę”To workflow, do którego prowadzi cała strona: lokalny serwer modelu → bramka LiteLLM z kluczami i budżetami → zarządzane ustawienia agenta → testy dymne → ewaluacje → code review jak dotąd. Serwer modelu nie nasłuchuje poza własnym hostem, każdy programista ma klucz z limitem wydatków, a ponieważ sieć blokuje ruch wychodzący do hostowanych endpointów, laptop bez klucza do bramki dostaje błąd zamiast po cichu użyć logowania claude.ai.
-
Serwuj model na jednym hoście, tylko na localhost. Uruchom Ollamę (albo vLLM, opisany na stronie o modelach open-weight) na serwerze z GPU z
OLLAMA_CONTEXT_LENGTH=64000, pobieraj wyłącznie tagi lokalne i zostaw go nalocalhost:11434. LiteLLM działa na tym samym hoście i jest jedynym punktem, do którego łączą się programiści, więc serwer modelu nie potrzebuje własnego uwierzytelniania. Na brzegu sieci zablokuj laptopom programistów ruch wychodzący do hostowanych endpointów modeli i przepuszczaj tylkollm-gw.internal; bez tej blokady laptop bez klucza do bramki wraca do zapisanego logowania claude.ai. -
Zainstaluj LiteLLM z przypiętą wersją, z wewnętrznego lustra. Wersje 1.82.7 i 1.82.8 opublikowane w PyPI 24 marca 2026 kradły poświadczenia; 1.82.8 dodawała też plik
.pth, który uruchamia się przy każdym starcie Pythona. Obie zniknęły z PyPI (JSON PyPI z 2026-09-26 po 1.82.6 wymienia od razu 1.83.0), a incydent śledzi zgłoszenie BerriAI/litellm#24518. Lustro albo cache nadal może je przechowywać, więc przypnij wersję i weryfikuj skróty:Okno terminala uv tool install 'litellm[proxy]==1.102.1'# Dla obrazu serwera: przypięcie ze skrótami i instalacja przez pip --require-hashesecho 'litellm[proxy]==1.102.1' > requirements.inuv pip compile --generate-hashes requirements.in -o requirements.txt -
Opisz model i jego cenę wewnętrzną. Klucze wirtualne i budżety wymagają bazy Postgres, którą proxy odczytuje z
DATABASE_URL. Lokalny model domyślnie nic nie kosztuje za token, więc budżet nigdy by nie zadziałał. Nadaj mu wewnętrzną cenę za token (koszt GPU podzielony przez zmierzoną przepustowość) przezinput_cost_per_tokenioutput_cost_per_token:litellm-config.yaml model_list:- model_name: local-coderlitellm_params:model: ollama_chat/qwen3.5api_base: http://localhost:11434input_cost_per_token: 0.0000004 # cena wewnętrzna, nie cena dostawcyoutput_cost_per_token: 0.0000016general_settings:master_key: os.environ/LITELLM_MASTER_KEYdatabase_url: os.environ/DATABASE_URLOkno terminala litellm --config litellm-config.yaml # nasłuchuje na porcie 4000 -
Wydaj każdemu programiście klucz z budżetem.
modelsogranicza, co klucz może wywołać,max_budgetlimituje wydatki w twojej wewnętrznej walucie, abudget_durationgo resetuje (na przykład30d). Klucz główny pochodzi z sejfu i nigdy nie trafia na maszynę programisty:Okno terminala curl -sS https://llm-gw.internal:4000/key/generate \-H "Authorization: Bearer $LITELLM_MASTER_KEY" \-H "Content-Type: application/json" \-d '{"key_alias": "dev-anna", "models": ["local-coder"], "max_budget": 50, "budget_duration": "30d"}'Adres bramki to
https: klucze programistów i klucz główny przechodzą przez sieć wewnętrzną, więc zakończ TLS na reverse proxy przed LiteLLM (albo w samym LiteLLM) z certyfikatem z wewnętrznego CA. Jeśli Claude Code zgłosi wtedy błędy certyfikatów, zobaczNODE_EXTRA_CA_CERTSw sekcji co psuje się za bramką.Limit na poziomie zespołu ustawisz przez
POST /team/new, który też przyjmujemax_budget, a/key/infopokazuje wydatki klucza. -
Skieruj każdego agenta na bramkę przez ustawienia zarządzane. Zmapuj wszystkie aliasy modeli Claude Code na serwowany model, bo Claude Code wywołuje alias Haiku do pracy w tle, na przykład do tytułów sesji, a twoja bramka go nie serwuje. Wyłącz ruch nieistotny, który inaczej nadal idzie do Anthropic i GitHuba (sprawdzanie wersji, telemetria, informacje o wydaniach):
Ustawienia zarządzane: blok env {"env": {"ANTHROPIC_BASE_URL": "https://llm-gw.internal:4000","ANTHROPIC_MODEL": "local-coder","ANTHROPIC_DEFAULT_OPUS_MODEL": "local-coder","ANTHROPIC_DEFAULT_SONNET_MODEL": "local-coder","ANTHROPIC_DEFAULT_HAIKU_MODEL": "local-coder","CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"},"permissions": {"deny": ["WebSearch", "WebFetch"]},"skipWebFetchPreflight": true}Każdy programista podaje własny klucz jako
ANTHROPIC_AUTH_TOKEN(eksport w powłoce,~/.claude/settings.jsonalboapiKeyHelperczytający z sejfu).CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICwyłącza też automatyczne aktualizacje, więc dostarczaj Claude Code przez menedżer pakietów albo wewnętrzne lustro.skipWebFetchPreflightwyłącza sprawdzanie domen przez WebFetch, które mimo ustawionej zmiennej łączy się zapi.anthropic.com. Reguładenycałkowicie odbiera agentowi wyszukiwanie i pobieranie stron, bo w sieci odizolowanej każde z nich jest drogą na zewnątrz (a przez Ollamę także wywołaniem jej hostowanego wyszukiwania). Gdzie leżą ustawienia zarządzane i jak są egzekwowane, opisuje strona o polityce zarządzanej.Dla Codex dodaj dostawcę w
config.tomlzbase_url = "https://llm-gw.internal:4000/v1",env_keywskazującym zmienną z kluczem programisty iwire_api = "responses". LiteLLM dokumentuje endpoint Responses API; potwierdź go w swojej wersji, a test dymny niech pokaże, czy wywołania narzędzi Codex przetrwają drogę w obie strony. -
Zweryfikuj konfigurację, zanim ktokolwiek zacznie na niej pracować. Przeprowadź testy z następnej sekcji na jednym laptopie, a potem wdrażaj.
-
Rób code review wyników agenta tak samo jak wcześniej. Model lokalny zmienia miejsce generowania tokenów, a nie sposób dowodzenia, że zmiana jest poprawna: merge nadal blokują testy, CI, bot do code review i zatwierdzenie przez człowieka.
Jak udowodnić, że bramka działa i ruch zostaje lokalnie?
Dział zatytułowany „Jak udowodnić, że bramka działa i ruch zostaje lokalnie?”Przeprowadź te testy na jednej maszynie programisty przed wdrożeniem i po każdej aktualizacji bramki, modelu albo Claude Code. Tech lead (albo właściciel bramki w zespole platformowym) zatwierdza testy; recenzent pull requesta nadal zatwierdza każdą zmianę.
| Test | Jak | Warunek zaliczenia |
|---|---|---|
| Bramka odpowiada | curl -sS -w '\n%{http_code}\n' -X POST "$ANTHROPIC_BASE_URL/v1/messages" -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" -H "anthropic-version: 2023-06-01" -H "content-type: application/json" -d '{"model": "local-coder", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}' | HTTP 200 i JSON z "type":"message" oraz tablicą content; 401 oznacza zły klucz albo zły nagłówek |
| Sesja idzie przez bramkę | /status w Claude Code | Anthropic base URL pokazuje bramkę; Auth token wskazuje ANTHROPIC_AUTH_TOKEN; brak wiersza Login method |
| Narzędzia działają | Prompt testu dymnego poniżej | Odpowiedź wymienia prawdziwe pliki i prawdziwe polecenie, bez ogólników |
| Kontekst się mieści | ollama ps na serwerze; /context w Claude Code | Kontekst serwera co najmniej 64 000; prompt systemowy i narzędzia zostawiają miejsce na pracę |
| Budżet działa | Wydaj testowy klucz z "max_budget": 0.01 i wysyłaj prompty, aż się wyczerpie | Bramka odrzuca kolejne żądania; /key/info pokazuje wydatki |
| Nic nie wychodzi | Logi ruchu wychodzącego z laptopa i serwera podczas sesji | Brak połączeń z api.anthropic.com, ollama.com i innymi hostowanymi endpointami |
Jakość wyników to osobne pytanie niż łączność. Zanim zespół zacznie polegać na modelu lokalnym, przepuść te same 20–30 zadań z własnych scalonych pull requestów przez bramkę i przez model domyślny, zgodnie z protokołem ewaluacji na stronie o modelach open-weight i hostowanych samodzielnie. Żadne źródło pierwotne nie mierzy spadku jakości modelu lokalnego w Claude Code, więc liczy się tylko twój własny odsetek zaliczonych zadań. Narzędzia do powtarzalnych przebiegów opisuje strona o ewaluacji agentów.
Prompty do skopiowania dla bramek i modeli lokalnych
Dział zatytułowany „Prompty do skopiowania dla bramek i modeli lokalnych”Co psuje się za bramką i jak to naprawić
Dział zatytułowany „Co psuje się za bramką i jak to naprawić”- Znikają Remote Control i
/voice. Oba wymagają tożsamości claude.ai i są niedostępne, gdy aktywne jestANTHROPIC_API_KEY,ANTHROPIC_AUTH_TOKENalboapiKeyHelper. Od v2.1.196 Remote Control jest też wyłączone, gdyANTHROPIC_BASE_URLwskazuje host inny niż Anthropic. Naprawa: zaakceptuj to w sesjach przez bramkę albo usuń zmienne bramki i zaloguj się przez claude.ai do pracy, która może korzystać z Anthropic.claude doctorpokazuje, co blokuje Remote Control. Alternatywy opisują strony o klientach zdalnych i mobilnych oraz o sterowaniu głosem. - Slack i sesje w chmurze ignorują bramkę. Zawsze używają API Anthropic. Naprawa: nie włączaj tych powierzchni użytkownikom, których ruch musi zostać na bramce.
- Ostrzeżenie przy starcie wymienia dwa źródła poświadczeń. Obecne są jednocześnie poświadczenie bramki i zapisane logowanie. Naprawa:
/logout, żeby zostało tylko poświadczenie bramki. - Claude Code prosi o logowanie, choć test curl przechodzi. Poświadczenie leży w projektowym pliku ustawień, który działa dopiero po kreatorze pierwszego uruchomienia i potwierdzeniu zaufania do folderu. Naprawa: wyeksportuj
ANTHROPIC_AUTH_TOKENw powłoce albo wpisz je do~/.claude/settings.jsonlub ustawień zarządzanych. - Błędy
400zcontext_managementalboExtra inputs are not permitted. Upstream odrzuca pola, które Claude Code wysyła do endpointów Anthropic. Naprawa:CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1. - Bramka zgłasza limit kontekstu własnymi słowami. Claude Code nie rozpoznaje błędu, więc nie kompaktuje i nie ponawia. Naprawa:
/compact, a potem ustawCLAUDE_CODE_AUTO_COMPACT_WINDOWna limit bramki. Ta zmienna ma dolną granicę 100 000 tokenów, więc dla lokalnego modelu z 64K kontekstu naprawą pozostaje/compact, a prawdziwym rozwiązaniem jest większy kontekst na serwerze. - Wywołania w tle kończą się błędem nieznanego modelu. Claude Code poprosił o alias Haiku. Naprawa: ustaw wszystkie cztery zmienne
ANTHROPIC_*MODELna serwowany model, jak w kroku 5. - Agent zapomina o instrukcjach albo odpowiada bez czytania plików. Obcięty kontekst albo model bez wywołań narzędzi. Naprawa:
ollama psdla kontekstu, potem prompt testu dymnego; jeśli narzędzia dalej nie działają, zmień model. 403z treścią HTML i pustymi logami bramki. Zapora aplikacji webowych przed bramką zablokowała treść żądania, bo prompty zawierają kod źródłowy i znaczniki w stylu XML. Naprawa: wyłącz inspekcję treści dla ścieżki/v1/messages.- Błędy certyfikatów, choć curl działa. Claude Code nie ufa twojemu wewnętrznemu CA. Naprawa: ustaw
NODE_EXTRA_CA_CERTSna pakiet certyfikatów CA. - Budżet nigdy nie zadziała. Lokalny model nie ma ceny, więc wydatki stoją na zerze. Naprawa: ustaw
input_cost_per_tokenioutput_cost_per_tokenjak w kroku 3.
Co dalej z bramkami i modelami lokalnymi
Dział zatytułowany „Co dalej z bramkami i modelami lokalnymi”- Modele open-weight i hostowane samodzielnie: który model serwować, vLLM dla wspólnego serwera GPU i protokół ewaluacji mierzący różnicę jakości.
- Bramka LLM dla Claude Code: wdrożenie bramki dla modeli Claude w całej organizacji.
- Ile kosztowali agenci?: budżety w bramce obok
/usage, ccusage i raportów wydatków. - Gdzie działa model: SaaS, ścieżki chmurowe, bramki i hosting własny porównane z perspektywy CTO.
- Sandboksy dla agentów: odizoluj maszynę agenta, nie tylko ruch do modelu.
- Przegląd narzędzi agentowych: pozostałe półki, od multiplekserów po boty do code review.
Najczęstsze pytania
Jak skierować Claude Code na bramkę albo model lokalny?
Ustaw ANTHROPIC_BASE_URL na serwer, który implementuje Anthropic Messages API (/v1/messages), i ustaw zmienną z poświadczeniem: ANTHROPIC_AUTH_TOKEN albo ANTHROPIC_API_KEY. Bez niej aktywne pozostaje zapisane logowanie claude.ai. Oba ustawienia potwierdzisz poleceniem /status.
Co przestaje działać w Claude Code za bramką?
Remote Control i dyktowanie głosowe, bo oba wymagają tożsamości claude.ai; Remote Control jest też wyłączone, gdy ANTHROPIC_BASE_URL wskazuje host inny niż Anthropic. Claude Code w Slacku i sesje w chmurze zawsze używają API Anthropic.
Czy LiteLLM można bezpiecznie zainstalować?
Tylko z przypiętą wersją. Wersje 1.82.7 i 1.82.8 opublikowane w PyPI 24 marca 2026 kradły poświadczenia. Obie zniknęły z PyPI, ale nieprzypięta instalacja z cache albo lustra nadal może na nie trafić.
Czy modele w Ollamie zawsze działają lokalnie?
Nie. Tagi kończące się na :cloud (albo -cloud) działają w chmurze Ollamy, więc kod opuszcza maszynę. Jeśli Ollama ma zapewnić rezydencję danych, przypinaj wyłącznie tagi lokalne.