Providers
Inferrs
inferrs biedt lokale modellen aan via een OpenAI-compatibele /v1 API. OpenClaw communiceert ermee via de generieke openai-completions-adapter.
| Eigenschap | Waarde |
|---|---|
| Provider-id | inferrs (aangepast; configureer onder models.providers.inferrs) |
| Plugin | geen — geen gebundelde OpenClaw-providerplugin |
| Omgevingsvariabele voor authenticatie | niet vereist; elke waarde werkt als je inferrs-server geen authenticatie gebruikt |
| API | OpenAI-compatibel (openai-completions) |
| Voorgestelde basis-URL | http://127.0.0.1:8080/v1 (of waar je 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 laat je standaardmodel daarnaar verwijzen. Zie het onderstaande configuratievoorbeeld.
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 alleen zelf starten 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 veldenoverzicht: Lokale modelservices.
Geavanceerde configuratie
Waarom requiresStringContent belangrijk is
Sommige inferrs Chat Completions-routes accepteren voor messages[].content alleen tekenreeksen en geen gestructureerde arrays met inhoudsonderdelen.
Kanttekening bij Gemma en toolschema's
Sommige combinaties van inferrs en Gemma accepteren kleine rechtstreekse /v1/chat/completions-verzoeken, maar mislukken bij volledige beurten 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-agentbeurten blijven vastlopen in inferrs, beschouw dit dan als een beperking van het upstreammodel of de upstreamserver en niet als een transportprobleem van OpenClaw.
Handmatige rooktest
Test beide lagen nadat ze zijn geconfigureerd:
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":"Wat is 2 + 2?"}],"stream":false}'openclaw infer model run \ --model inferrs/google/gemma-4-E2B-it \ --prompt "Wat is 2 + 2? Antwoord met één korte zin." \ --jsonAls de eerste opdracht werkt maar de tweede mislukt, raadpleeg dan Probleemoplossing hieronder.
Proxyachtig gedrag
Omdat inferrs de generieke openai-completions-adapter gebruikt (en niet openai-responses), wordt uitsluitend voor native OpenAI bedoelde verzoeksvormgeving nooit toegepast: er worden geen service_tier, geen Responses-store, geen hints voor promptcaching en geen OpenAI-payloadvormgeving voor redeneercompatibiliteit verzonden.
Probleemoplossing
curl /v1/models mislukt
inferrs wordt niet uitgevoerd, is niet bereikbaar of is niet gekoppeld aan de host/poort die je 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 /v1/chat/completions-aanroepen 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 blijft vastlopen bij grotere agentbeurten
Als de schemafouten zijn verdwenen, maar inferrs nog steeds vastloopt bij grotere agentbeurten, beschouw dit dan als een beperking van upstream-inferrs of van het model. Verlaag de promptbelasting of schakel over naar een andere backend of een ander model.
Gerelateerd
OpenClaw uitvoeren met lokale modelservers.
Lokale modelservers op aanvraag starten voor geconfigureerde providers.
Problemen opsporen met lokale OpenAI-compatibele backends die controles doorstaan, maar waarbij agentuitvoeringen mislukken.
Overzicht van alle providers, modelverwijzingen en failovergedrag.