Providers

Çıkarım yapar

inferrs, yerel modelleri OpenAI uyumlu bir /v1 API arkasında sunabilir. OpenClaw, genel openai-completions yolu üzerinden inferrs ile çalışır.

Özellik Değer
Provider kimliği inferrs (özel; models.providers.inferrs altında yapılandırın)
Plugin yok — inferrs, paketle birlikte gelen bir OpenClaw provider plugin değildir
Kimlik doğrulama env var İsteğe bağlı. 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 sunucunuz neredeyse orası)

Başlarken

  • inferrs'i bir modelle başlatın

    inferrs serve google/gemma-4-E2B-it \
      --host 127.0.0.1 \
      --port 8080 \
      --device metal
    
  • Sunucuya erişilebildiğini doğrulayın

    curl http://127.0.0.1:8080/health
    curl http://127.0.0.1:8080/v1/models
    
  • Bir OpenClaw provider girdisi ekleyin

    Açık bir provider girdisi ekleyin ve varsayılan modelinizi ona yönlendirin. Aşağıdaki tam yapılandırma örneğine bakın.

  • Tam yapılandırma örneği

    Bu örnek, yerel bir inferrs sunucusunda Gemma 4 kullanır.

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

    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 string messages[].content kabul eder.

    compat: {
      requiresStringContent: true
    }
    

    OpenClaw, isteği göndermeden önce saf metin içerik parçalarını düz stringlere dönüştürür.

    Gemma ve tool-schema uyarısı

    Bazı güncel inferrs + Gemma kombinasyonları küçük doğrudan /v1/chat/completions isteklerini kabul eder, ancak tam OpenClaw agent-runtime turlarında yine de başarısız olur.

    Bu olursa önce şunu deneyin:

    compat: {
      requiresStringContent: true,
      supportsTools: false
    }
    

    Bu, model için OpenClaw'ın araç şeması yüzeyini devre dışı bırakır ve daha katı yerel backendler üzerindeki prompt baskısını azaltabilir.

    Çok küçük doğrudan istekler hâlâ çalışıyor ancak normal OpenClaw agent turları inferrs içinde çökmeye devam ediyorsa, kalan sorun genellikle OpenClaw'ın taşıma katmanı değil upstream model/sunucu davranışıdır.

    Manuel smoke test

    Yapılandırıldıktan sonra iki katmanı da 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ışıp ikincisi başarısız olursa aşağıdaki sorun giderme bölümünü kontrol edin.

    Proxy tarzı davranış

    inferrs, yerel bir OpenAI uç noktası değil, proxy tarzı OpenAI uyumlu bir /v1 backend olarak ele alınır.

    • Yerel OpenAI'ye özgü istek şekillendirme burada geçerli değildir
    • service_tier yoktur, Responses store yoktur, prompt-cache ipuçları yoktur ve OpenAI reasoning-compat payload şekillendirmesi yoktur
    • Gizli OpenClaw atıf başlıkları (originator, version, User-Agent) özel inferrs temel URL'lerine eklenmez

    Sorun giderme

    curl /v1/models başarısız oluyor

    inferrs çalışmıyor, erişilebilir değil veya beklenen host/porta bağlanmamış. Sunucunun başlatıldığından ve yapılandırdığınız adreste dinlediğinden emin olun.

    messages[].content bir string bekliyordu

    Model girdisinde compat.requiresStringContent: true ayarlayın. Ayrıntılar için yukarıdaki requiresStringContent bölümüne 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 ayarlamayı deneyin. Yukarıdaki Gemma tool-schema uyarısına bakın.

    inferrs daha büyük agent turlarında hâlâ çöküyor

    OpenClaw artık şema hataları almıyor ancak inferrs daha büyük agent turlarında hâlâ çöküyorsa, bunu upstream inferrs veya model sınırlaması olarak ele alın. Prompt baskısını azaltın veya farklı bir yerel backend ya da modele geçin.

    İlgili