> ## 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

[inferrs](https://github.com/ericcurtin/inferrs) предоставляет локальные модели через совместимый с OpenAI API `/v1`. OpenClaw взаимодействует с ним через универсальный адаптер `openai-completions`.

| Свойство | Значение |
| - | - |
| Идентификатор провайдера | `inferrs` (пользовательский; настраивается в `models.providers.inferrs`) |
| Плагин | отсутствует — это не встроенный плагин провайдера OpenClaw |
| Переменная среды аутентификации | не требуется; если сервер inferrs не использует аутентификацию, подойдет любое значение |
| API | совместимый с OpenAI (`openai-completions`) |
| Рекомендуемый базовый URL | `http://127.0.0.1:8080/v1` (или адрес, на котором принимает подключения сервер inferrs) |

> [!NOTE]
>
> `inferrs` — это пользовательский самостоятельно размещаемый бэкенд, совместимый с OpenAI, а не отдельный плагин провайдера OpenClaw: его настраивают в `models.providers.inferrs`, а не выбирают вариант аутентификации при первоначальной настройке. Сведения о встроенном плагине с автоматическим обнаружением см. в разделах [SGLang](https://docs2.openclaw.ai/ru/providers/sglang.md) или [vLLM](https://docs2.openclaw.ai/ru/providers/vllm.md).

## Начало работы

**1. Запустите inferrs с моделью**

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
inferrs serve google/gemma-4-E2B-it \
  --host 127.0.0.1 \
  --port 8080 \
  --device metal
```

**2. Убедитесь, что сервер доступен**

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/v1/models
```

**3. Добавьте запись провайдера OpenClaw**

Добавьте явную запись провайдера и укажите ее для модели по умолчанию. См. пример конфигурации ниже.

## Полный пример конфигурации

Gemma 4 на локальном сервере `inferrs`:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  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,
            },
          },
        ],
      },
    },
  },
}
```

## Запуск по требованию

OpenClaw может самостоятельно запускать `inferrs` только при выборе модели `inferrs/...`. Добавьте `localService` в ту же запись провайдера:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  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 и используйте полученный путь. Полное описание полей: [Сервисы локальных моделей](https://docs2.openclaw.ai/ru/gateway/local-model-services.md).

## Расширенная конфигурация

> [accordion] Почему requiresStringContent имеет значение
>
> Некоторые маршруты Chat Completions `inferrs` принимают в `messages[].content` только строки, а не структурированные массивы частей содержимого.
>
> > [!WARNING]
> >
> > Если запуски OpenClaw завершаются со следующей ошибкой:
> >
> > ```text theme={"theme":{"light":"min-light","dark":"min-dark"}}
> > messages[1].content: недопустимый тип: последовательность, ожидалась строка
> > ```
> >
> > задайте `compat.requiresStringContent: true` в записи модели. После этого OpenClaw преобразует части содержимого, состоящие только из текста, в обычные строки перед отправкой запроса.

> [accordion] Ограничение Gemma и схемы инструментов
>
> Некоторые сочетания `inferrs` и Gemma принимают небольшие прямые запросы `/v1/chat/completions`, но завершаются сбоем при полных циклах среды выполнения агента OpenClaw. Сначала попробуйте отключить поверхность схемы инструментов:
>
> ```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
> compat: {
>   requiresStringContent: true,
>   supportsTools: false
> }
> ```
>
> Это снижает нагрузку промпта на более строгие локальные бэкенды. Если небольшие прямые запросы по-прежнему работают, но обычные циклы агента OpenClaw продолжают завершаться сбоем внутри `inferrs`, считайте это ограничением вышестоящей модели или сервера, а не проблемой транспорта OpenClaw.

> [accordion] Ручная быстрая проверка
>
> После настройки проверьте оба уровня:
>
> ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
> 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":"Сколько будет 2 + 2?"}],"stream":false}'
> ```
>
> ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
> openclaw infer model run \
>   --model inferrs/google/gemma-4-E2B-it \
>   --prompt "Сколько будет 2 + 2? Ответьте одним коротким предложением." \
>   --json
> ```
>
> Если первая команда работает, а вторая завершается сбоем, см. раздел «Устранение неполадок» ниже.

> [accordion] Поведение в режиме прокси
>
> Поскольку `inferrs` использует универсальный адаптер `openai-completions` (а не `openai-responses`), формирование запросов, предназначенное только для нативного OpenAI, никогда не применяется: не отправляются ни `service_tier`, ни `store` Responses, ни подсказки для кэша промптов, ни совместимая с рассуждениями OpenAI структура полезной нагрузки.

## Устранение неполадок

> [accordion] Сбой curl /v1/models
>
> `inferrs` не запущен, недоступен или не привязан к настроенным хосту и порту. Убедитесь, что сервер запущен и прослушивает этот адрес.

> [accordion] messages\[].content должна быть строкой
>
> Задайте `compat.requiresStringContent: true` в записи модели (см. выше).

> [accordion] Прямые вызовы /v1/chat/completions выполняются успешно, но openclaw infer model run завершается сбоем
>
> Задайте `compat.supportsTools: false`, чтобы отключить поверхность схемы инструментов (см. ограничение Gemma выше).

> [accordion] inferrs по-прежнему аварийно завершается при более крупных циклах агента
>
> Если ошибки схемы устранены, но `inferrs` по-прежнему аварийно завершается при более крупных циклах агента, считайте это ограничением вышестоящего `inferrs` или модели. Снизьте нагрузку промпта либо смените бэкенд или модель.

> [!TIP]
>
> Общие рекомендации см. в разделах [Устранение неполадок](https://docs2.openclaw.ai/ru/help/troubleshooting.md) и [Часто задаваемые вопросы](https://docs2.openclaw.ai/ru/help/faq.md).

## Связанные разделы

> [card] [Локальные модели](https://docs2.openclaw.ai/ru/gateway/local-models.md)
>
> Использование OpenClaw с серверами локальных моделей.

> [card] [Сервисы локальных моделей](https://docs2.openclaw.ai/ru/gateway/local-model-services.md)
>
> Запуск серверов локальных моделей по требованию для настроенных провайдеров.

> [card] [Устранение неполадок Gateway](https://docs2.openclaw.ai/ru/gateway/troubleshooting.md#local-openai-compatible-backend-passes-direct-probes-but-agent-runs-fail)
>
> Отладка локальных совместимых с OpenAI бэкендов, которые успешно проходят проверки, но завершаются сбоем при запусках агента.

> [card] [Выбор модели](https://docs2.openclaw.ai/ru/concepts/model-providers.md)
>
> Обзор всех провайдеров, ссылок на модели и поведения при переключении после сбоя.
