Providers
Виводить висновок
inferrs надає локальні моделі через сумісний з OpenAI API /v1. OpenClaw взаємодіє з ним через універсальний адаптер openai-completions.
| Властивість | Значення |
|---|---|
| Ідентифікатор провайдера | inferrs (власний; налаштовується в models.providers.inferrs) |
| Plugin | немає — це не вбудований Plugin провайдера OpenClaw |
| Змінна середовища автентифікації | не потрібна; підійде будь-яке значення, якщо ваш сервер inferrs не має автентифікації |
| API | сумісний з OpenAI (openai-completions) |
| Рекомендована базова URL-адреса | http://127.0.0.1:8080/v1 (або адреса, яку прослуховує ваш сервер inferrs) |
Початок роботи
Запустіть inferrs із моделлю
inferrs serve google/gemma-4-E2B-it \ --host 127.0.0.1 \ --port 8080 \ --device metalПеревірте доступність сервера
curl http://127.0.0.1:8080/healthcurl http://127.0.0.1:8080/v1/modelsДодайте запис провайдера 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, }, }, ], }, }, },}Запуск на вимогу
OpenClaw може самостійно запускати inferrs, лише коли вибрано модель 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 і використайте отриманий шлях. Повний опис полів: Служби локальних моделей.
Розширена конфігурація
Чому requiresStringContent має значення
Деякі маршрути Chat Completions у inferrs приймають у messages[].content лише рядки, а не структуровані масиви частин вмісту.
Застереження щодо Gemma та схеми інструментів
Деякі комбінації inferrs і Gemma приймають невеликі прямі запити /v1/chat/completions, але не можуть виконати повні цикли середовища виконання агента OpenClaw. Спочатку спробуйте вимкнути поверхню схеми інструментів:
compat: { requiresStringContent: true, supportsTools: false}Це зменшує навантаження запиту на суворіші локальні бекенди. Якщо малі прямі запити й далі працюють, але звичайні цикли агента OpenClaw продовжують спричиняти аварійне завершення всередині inferrs, вважайте це обмеженням моделі або сервера на стороні постачальника, а не проблемою транспорту 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-completions (а не openai-responses), формування запитів, властиве лише нативному OpenAI, ніколи не застосовується: не надсилаються ані service_tier, ані store Responses, ані підказки кешу запитів, ані корисне навантаження сумісності міркувань OpenAI.
Усунення несправностей
Помилка curl /v1/models
inferrs не запущено, він недоступний або не прив’язаний до налаштованих вами хоста чи порту. Переконайтеся, що сервер запущено й він прослуховує цю адресу.
messages[].content очікує рядок
Установіть compat.requiresStringContent: true у записі моделі (див. вище).
Прямі виклики /v1/chat/completions успішні, але openclaw infer model run завершується помилкою
Установіть compat.supportsTools: false, щоб вимкнути поверхню схеми інструментів (див. застереження щодо Gemma вище).
inferrs усе ще аварійно завершується під час більших циклів агента
Якщо помилки схеми зникли, але inferrs усе ще аварійно завершується під час більших циклів агента, вважайте це обмеженням inferrs або моделі на стороні постачальника. Зменште навантаження запиту або змініть бекенд чи модель.
Пов’язані матеріали
Запуск OpenClaw із локальними серверами моделей.
Запуск локальних серверів моделей на вимогу для налаштованих провайдерів.
Діагностика локальних сумісних з OpenAI бекендів, які проходять перевірки, але не можуть виконувати цикли агента.
Огляд усіх провайдерів, посилань на моделі та поведінки резервного перемикання.