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
inferrs serve google/gemma-4-E2B-it \ --host 127.0.0.1 \ --port 8080 \ --device metalPastikan server dapat dijangkau
curl http://127.0.0.1:8080/healthcurl http://127.0.0.1:8080/v1/modelsTambahkan 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:
{ 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:
{ 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:
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:
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." \ --jsonJika 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
Menjalankan OpenClaw dengan server model lokal.
Memulai server model lokal sesuai permintaan untuk penyedia yang dikonfigurasi.
Men-debug backend lokal yang kompatibel dengan OpenAI, yang lolos pemeriksaan tetapi gagal menjalankan agen.
Ikhtisar semua penyedia, referensi model, dan perilaku pengalihan kegagalan.