Providers
LM Studio
LM Studio to przyjazna, a zarazem rozbudowana aplikacja do uruchamiania modeli z otwartymi wagami na własnym sprzęcie. Pozwala uruchamiać modele llama.cpp (GGUF) lub MLX (Apple Silicon). Jest dostępna jako pakiet GUI albo bezgłowy daemon (llmster). Dokumentację produktu i konfiguracji znajdziesz na lmstudio.ai.
Szybki start
- Zainstaluj LM Studio (desktop) lub
llmster(bezzgłowo), a następnie uruchom lokalny serwer:
curl -fsSL https://lmstudio.ai/install.sh | bash
- Uruchom serwer
Upewnij się, że uruchomiono aplikację desktopową albo daemon za pomocą tego polecenia:
lms daemon up
lms server start --port 1234
Jeśli używasz aplikacji, upewnij się, że JIT jest włączone, aby uzyskać płynne działanie. Więcej informacji znajdziesz w przewodniku LM Studio po JIT i TTL.
- Jeśli uwierzytelnianie LM Studio jest włączone, ustaw
LM_API_TOKEN:
export LM_API_TOKEN="your-lm-studio-api-token"
Jeśli uwierzytelnianie LM Studio jest wyłączone, możesz pozostawić klucz API pusty podczas interaktywnej konfiguracji OpenClaw.
Szczegóły konfiguracji uwierzytelniania LM Studio znajdziesz w Uwierzytelnianie LM Studio.
- Uruchom onboarding i wybierz
LM Studio:
openclaw onboard
- W onboardingu użyj monitu
Default model, aby wybrać model LM Studio.
Możesz też ustawić lub zmienić go później:
openclaw models set lmstudio/qwen/qwen3.5-9b
Klucze modeli LM Studio mają format author/model-name (np. qwen/qwen3.5-9b). Referencje modeli OpenClaw
dodają na początku nazwę dostawcy: lmstudio/qwen/qwen3.5-9b. Dokładny klucz modelu możesz znaleźć,
uruchamiając curl http://localhost:1234/api/v1/models i sprawdzając pole key.
Onboarding nieinteraktywny
Użyj onboardingu nieinteraktywnego, gdy chcesz oskryptować konfigurację (CI, provisioning, zdalny bootstrap):
openclaw onboard \
--non-interactive \
--accept-risk \
--auth-choice lmstudio
Albo podaj podstawowy URL, model i opcjonalny klucz API:
openclaw onboard \
--non-interactive \
--accept-risk \
--auth-choice lmstudio \
--custom-base-url http://localhost:1234/v1 \
--lmstudio-api-key "$LM_API_TOKEN" \
--custom-model-id qwen/qwen3.5-9b
--custom-model-id przyjmuje klucz modelu zwrócony przez LM Studio (np. qwen/qwen3.5-9b), bez
prefiksu dostawcy lmstudio/.
W przypadku uwierzytelnianych serwerów LM Studio przekaż --lmstudio-api-key albo ustaw LM_API_TOKEN.
W przypadku nieuwierzytelnianych serwerów LM Studio pomiń klucz; OpenClaw zapisze lokalny niepoufny znacznik.
--custom-api-key nadal jest obsługiwane dla zgodności, ale dla LM Studio preferowane jest --lmstudio-api-key.
To zapisuje models.providers.lmstudio i ustawia domyślny model na
lmstudio/<custom-model-id>. Gdy podasz klucz API, konfiguracja zapisze także
profil uwierzytelniania lmstudio:default.
Interaktywna konfiguracja może zapytać o opcjonalną preferowaną długość kontekstu ładowania i zastosować ją do wykrytych modeli LM Studio, które zapisuje w konfiguracji.
Konfiguracja pluginu LM Studio ufa skonfigurowanemu punktowi końcowemu LM Studio dla żądań modeli, w tym hostom loopback, LAN i tailnet. Możesz z tego zrezygnować, ustawiając models.providers.lmstudio.request.allowPrivateNetwork: false.
Konfiguracja
Zgodność użycia w streamingu
LM Studio jest zgodne z użyciem w streamingu. Gdy nie emituje obiektu
usage w kształcie OpenAI, OpenClaw odzyskuje liczniki tokenów z metadanych w stylu llama.cpp:
timings.prompt_n / timings.predicted_n.
Takie samo zachowanie użycia w streamingu dotyczy tych lokalnych backendów zgodnych z OpenAI:
- vLLM
- SGLang
- llama.cpp
- LocalAI
- Jan
- TabbyAPI
- text-generation-webui
Zgodność myślenia
Gdy wykrywanie /api/v1/models w LM Studio raportuje opcje rozumowania
specyficzne dla modelu, OpenClaw udostępnia pasujące wartości reasoning_effort
zgodne z OpenAI w metadanych zgodności modelu. Obecne kompilacje LM Studio mogą reklamować binarne
opcje UI, takie jak allowed_options: ["off", "on"], jednocześnie odrzucając te wartości
w /v1/chat/completions; OpenClaw normalizuje ten binarny kształt wykrywania do
none, minimal, low, medium, high i xhigh przed wysłaniem żądań.
Starsza zapisana konfiguracja LM Studio, która zawiera mapy rozumowania off/on, jest
normalizowana w taki sam sposób podczas ładowania katalogu.
Jawna konfiguracja
{
models: {
providers: {
lmstudio: {
baseUrl: "http://localhost:1234/v1",
apiKey: "${LM_API_TOKEN}",
api: "openai-completions",
models: [
{
id: "qwen/qwen3-coder-next",
name: "Qwen 3 Coder Next",
reasoning: false,
input: ["text"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 128000,
maxTokens: 8192,
},
],
},
},
},
}
Rozwiązywanie problemów
Nie wykryto LM Studio
Upewnij się, że LM Studio działa. Jeśli uwierzytelnianie jest włączone, ustaw także LM_API_TOKEN:
# Start via desktop app, or headless:
lms server start --port 1234
Sprawdź, czy API jest dostępne:
curl http://localhost:1234/api/v1/models
Błędy uwierzytelniania (HTTP 401)
Jeśli konfiguracja zgłasza HTTP 401, zweryfikuj swój klucz API:
- Sprawdź, czy
LM_API_TOKENpasuje do klucza skonfigurowanego w LM Studio. - Szczegóły konfiguracji uwierzytelniania LM Studio znajdziesz w Uwierzytelnianie LM Studio.
- Jeśli serwer nie wymaga uwierzytelniania, pozostaw klucz pusty podczas konfiguracji.
Ładowanie modelu just-in-time
LM Studio obsługuje ładowanie modeli just-in-time (JIT), w którym modele są ładowane przy pierwszym żądaniu. OpenClaw domyślnie wstępnie ładuje modele przez natywny punkt końcowy ładowania LM Studio, co pomaga, gdy JIT jest wyłączone. Aby pozwolić, by JIT, bezczynny TTL i automatyczne usuwanie LM Studio zarządzały cyklem życia modelu, wyłącz krok wstępnego ładowania OpenClaw:
{
models: {
providers: {
lmstudio: {
baseUrl: "http://localhost:1234/v1",
api: "openai-completions",
params: { preload: false },
models: [{ id: "qwen/qwen3.5-9b" }],
},
},
},
}
Host LM Studio w LAN lub tailnet
Użyj osiągalnego adresu hosta LM Studio, zachowaj /v1 i upewnij się, że LM Studio na tej maszynie jest powiązane poza loopback:
{
models: {
providers: {
lmstudio: {
baseUrl: "http://gpu-box.local:1234/v1",
apiKey: "lmstudio",
api: "openai-completions",
models: [{ id: "qwen/qwen3.5-9b" }],
},
},
},
}
W przeciwieństwie do ogólnych dostawców zgodnych z OpenAI, lmstudio automatycznie ufa skonfigurowanemu lokalnemu/prywatnemu punktowi końcowemu dla chronionych żądań modeli. Niestandardowe identyfikatory dostawców loopback, takie jak localhost lub 127.0.0.1, są także automatycznie zaufane; dla niestandardowych identyfikatorów dostawców LAN, tailnet lub prywatnego DNS ustaw jawnie models.providers.<id>.request.allowPrivateNetwork: true.