Перейти до основного вмісту

Documentation Index

Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

inferrs може обслуговувати локальні моделі за OpenAI-сумісним API /v1. OpenClaw працює з inferrs через загальний шлях openai-completions.
ВластивістьЗначення
ID провайдераinferrs (користувацький; налаштовується в models.providers.inferrs)
Pluginнемає — inferrs не є вбудованим Plugin провайдера OpenClaw
Змінна env для автентифікаціїНеобов’язкова. Будь-яке значення працює, якщо ваш сервер inferrs не має автентифікації
APIOpenAI-сумісний (openai-completions)
Пропонована базова URL-адресаhttp://127.0.0.1:8080/v1 (або там, де працює ваш сервер inferrs)
inferrs наразі найкраще розглядати як користувацький самостійно розміщений OpenAI-сумісний бекенд, а не як окремий Plugin провайдера OpenClaw. Ви налаштовуєте його через models.providers.inferrs, а не через прапорець вибору під час онбордингу. Якщо вам потрібен справжній вбудований Plugin з автовиявленням, див. SGLang або vLLM.

Початок роботи

1

Запустіть inferrs із моделлю

inferrs serve google/gemma-4-E2B-it \
  --host 127.0.0.1 \
  --port 8080 \
  --device metal
2

Перевірте, що сервер доступний

curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/v1/models
3

Додайте запис провайдера OpenClaw

Додайте явний запис провайдера та спрямуйте на нього вашу модель за замовчуванням. Повний приклад конфігурації наведено нижче.

Повний приклад конфігурації

У цьому прикладі використовується Gemma 4 на локальному сервері inferrs.
{
  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,
            },
          },
        ],
      },
    },
  },
}

Запуск на вимогу

Inferrs також може запускатися OpenClaw лише тоді, коли вибрано модель inferrs/.... Додайте localService до того самого запису провайдера:
{
  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 має бути абсолютним. Використайте which inferrs на хості Gateway і вкажіть цей шлях у конфігурації. Повний довідник полів див. у Служби локальних моделей.

Розширена конфігурація

Деякі маршрути Chat Completions у inferrs приймають лише рядковий messages[].content, а не структуровані масиви частин вмісту.
Якщо запуски OpenClaw завершуються помилкою на кшталт:
messages[1].content: invalid type: sequence, expected a string
задайте compat.requiresStringContent: true у записі вашої моделі.
compat: {
  requiresStringContent: true
}
OpenClaw перетворить частини суто текстового вмісту на прості рядки перед надсиланням запиту.
Деякі поточні комбінації inferrs + Gemma приймають невеликі прямі запити /v1/chat/completions, але все одно дають збій на повних ходах agent-runtime OpenClaw.Якщо це трапляється, спершу спробуйте таке:
compat: {
  requiresStringContent: true,
  supportsTools: false
}
Це вимикає поверхню схем інструментів OpenClaw для моделі й може зменшити навантаження промпта на суворіші локальні бекенди.Якщо крихітні прямі запити все ще працюють, але звичайні ходи агента OpenClaw продовжують аварійно завершуватися всередині inferrs, решта проблеми зазвичай пов’язана з поведінкою upstream-моделі або сервера, а не з транспортним шаром OpenClaw.
Після налаштування перевірте обидва шари:
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
Якщо перша команда працює, а друга завершується помилкою, перегляньте розділ усунення несправностей нижче.
inferrs розглядається як OpenAI-сумісний бекенд /v1 у стилі проксі, а не як нативна кінцева точка OpenAI.
  • Формування запитів, призначене лише для нативного OpenAI, тут не застосовується
  • Немає service_tier, немає Responses store, немає підказок prompt-cache і немає формування payload для сумісності reasoning OpenAI
  • Приховані заголовки атрибуції OpenClaw (originator, version, User-Agent) не додаються до користувацьких базових URL-адрес inferrs

Усунення несправностей

inferrs не запущено, він недоступний або не прив’язаний до очікуваного хоста/порту. Переконайтеся, що сервер запущено й він прослуховує адресу, яку ви налаштували.
Задайте compat.requiresStringContent: true у записі моделі. Докладніше див. розділ requiresStringContent вище.
Спробуйте задати compat.supportsTools: false, щоб вимкнути поверхню схем інструментів. Див. застереження щодо схем інструментів Gemma вище.
Якщо OpenClaw більше не отримує помилок схеми, але inferrs усе ще аварійно завершується на більших ходах агента, розглядайте це як обмеження upstream inferrs або моделі. Зменште навантаження промпта або перейдіть на інший локальний бекенд чи модель.
Загальну довідку див. у Усунення несправностей і FAQ.

Пов’язане

Локальні моделі

Запуск OpenClaw із локальними серверами моделей.

Служби локальних моделей

Запуск локальних серверів моделей на вимогу для налаштованих провайдерів.

Усунення несправностей Gateway

Налагодження локальних OpenAI-сумісних бекендів, які проходять перевірки, але дають збій під час запусків агента.

Вибір моделі

Огляд усіх провайдерів, посилань на моделі та поведінки failover.