Providers

Menyimpulkan

inferrs dapat menyajikan model lokal di balik API /v1 yang kompatibel dengan OpenAI. OpenClaw bekerja dengan inferrs melalui jalur generik openai-completions.

Properti Nilai
ID penyedia inferrs (kustom; konfigurasikan di bawah models.providers.inferrs)
Plugin tidak ada — inferrs bukan Plugin penyedia OpenClaw bawaan
Var env auth Opsional. Nilai apa pun berfungsi jika server inferrs Anda tidak memiliki auth
API Kompatibel dengan OpenAI (openai-completions)
URL dasar yang disarankan http://127.0.0.1:8080/v1 (atau di mana pun server inferrs Anda berada)

Memulai

  • Mulai inferrs dengan sebuah model

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

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

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

  • Contoh konfigurasi lengkap

    Contoh ini menggunakan Gemma 4 pada server inferrs lokal.

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

    Konfigurasi lanjutan

    Mengapa requiresStringContent penting

    Beberapa rute Chat Completions inferrs hanya menerima messages[].content berupa string, bukan array bagian konten terstruktur.

    compat: {
      requiresStringContent: true
    }
    

    OpenClaw akan meratakan bagian konten teks murni menjadi string biasa sebelum mengirim permintaan.

    Catatan Gemma dan skema tool

    Beberapa kombinasi inferrs + Gemma saat ini menerima permintaan langsung kecil /v1/chat/completions tetapi tetap gagal pada giliran agent-runtime OpenClaw penuh.

    Jika itu terjadi, coba ini terlebih dahulu:

    compat: {
      requiresStringContent: true,
      supportsTools: false
    }
    

    Ini menonaktifkan permukaan skema tool OpenClaw untuk model dan dapat mengurangi tekanan prompt pada backend lokal yang lebih ketat.

    Jika permintaan langsung kecil masih berfungsi tetapi giliran agen OpenClaw normal terus crash di dalam inferrs, masalah yang tersisa biasanya adalah perilaku model/server upstream, bukan lapisan transport OpenClaw.

    Uji smoke manual

    Setelah dikonfigurasi, uji kedua lapisan:

    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
    

    Jika perintah pertama berfungsi tetapi perintah kedua gagal, periksa bagian pemecahan masalah di bawah.

    Perilaku bergaya proxy

    inferrs diperlakukan sebagai backend /v1 kompatibel OpenAI bergaya proxy, bukan endpoint OpenAI native.

    • Pembentukan permintaan khusus OpenAI native tidak berlaku di sini
    • Tidak ada service_tier, tidak ada Responses store, tidak ada petunjuk prompt-cache, dan tidak ada pembentukan payload kompat reasoning OpenAI
    • Header atribusi OpenClaw tersembunyi (originator, version, User-Agent) tidak disuntikkan pada URL dasar inferrs kustom

    Pemecahan masalah

    curl /v1/models gagal

    inferrs tidak berjalan, tidak dapat dijangkau, atau tidak terikat ke host/port yang diharapkan. Pastikan server sudah dimulai dan mendengarkan pada alamat yang Anda konfigurasikan.

    messages[].content mengharapkan string

    Atur compat.requiresStringContent: true di entri model. Lihat bagian requiresStringContent di atas untuk detail.

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

    Coba atur compat.supportsTools: false untuk menonaktifkan permukaan skema tool. Lihat catatan skema tool Gemma di atas.

    inferrs masih crash pada giliran agen yang lebih besar

    Jika OpenClaw tidak lagi mendapatkan error skema tetapi inferrs masih crash pada giliran agen yang lebih besar, perlakukan ini sebagai keterbatasan inferrs atau model upstream. Kurangi tekanan prompt atau beralih ke backend atau model lokal yang berbeda.

    Terkait