openai-completions и может автоматически обнаруживать модели, если вы включите эту возможность с помощью VLLM_API_KEY.
Начало работы
1
Запустите vLLM с сервером, совместимым с OpenAI
Ваш базовый URL должен предоставлять конечные точки
/v1 (/v1/models, /v1/chat/completions). Обычно vLLM работает по адресу:2
Задайте переменную среды с ключом API
Если ваш сервер не требует аутентификации, подойдет любое непустое значение:
3
Выберите модель
Замените значение на один из идентификаторов моделей vLLM:
4
Убедитесь, что модель доступна
Обнаружение моделей (неявный провайдер)
Если заданVLLM_API_KEY (или существует профиль аутентификации), а models.providers.vllm не определен, OpenClaw отправляет запрос к GET http://127.0.0.1:8000/v1/models и преобразует возвращенные идентификаторы в записи моделей.
Если вы явно зададите
models.providers.vllm, OpenClaw будет использовать только объявленные вами модели. Добавьте "vllm/*": {} в agents.defaults.models, чтобы OpenClaw также запрашивал конечную точку /models этого настроенного провайдера и включал все объявленные модели vLLM.Явная конфигурация
Используйте явную конфигурацию, если vLLM работает на другом хосте или порте, вы хотите зафиксироватьcontextWindow/maxTokens, вашему серверу требуется настоящий ключ API либо вы подключаетесь к доверенной конечной точке на loopback-интерфейсе, в локальной сети или Tailscale:
Расширенная конфигурация
Поведение в стиле прокси
Поведение в стиле прокси
vLLM рассматривается как совместимый с OpenAI бэкенд
/v1 в стиле прокси, а не как нативная конечная точка OpenAI:Управление рассуждениями Qwen
Управление рассуждениями Qwen
Для моделей Qwen задайте OpenClaw сопоставляет Для уровней рассуждений, отличных от
compat.thinkingFormat: "qwen-chat-template" в строке модели, если сервер ожидает аргументы шаблона чата Qwen. Эти модели предоставляют двоичный профиль /think (off, on), поскольку рассуждения в шаблоне чата Qwen включаются или выключаются одним флагом, а не задаются шкалой интенсивности в стиле OpenAI./think off со следующим значением:off, отправляется enable_thinking: true. Если ваша конечная точка вместо этого ожидает флаги верхнего уровня в стиле DashScope, используйте compat.thinkingFormat: "qwen", чтобы отправить enable_thinking в корне запроса.Управление рассуждениями Nemotron 3
Управление рассуждениями Nemotron 3
Для моделей Чтобы настроить эти значения, задайте
vllm/nemotron-3-* с отключенными рассуждениями встроенный плагин отправляет:chat_template_kwargs в параметрах модели. Если вы также зададите params.extra_body.chat_template_kwargs, это значение будет иметь приоритет, поскольку extra_body применяется к телу запроса последним.Вызовы инструментов Qwen отображаются как текст
Вызовы инструментов Qwen отображаются как текст
Сначала убедитесь, что vLLM запущен с правильным анализатором вызовов инструментов и шаблоном чата для этой модели. В документации vLLM указаны Замените идентификатор модели точным идентификатором из Это обходное решение, включаемое явно: оно заставляет каждый ход с инструментами выполнять вызов инструмента, поэтому используйте его только для отдельной записи модели, где такое поведение приемлемо. Не задавайте его глобальным значением по умолчанию для всех моделей vLLM и не сочетайте с прокси, который преобразует произвольный текст ассистента в исполняемые вызовы инструментов.
hermes для моделей Qwen2.5 и qwen3_xml для моделей Qwen3-Coder.Симптомы: Skills или инструменты никогда не запускаются, ассистент выводит необработанный JSON/XML, например {"name":"read","arguments":...}, либо vLLM возвращает пустой массив tool_calls, когда OpenClaw отправляет tool_choice: "auto".Некоторые сочетания Qwen и vLLM возвращают структурированные вызовы инструментов только в том случае, если запрос использует tool_choice: "required". Принудительно включите это для отдельной модели с помощью params.extra_body:openclaw models list --provider vllm либо примените такое же переопределение через CLI:Пользовательский базовый URL
Пользовательский базовый URL
Если ваш сервер vLLM работает на хосте или порте, отличном от используемого по умолчанию, задайте
baseUrl в явной конфигурации провайдера:Устранение неполадок
Медленный первый ответ или тайм-аут удаленного сервера
Медленный первый ответ или тайм-аут удаленного сервера
Для крупных локальных моделей, удаленных хостов в локальной сети или подключений через tailnet задайте тайм-аут запросов на уровне провайдера:
timeoutSeconds применяется только к HTTP-запросам моделей vLLM: установлению соединения, заголовкам ответа, потоковой передаче тела и общему прерыванию защищенного запроса. Он также повышает предел сторожевого таймера простоя и потоковой передачи LLM относительно неявного значения по умолчанию ~120s для этого провайдера. Предпочитайте этот вариант увеличению agents.defaults.timeoutSeconds, который управляет всем запуском агента.Сервер недоступен
Сервер недоступен
Убедитесь, что сервер vLLM запущен и доступен:Если возникает ошибка подключения, проверьте хост, порт и убедитесь, что vLLM запущен в режиме сервера, совместимого с OpenAI. OpenClaw доверяет точно настроенному источнику
models.providers.vllm.baseUrl для защищенных запросов моделей к конечным точкам на loopback-интерфейсе, в локальной сети и Tailscale. Источники метаданных и link-local по-прежнему блокируются без явного разрешения. Задавайте models.providers.vllm.request.allowPrivateNetwork: true только в том случае, если запросы vLLM должны обращаться к другому частному источнику, или false, чтобы отказаться от доверия к точному источнику.Ошибки аутентификации при запросах
Ошибки аутентификации при запросах
Если запросы завершаются ошибками аутентификации, задайте настоящий
VLLM_API_KEY, соответствующий конфигурации вашего сервера, либо явно настройте провайдера в models.providers.vllm.Модели не обнаружены
Модели не обнаружены
Для автоматического обнаружения необходимо задать
VLLM_API_KEY. Если вы определили models.providers.vllm, OpenClaw использует только объявленные вами модели, если agents.defaults.models не содержит "vllm/*": {}.Инструменты отображаются как необработанный текст
Инструменты отображаются как необработанный текст
Если модель Qwen выводит синтаксис инструментов JSON/XML вместо выполнения Skill:
- Запустите vLLM с правильным анализатором и шаблоном для этой модели.
- Подтвердите точный идентификатор модели с помощью
openclaw models list --provider vllm. - Добавьте отдельное переопределение
params.extra_body.tool_choice: "required"для конкретной модели, только еслиtool_choice: "auto"по-прежнему возвращает пустые или только текстовые вызовы инструментов.
Связанные материалы
Выбор модели
Выбор провайдеров, ссылок на модели и поведения при переключении после сбоя.
OpenAI
Нативный провайдер OpenAI и поведение маршрутов, совместимых с OpenAI.
OAuth и аутентификация
Сведения об аутентификации и правила повторного использования учетных данных.
Устранение неполадок
Распространенные проблемы и способы их устранения.