Providers
Leidt af
inferrs stelt lokale modellen beschikbaar via een OpenAI-compatibele /v1-API. OpenClaw communiceert ermee via de generieke openai-completions-adapter.
| Eigenschap | Waarde |
|---|---|
| Provider-id | inferrs (aangepast; configureren onder models.providers.inferrs) |
| Plugin | geen — geen gebundelde OpenClaw-providerplugin |
| Omgevingsvariabele voor authenticatie | niet vereist; elke waarde werkt als uw inferrs-server geen authenticatie gebruikt |
| API | OpenAI-compatibel (openai-completions) |
| Voorgestelde basis-URL | http://127.0.0.1:8080/v1 (of waar uw inferrs-server ook luistert) |
Aan de slag
Start inferrs met een model
inferrs serve google/gemma-4-E2B-it \ --host 127.0.0.1 \ --port 8080 \ --device metalControleer of de server bereikbaar is
curl http://127.0.0.1:8080/healthcurl http://127.0.0.1:8080/v1/modelsVoeg een OpenClaw-providervermelding toe
Voeg een expliciete providervermelding toe en verwijs uw standaardmodel ernaar. Zie het configuratievoorbeeld hieronder.
Volledig configuratievoorbeeld
Gemma 4 op een lokale inferrs-server:
{ 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, }, }, ], }, }, },}Starten op aanvraag
OpenClaw kan inferrs zelf starten, maar alleen wanneer een inferrs/...-model is geselecteerd. Voeg localService toe aan dezelfde providervermelding:
{ models: { providers: { inferrs: { baseUrl: "http://127.0.0.1:8080/v1", apiKey: "inferrs-local", api: "openai-completions", timeoutSeconds: 300, localService: { command: "/opt/homebrew/bin/inferrs", args: [ "serve", "google/gemma-4-E2B-it", "--host", "127.0.0.1", "--port", "8080", "--device", "metal", ], healthUrl: "http://127.0.0.1:8080/v1/models", readyTimeoutMs: 180000, idleStopMs: 0, }, 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, }, }, ], }, }, },}command moet een absoluut pad zijn. Voer which inferrs uit op de Gateway-host en gebruik dat pad. Volledig veldoverzicht: Lokale modelservices.
Geavanceerde configuratie
Waarom requiresStringContent belangrijk is
Sommige Chat Completions-routes van inferrs accepteren voor messages[].content alleen tekenreeksen, geen gestructureerde arrays met inhoudsdelen.
Kanttekening bij Gemma en het toolschema
Sommige combinaties van inferrs en Gemma accepteren kleine, rechtstreekse verzoeken aan /v1/chat/completions, maar mislukken bij volledige uitvoeringen van de OpenClaw-agentruntime. Probeer eerst het toolschema-oppervlak uit te schakelen:
compat: { requiresStringContent: true, supportsTools: false}Dat verlaagt de promptbelasting voor strengere lokale backends. Als kleine rechtstreekse verzoeken nog steeds werken, maar normale OpenClaw-agentuitvoeringen binnen inferrs blijven vastlopen, beschouw dit dan als een beperking van het bovenliggende model of de server en niet als een transportprobleem van OpenClaw.
Handmatige rooktest
Test na de configuratie beide lagen:
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." \ --jsonAls de eerste opdracht werkt, maar de tweede mislukt, raadpleeg dan Problemen oplossen hieronder.
Gedrag als proxy
Omdat inferrs de generieke openai-completions-adapter gebruikt (en niet openai-responses), wordt verzoekopmaak die uitsluitend voor de systeemeigen OpenAI-integratie geldt nooit toegepast: er worden geen service_tier, geen Responses-store, geen aanwijzingen voor promptcaching en geen OpenAI-payloadopmaak voor compatibiliteit met redeneren verzonden.
Problemen oplossen
curl /v1/models mislukt
inferrs wordt niet uitgevoerd, is niet bereikbaar of is niet gekoppeld aan de host en poort die u hebt geconfigureerd. Controleer of de server is gestart en op dat adres luistert.
messages[].content verwachtte een tekenreeks
Stel compat.requiresStringContent: true in bij de modelvermelding (zie hierboven).
Rechtstreekse aanroepen van /v1/chat/completions slagen, maar openclaw infer model run mislukt
Stel compat.supportsTools: false in om het toolschema-oppervlak uit te schakelen (zie de kanttekening bij Gemma hierboven).
inferrs loopt nog steeds vast bij grotere agentuitvoeringen
Als de schemafouten zijn verdwenen, maar inferrs nog steeds vastloopt bij grotere agentuitvoeringen, beschouw dit dan als een beperking van het bovenliggende inferrs of het model. Verlaag de promptbelasting of stap over op een andere backend of een ander model.
Gerelateerd
OpenClaw uitvoeren met lokale modelservers.
Lokale modelservers op aanvraag starten voor geconfigureerde providers.
Problemen opsporen in lokale OpenAI-compatibele backends die controles doorstaan, maar waarbij agentuitvoeringen mislukken.
Overzicht van alle providers, modelverwijzingen en failovergedrag.