Skip to main content
vLLM udostępnia modele open source (oraz niektóre modele niestandardowe) przez interfejs HTTP API zgodny z OpenAI. OpenClaw łączy się za pomocą API openai-completions i może automatycznie wykrywać modele po wyrażeniu zgody przez ustawienie VLLM_API_KEY.

Pierwsze kroki

1

Uruchom vLLM z serwerem zgodnym z OpenAI

Bazowy URL musi udostępniać punkty końcowe /v1 (/v1/models, /v1/chat/completions). vLLM zwykle działa pod adresem:
2

Ustaw zmienną środowiskową klucza API

Jeśli serwer nie wymusza uwierzytelniania, zadziała dowolna niepusta wartość:
3

Wybierz model

Zastąp wartość jednym z identyfikatorów modeli vLLM:
4

Sprawdź, czy model jest dostępny

W przypadku konfiguracji nieinteraktywnej (CI, skrypty) przekaż bezpośrednio bazowy URL, klucz i model:

Wykrywanie modeli (dostawca niejawny)

Gdy ustawiono VLLM_API_KEY (lub istnieje profil uwierzytelniania), a models.providers.vllm nie jest zdefiniowane, OpenClaw wysyła zapytanie GET http://127.0.0.1:8000/v1/models i przekształca zwrócone identyfikatory we wpisy modeli.
Jeśli jawnie ustawisz models.providers.vllm, OpenClaw użyje wyłącznie zadeklarowanych modeli. Dodaj "vllm/*": {} do agents.defaults.models, aby OpenClaw również odpytywał punkt końcowy /models skonfigurowanego dostawcy i uwzględniał wszystkie ogłaszane modele vLLM.

Konfiguracja jawna

Skonfiguruj dostawcę jawnie, gdy vLLM działa na innym hoście lub porcie, chcesz ustalić wartości contextWindow/maxTokens, serwer wymaga prawdziwego klucza API albo łączysz się z zaufanym punktem końcowym loopback, LAN lub Tailscale:
Aby zachować dynamicznego dostawcę bez wymieniania każdego modelu, dodaj symbol wieloznaczny do widocznego katalogu modeli:

Konfiguracja zaawansowana

vLLM jest traktowany jako zgodne z OpenAI zaplecze /v1 działające w stylu serwera proxy, a nie jako natywny punkt końcowy OpenAI:
W przypadku modeli Qwen ustaw compat.thinkingFormat: "qwen-chat-template" we wpisie modelu, gdy serwer oczekuje argumentów szablonu czatu Qwen. Modele te udostępniają binarny profil /think (off, on), ponieważ rozumowanie w szablonie czatu Qwen jest przełącznikiem włączone/wyłączone, a nie skalą poziomu wysiłku w stylu OpenAI.
OpenClaw mapuje /think off na:
Poziomy rozumowania inne niż off wysyłają enable_thinking: true. Jeśli punkt końcowy oczekuje zamiast tego flag najwyższego poziomu w stylu DashScope, użyj compat.thinkingFormat: "qwen", aby wysyłać enable_thinking w głównym obiekcie żądania.
W przypadku modeli vllm/nemotron-3-* z wyłączonym rozumowaniem dołączony Plugin wysyła:
Aby dostosować te wartości, ustaw chat_template_kwargs w parametrach modelu. Jeśli ustawisz również params.extra_body.chat_template_kwargs, ta wartość ma pierwszeństwo, ponieważ extra_body jest ostatnim nadpisaniem treści żądania.
Najpierw potwierdź, że vLLM został uruchomiony z właściwym parserem wywołań narzędzi oraz szablonem czatu dla danego modelu. Dokumentacja vLLM wskazuje hermes dla modeli Qwen2.5 i qwen3_xml dla modeli Qwen3-Coder.Objawy: Skills/narzędzia nigdy się nie uruchamiają, asystent wyświetla surowy kod JSON/XML, taki jak {"name":"read","arguments":...}, albo vLLM zwraca pustą tablicę tool_calls, gdy OpenClaw wysyła tool_choice: "auto".Niektóre kombinacje Qwen/vLLM zwracają ustrukturyzowane wywołania narzędzi tylko wtedy, gdy żądanie używa tool_choice: "required". Wymuś to osobno dla modelu za pomocą params.extra_body:
Zastąp identyfikator modelu dokładnym identyfikatorem zwróconym przez openclaw models list --provider vllm albo zastosuj to samo nadpisanie za pomocą CLI:
Jest to opcjonalne obejście wymagające jawnego włączenia: wymusza ono wywołanie narzędzia w każdej turze z narzędziami, dlatego używaj go tylko dla osobnego wpisu modelu, w którym takie działanie jest akceptowalne. Nie ustawiaj go jako globalnej wartości domyślnej dla wszystkich modeli vLLM i nie łącz go z serwerem proxy, który przekształca dowolny tekst asystenta w wykonywalne wywołania narzędzi.
Jeśli serwer vLLM działa na hoście lub porcie innym niż domyślny, ustaw baseUrl w jawnej konfiguracji dostawcy:

Rozwiązywanie problemów

W przypadku dużych modeli lokalnych, zdalnych hostów LAN lub połączeń w sieci tailnet ustaw limit czasu żądania dla dostawcy:
timeoutSeconds dotyczy wyłącznie żądań HTTP modeli vLLM: ustanawiania połączenia, nagłówków odpowiedzi, strumieniowania treści oraz całkowitego przerwania chronionego pobierania. Podnosi również limit mechanizmu nadzorującego bezczynność/strumień LLM ponad niejawną domyślną wartość około 120 sekund dla tego dostawcy. Preferuj tę opcję zamiast zwiększania agents.defaults.timeoutSeconds, które kontroluje całe uruchomienie agenta.
Sprawdź, czy serwer vLLM jest uruchomiony i dostępny:
Jeśli wystąpi błąd połączenia, sprawdź host, port oraz czy vLLM został uruchomiony w trybie serwera zgodnego z OpenAI. OpenClaw ufa dokładnemu źródłu skonfigurowanemu w models.providers.vllm.baseUrl dla chronionych żądań modeli kierowanych do punktów końcowych loopback, LAN i Tailscale. Źródła metadanych i adresy link-local pozostają zablokowane bez jawnej zgody. Ustaw models.providers.vllm.request.allowPrivateNetwork: true tylko wtedy, gdy żądania vLLM muszą docierać do innego prywatnego źródła, albo false, aby wyłączyć zaufanie do dokładnie wskazanego źródła.
Jeśli żądania kończą się błędami uwierzytelniania, ustaw prawdziwy VLLM_API_KEY, który odpowiada konfiguracji serwera, albo skonfiguruj dostawcę jawnie w models.providers.vllm.
Jeśli serwer vLLM nie wymusza uwierzytelniania, dowolna niepusta wartość VLLM_API_KEY działa jako sygnał zgody dla OpenClaw.
Automatyczne wykrywanie wymaga ustawienia VLLM_API_KEY. Jeśli zdefiniowano models.providers.vllm, OpenClaw używa wyłącznie zadeklarowanych modeli, chyba że agents.defaults.models zawiera "vllm/*": {}.
Jeśli model Qwen wyświetla składnię narzędzi JSON/XML zamiast wykonywać Skill:
  • Uruchom vLLM z właściwym parserem/szablonem dla tego modelu.
  • Potwierdź dokładny identyfikator modelu za pomocą openclaw models list --provider vllm.
  • Dodaj osobne dla danego modelu nadpisanie params.extra_body.tool_choice: "required" tylko wtedy, gdy tool_choice: "auto" nadal zwraca puste lub wyłącznie tekstowe wywołania narzędzi.

Powiązane

Wybór modelu

Wybieranie dostawców, odwołań do modeli i sposobu przełączania awaryjnego.

OpenAI

Natywny dostawca OpenAI i działanie tras zgodnych z OpenAI.

OAuth i uwierzytelnianie

Szczegóły uwierzytelniania i zasady ponownego używania poświadczeń.

Rozwiązywanie problemów

Typowe problemy i sposoby ich rozwiązywania.