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
Wykrywanie modeli (dostawca niejawny)
Gdy ustawionoVLLM_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ścicontextWindow/maxTokens, serwer wymaga prawdziwego klucza API albo łączysz się z zaufanym punktem końcowym loopback, LAN lub Tailscale:
Konfiguracja zaawansowana
Działanie w stylu serwera proxy
Działanie w stylu serwera proxy
vLLM jest traktowany jako zgodne z OpenAI zaplecze
/v1 działające w stylu serwera proxy, a nie jako natywny punkt końcowy OpenAI:Sterowanie rozumowaniem Qwen
Sterowanie rozumowaniem Qwen
W przypadku modeli Qwen ustaw OpenClaw mapuje Poziomy rozumowania inne niż
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./think off na: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.Sterowanie rozumowaniem Nemotron 3
Sterowanie rozumowaniem Nemotron 3
W przypadku modeli Aby dostosować te wartości, ustaw
vllm/nemotron-3-* z wyłączonym rozumowaniem dołączony Plugin wysyła: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.Wywołania narzędzi Qwen pojawiają się jako tekst
Wywołania narzędzi Qwen pojawiają się jako tekst
Najpierw potwierdź, że vLLM został uruchomiony z właściwym parserem wywołań narzędzi oraz szablonem czatu dla danego modelu. Dokumentacja vLLM wskazuje Zastąp identyfikator modelu dokładnym identyfikatorem zwróconym przez 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.
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:openclaw models list --provider vllm albo zastosuj to samo nadpisanie za pomocą CLI:Niestandardowy bazowy URL
Niestandardowy bazowy URL
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
Powolna pierwsza odpowiedź lub przekroczenie limitu czasu serwera zdalnego
Powolna pierwsza odpowiedź lub przekroczenie limitu czasu serwera zdalnego
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.Serwer jest nieosiągalny
Serwer jest nieosiągalny
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.Błędy uwierzytelniania żądań
Błędy uwierzytelniania żądań
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.Nie wykryto modeli
Nie wykryto modeli
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/*": {}.Narzędzia są wyświetlane jako surowy tekst
Narzędzia są wyświetlane jako surowy tekst
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, gdytool_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.