Providers

Menyimpulkan

inferrs menyajikan model lokal melalui API /v1 yang kompatibel dengan OpenAI. OpenClaw berkomunikasi dengannya melalui adaptor generik openai-completions.

Properti Nilai
ID penyedia inferrs (khusus; konfigurasikan di models.providers.inferrs)
Plugin tidak ada — bukan plugin penyedia bawaan OpenClaw
Variabel lingkungan autentikasi tidak diperlukan; nilai apa pun dapat digunakan jika server inferrs Anda tidak memiliki autentikasi
API Kompatibel dengan OpenAI (openai-completions)
URL dasar yang disarankan http://127.0.0.1:8080/v1 (atau lokasi server inferrs Anda mendengarkan)

Memulai

  • Mulai inferrs dengan sebuah model

    bash
    inferrs serve google/gemma-4-E2B-it \  --host 127.0.0.1 \  --port 8080 \  --device metal
  • Pastikan server dapat dijangkau

    bash
    curl http://127.0.0.1:8080/healthcurl http://127.0.0.1:8080/v1/models
  • Tambahkan entri penyedia OpenClaw

    Tambahkan entri penyedia secara eksplisit dan arahkan model default Anda ke entri tersebut. Lihat contoh konfigurasi di bawah.

  • Contoh konfigurasi lengkap

    Gemma 4 pada server inferrs lokal:

    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,            },          },        ],      },    },  },}

    Penyalaan sesuai permintaan

    OpenClaw dapat memulai inferrs sendiri hanya ketika model inferrs/... dipilih. Tambahkan localService ke entri penyedia yang sama:

    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 harus berupa jalur absolut. Jalankan which inferrs pada host Gateway dan gunakan jalur tersebut. Referensi lengkap kolom: Layanan model lokal.

    Konfigurasi lanjutan

    Mengapa requiresStringContent penting

    Beberapa rute Penyelesaian Percakapan inferrs hanya menerima messages[].content berupa string, bukan larik bagian konten terstruktur.

    Catatan khusus Gemma dan skema alat

    Beberapa kombinasi inferrs + Gemma menerima permintaan langsung berukuran kecil ke /v1/chat/completions, tetapi gagal pada putaran penuh runtime agen OpenClaw. Coba nonaktifkan permukaan skema alat terlebih dahulu:

    json5
    compat: {  requiresStringContent: true,  supportsTools: false}

    Hal tersebut mengurangi tekanan prompt pada backend lokal yang lebih ketat. Jika permintaan langsung berukuran kecil masih berfungsi, tetapi putaran agen OpenClaw normal terus mengalami kegagalan di dalam inferrs, anggap hal itu sebagai keterbatasan model/server hulu, bukan masalah transportasi OpenClaw.

    Uji cepat manual

    Uji kedua lapisan setelah dikonfigurasi:

    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

    Jika perintah pertama berfungsi tetapi perintah kedua gagal, lihat Pemecahan masalah di bawah.

    Perilaku bergaya proksi

    Karena inferrs menggunakan adaptor generik openai-completions (bukan openai-responses), pembentukan permintaan yang hanya berlaku untuk OpenAI asli tidak pernah diterapkan: tidak ada service_tier, tidak ada store Responses, tidak ada petunjuk cache prompt, dan tidak ada pembentukan muatan kompatibilitas penalaran OpenAI yang dikirim.

    Pemecahan masalah

    curl /v1/models gagal

    inferrs tidak berjalan, tidak dapat dijangkau, atau tidak terikat ke host/port yang Anda konfigurasi. Pastikan server telah dimulai dan mendengarkan pada alamat tersebut.

    messages[].content mengharapkan string

    Tetapkan compat.requiresStringContent: true dalam entri model (lihat di atas).

    Panggilan langsung /v1/chat/completions berhasil, tetapi openclaw infer model run gagal

    Tetapkan compat.supportsTools: false untuk menonaktifkan permukaan skema alat (lihat catatan khusus Gemma di atas).

    inferrs masih mengalami kegagalan pada putaran agen yang lebih besar

    Jika kesalahan skema telah hilang, tetapi inferrs masih mengalami kegagalan pada putaran agen yang lebih besar, anggap hal itu sebagai keterbatasan inferrs hulu atau model. Kurangi tekanan prompt atau ganti backend/model.

    Terkait

    Was this useful?
    On this page

    On this page