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

    bash
    inferrs serve google/gemma-4-E2B-it \  --host 127.0.0.1 \  --port 8080 \  --device metal
  • Controleer of de server bereikbaar is

    bash
    curl http://127.0.0.1:8080/healthcurl http://127.0.0.1:8080/v1/models
  • Voeg 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:

    json5
    {  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:

    json5
    {  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:

    json5
    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:

    bash
    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}'
    bash
    openclaw infer model run \  --model inferrs/google/gemma-4-E2B-it \  --prompt "What is 2 + 2? Reply with one short sentence." \  --json

    Als 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

    Was this useful?
    On this page

    On this page