Providers
Wnioskuje
inferrs może udostępniać modele lokalne za zgodnym z OpenAI API /v1. OpenClaw działa z inferrs przez ogólną ścieżkę openai-completions.
| Właściwość | Wartość |
|---|---|
| Identyfikator dostawcy | inferrs (niestandardowy; skonfiguruj w models.providers.inferrs) |
| Plugin | brak — inferrs nie jest dołączonym Pluginem dostawcy OpenClaw |
| Zmienna środowiskowa auth | Opcjonalna. Dowolna wartość działa, jeśli Twój serwer inferrs nie ma auth |
| API | zgodne z OpenAI (openai-completions) |
| Sugerowany bazowy URL | http://127.0.0.1:8080/v1 (lub tam, gdzie działa Twój serwer inferrs) |
Pierwsze kroki
Uruchom inferrs z modelem
inferrs serve google/gemma-4-E2B-it \
--host 127.0.0.1 \
--port 8080 \
--device metal
Sprawdź, czy serwer jest osiągalny
curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/v1/models
Dodaj wpis dostawcy OpenClaw
Dodaj jawny wpis dostawcy i skieruj na niego swój domyślny model. Zobacz pełny przykład konfiguracji poniżej.
Pełny przykład konfiguracji
Ten przykład używa Gemma 4 na lokalnym serwerze inferrs.
{
agents: {
defaults: {
model: { primary: "inferrs/google/gemma-4-E2B-it" },
models: {
"inferrs/google/gemma-4-E2B-it": {
alias: "Gemma 4 (inferrs)",
},
},
},
},
models: {
mode: "merge",
providers: {
inferrs: {
baseUrl: "http://127.0.0.1:8080/v1",
apiKey: "inferrs-local",
api: "openai-completions",
models: [
{
id: "google/gemma-4-E2B-it",
name: "Gemma 4 E2B (inferrs)",
reasoning: false,
input: ["text"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 131072,
maxTokens: 4096,
compat: {
requiresStringContent: true,
},
},
],
},
},
},
}
Konfiguracja zaawansowana
Dlaczego requiresStringContent ma znaczenie
Niektóre trasy Chat Completions w inferrs akceptują tylko ciąg znaków
messages[].content, a nie tablice strukturalnych części treści.
compat: {
requiresStringContent: true
}
OpenClaw spłaszczy części treści zawierające wyłącznie tekst do zwykłych ciągów znaków przed wysłaniem żądania.
Gemma i zastrzeżenie dotyczące schematu narzędzi
Niektóre bieżące kombinacje inferrs + Gemma akceptują małe bezpośrednie
żądania /v1/chat/completions, ale nadal zawodzą przy pełnych turach środowiska
wykonawczego agenta OpenClaw.
Jeśli tak się dzieje, najpierw spróbuj tego:
compat: {
requiresStringContent: true,
supportsTools: false
}
Wyłącza to powierzchnię schematu narzędzi OpenClaw dla modelu i może zmniejszyć presję promptu na bardziej rygorystyczne lokalne backendy.
Jeśli bardzo małe bezpośrednie żądania nadal działają, ale normalne tury agenta OpenClaw wciąż
powodują awarię wewnątrz inferrs, pozostały problem zwykle dotyczy zachowania modelu/serwera
upstream, a nie warstwy transportu OpenClaw.
Ręczny test dymny
Po skonfigurowaniu przetestuj obie warstwy:
curl http://127.0.0.1:8080/v1/chat/completions \
-H 'content-type: application/json' \
-d '{"model":"google/gemma-4-E2B-it","messages":[{"role":"user","content":"What is 2 + 2?"}],"stream":false}'
openclaw infer model run \
--model inferrs/google/gemma-4-E2B-it \
--prompt "What is 2 + 2? Reply with one short sentence." \
--json
Jeśli pierwsze polecenie działa, ale drugie kończy się niepowodzeniem, sprawdź sekcję rozwiązywania problemów poniżej.
Zachowanie w stylu proxy
inferrs jest traktowany jako backend /v1 zgodny z OpenAI w stylu proxy, a nie
natywny punkt końcowy OpenAI.
- Natywne kształtowanie żądań specyficzne tylko dla OpenAI nie ma tutaj zastosowania
- Brak
service_tier, brak Responsesstore, brak wskazówek pamięci podręcznej promptu i brak kształtowania ładunku reasoning zgodnego z OpenAI - Ukryte nagłówki atrybucji OpenClaw (
originator,version,User-Agent) nie są wstrzykiwane dla niestandardowych bazowych URL-iinferrs
Rozwiązywanie problemów
curl /v1/models kończy się niepowodzeniem
inferrs nie działa, jest nieosiągalny albo nie jest powiązany z oczekiwanym
hostem/portem. Upewnij się, że serwer został uruchomiony i nasłuchuje pod adresem,
który skonfigurowano.
messages[].content oczekuje ciągu znaków
Ustaw compat.requiresStringContent: true we wpisie modelu. Szczegóły znajdziesz
w sekcji requiresStringContent powyżej.
Bezpośrednie wywołania /v1/chat/completions przechodzą, ale openclaw infer model run kończy się niepowodzeniem
Spróbuj ustawić compat.supportsTools: false, aby wyłączyć powierzchnię schematu narzędzi.
Zobacz zastrzeżenie dotyczące schematu narzędzi Gemma powyżej.
inferrs nadal ulega awarii przy większych turach agenta
Jeśli OpenClaw nie otrzymuje już błędów schematu, ale inferrs nadal ulega awarii przy większych
turach agenta, traktuj to jako ograniczenie upstream w inferrs albo modelu. Zmniejsz
presję promptu albo przełącz się na inny lokalny backend lub model.
Powiązane
Uruchamianie OpenClaw z lokalnymi serwerami modeli.
Debugowanie lokalnych backendów zgodnych z OpenAI, które przechodzą próby, ale zawodzą przy uruchomieniach agenta.
Omówienie wszystkich dostawców, odwołań do modeli i zachowania failover.