Providers
Çıkarım yapar
inferrs, yerel modelleri OpenAI uyumlu bir /v1 API'sinin arkasından sunar. OpenClaw, genel openai-completions adaptörü üzerinden onunla iletişim kurar.
| Özellik | Değer |
|---|---|
| Sağlayıcı kimliği | inferrs (özel; models.providers.inferrs altında yapılandırılır) |
| Plugin | yok — paketle birlikte gelen bir OpenClaw sağlayıcı plugini değildir |
| Kimlik doğrulama ortam değişkeni | gerekli değil; inferrs sunucunuzda kimlik doğrulama yoksa herhangi bir değer çalışır |
| API | OpenAI uyumlu (openai-completions) |
| Önerilen temel URL | http://127.0.0.1:8080/v1 (veya inferrs sunucunuzun dinlediği adres) |
Başlarken
inferrs'i bir modelle başlatın
inferrs serve google/gemma-4-E2B-it \ --host 127.0.0.1 \ --port 8080 \ --device metalSunucuya erişilebildiğini doğrulayın
curl http://127.0.0.1:8080/healthcurl http://127.0.0.1:8080/v1/modelsBir OpenClaw sağlayıcı girdisi ekleyin
Açık bir sağlayıcı girdisi ekleyin ve varsayılan modelinizi ona yönlendirin. Aşağıdaki yapılandırma örneğine bakın.
Tam yapılandırma örneği
Yerel bir inferrs sunucusunda Gemma 4:
{ 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, }, }, ], }, }, },}İsteğe bağlı başlatma
OpenClaw, inferrs'i yalnızca bir inferrs/... modeli seçildiğinde kendisi başlatabilir. Aynı sağlayıcı girdisine localService ekleyin:
{ 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 mutlak bir yol olmalıdır. Gateway ana makinesinde which inferrs komutunu çalıştırın ve döndürülen yolu kullanın. Tüm alanların başvurusu: Yerel model hizmetleri.
Gelişmiş yapılandırma
requiresStringContent neden önemlidir?
Bazı inferrs Chat Completions rotaları, yapılandırılmış içerik parçası dizileri yerine yalnızca dize biçimindeki messages[].content değerlerini kabul eder.
Gemma ve araç şemasıyla ilgili dikkat edilmesi gereken nokta
Bazı inferrs + Gemma birleşimleri küçük ve doğrudan /v1/chat/completions isteklerini kabul ederken tam OpenClaw aracı çalışma zamanı turlarında başarısız olur. Önce araç şeması yüzeyini devre dışı bırakmayı deneyin:
compat: { requiresStringContent: true, supportsTools: false}Bu, daha katı yerel arka uçlar üzerindeki istem baskısını azaltır. Küçük doğrudan istekler çalışmaya devam ettiği hâlde normal OpenClaw aracı turları inferrs içinde çökmeye devam ediyorsa bunu bir OpenClaw aktarım sorunu yerine üst kaynaklı bir model/sunucu sınırlaması olarak değerlendirin.
Elle temel doğrulama testi
Yapılandırmadan sonra her iki katmanı da bir kez test edin:
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İlk komut çalışıyor ancak ikincisi başarısız oluyorsa aşağıdaki Sorun giderme bölümüne bakın.
Proxy tarzı davranış
inferrs, openai-responses yerine genel openai-completions adaptörünü kullandığından yalnızca yerel OpenAI'ye özgü istek biçimlendirmesi hiçbir zaman uygulanmaz: service_tier, Responses store, istem önbelleği ipuçları ve OpenAI akıl yürütme uyumluluğu yükü biçimlendirmesi gönderilmez.
Sorun giderme
curl /v1/models başarısız oluyor
inferrs çalışmıyor, erişilebilir değil veya yapılandırdığınız ana makine/porta bağlanmamış. Sunucunun başlatıldığını ve bu adreste dinlediğini doğrulayın.
messages[].content bir dize bekliyor
Model girdisinde compat.requiresStringContent: true ayarını kullanın (yukarıya bakın).
Doğrudan /v1/chat/completions çağrıları başarılı oluyor ancak openclaw infer model run başarısız oluyor
Araç şeması yüzeyini devre dışı bırakmak için compat.supportsTools: false ayarını kullanın (yukarıdaki Gemma uyarısına bakın).
inferrs daha büyük aracı turlarında hâlâ çöküyor
Şema hataları giderildiği hâlde inferrs daha büyük aracı turlarında çökmeye devam ediyorsa bunu üst kaynaklı bir inferrs veya model sınırlaması olarak değerlendirin. İstem baskısını azaltın ya da arka ucu/modeli değiştirin.
İlgili içerikler
OpenClaw'ı yerel model sunucularıyla çalıştırma.
Yapılandırılmış sağlayıcılar için yerel model sunucularını gerektiğinde başlatma.
Doğrudan yoklamaları geçen ancak aracı çalıştırmalarında başarısız olan yerel OpenAI uyumlu arka uçlarda hata ayıklama.
Tüm sağlayıcılara, model başvurularına ve yük devretme davranışına genel bakış.