openai-completions y puede detectar automáticamente los modelos cuando se habilita esta opción con VLLM_API_KEY.
Primeros pasos
1
Iniciar vLLM con un servidor compatible con OpenAI
La URL base debe exponer los endpoints de
/v1 (/v1/models, /v1/chat/completions). vLLM suele ejecutarse en:2
Definir la variable de entorno de la clave de API
Cualquier valor no vacío funciona si el servidor no exige autenticación:
3
Seleccionar un modelo
Sustitúyalo por uno de los ID de modelo de vLLM:
4
Verificar que el modelo esté disponible
Detección de modelos (proveedor implícito)
Cuando se defineVLLM_API_KEY (o existe un perfil de autenticación) y models.providers.vllm no está definido, OpenClaw consulta GET http://127.0.0.1:8000/v1/models y convierte los ID devueltos en entradas de modelos.
Si se define explícitamente
models.providers.vllm, OpenClaw utiliza únicamente los modelos declarados. Añada "vllm/*": {} a agents.defaults.models para que OpenClaw también consulte el endpoint /models de ese proveedor configurado e incluya todos los modelos vLLM anunciados.Configuración explícita
Realice una configuración explícita cuando vLLM se ejecute en otro host o puerto, se desee fijarcontextWindow/maxTokens, el servidor requiera una clave de API real o se establezca conexión con un endpoint de bucle invertido, LAN o Tailscale de confianza:
Configuración avanzada
Comportamiento de tipo proxy
Comportamiento de tipo proxy
vLLM se trata como un backend
/v1 de tipo proxy compatible con OpenAI, no como un endpoint nativo de OpenAI:Controles de pensamiento de Qwen
Controles de pensamiento de Qwen
Para los modelos Qwen, defina OpenClaw asigna Los niveles de pensamiento distintos de
compat.thinkingFormat: "qwen-chat-template" en la fila del modelo cuando el servidor espere argumentos de palabra clave de la plantilla de chat de Qwen. Estos modelos exponen un perfil binario /think (off, on), ya que el pensamiento de la plantilla de chat de Qwen es un indicador de activación o desactivación, no una escala de esfuerzo al estilo de OpenAI./think off a:off envían enable_thinking: true. Si el endpoint espera en su lugar indicadores de nivel superior al estilo de DashScope, utilice compat.thinkingFormat: "qwen" para enviar enable_thinking en la raíz de la solicitud.Controles de pensamiento de Nemotron 3
Controles de pensamiento de Nemotron 3
Para los modelos Para personalizar estos valores, defina
vllm/nemotron-3-* con el pensamiento desactivado, el plugin incluido envía:chat_template_kwargs en los parámetros del modelo. Si también se define params.extra_body.chat_template_kwargs, ese valor prevalece porque extra_body es la última sustitución del cuerpo de la solicitud.Las llamadas a herramientas de Qwen aparecen como texto
Las llamadas a herramientas de Qwen aparecen como texto
Primero, confirme que vLLM se haya iniciado con el analizador de llamadas a herramientas y la plantilla de chat correctos para el modelo. La documentación de vLLM indica Sustituya el ID del modelo por el ID exacto de Esta es una solución alternativa opcional: obliga a que cada turno con herramientas realice una llamada a una herramienta, por lo que solo debe utilizarse para una entrada de modelo dedicada donde sea aceptable. No la defina como valor predeterminado global para todos los modelos vLLM ni la combine con un proxy que convierta texto arbitrario del asistente en llamadas ejecutables a herramientas.
hermes para los modelos Qwen2.5 y qwen3_xml para los modelos Qwen3-Coder.Síntomas: las Skills o herramientas nunca se ejecutan, el asistente imprime JSON/XML sin procesar como {"name":"read","arguments":...}, o vLLM devuelve una matriz tool_calls vacía cuando OpenClaw envía tool_choice: "auto".Algunas combinaciones de Qwen/vLLM solo devuelven llamadas a herramientas estructuradas cuando la solicitud utiliza tool_choice: "required". Fuércelo para cada modelo mediante params.extra_body:openclaw models list --provider vllm, o aplique la misma sustitución desde la CLI:URL base personalizada
URL base personalizada
Si el servidor vLLM se ejecuta en un host o puerto no predeterminado, defina
baseUrl en la configuración explícita del proveedor:Solución de problemas
Primera respuesta lenta o tiempo de espera agotado en el servidor remoto
Primera respuesta lenta o tiempo de espera agotado en el servidor remoto
Para modelos locales grandes, hosts de LAN remotos o enlaces de tailnet, defina un tiempo de espera de solicitud limitado al proveedor:
timeoutSeconds se aplica únicamente a las solicitudes HTTP de modelos vLLM: establecimiento de la conexión, encabezados de respuesta, streaming del cuerpo y cancelación total de la obtención protegida. También eleva el límite del mecanismo de vigilancia de inactividad o streaming del LLM por encima del valor predeterminado implícito de ~120s para este proveedor. Se recomienda esta opción en lugar de aumentar agents.defaults.timeoutSeconds, que controla toda la ejecución del agente.No se puede acceder al servidor
No se puede acceder al servidor
Compruebe que el servidor vLLM esté en ejecución y sea accesible:Si aparece un error de conexión, verifique el host, el puerto y que vLLM se haya iniciado en modo de servidor compatible con OpenAI. OpenClaw confía en el origen
models.providers.vllm.baseUrl configurado exacto para las solicitudes de modelos protegidas en endpoints de bucle invertido, LAN y Tailscale. Los orígenes de metadatos o locales de enlace permanecen bloqueados sin una habilitación explícita. Defina models.providers.vllm.request.allowPrivateNetwork: true solo cuando las solicitudes de vLLM deban alcanzar otro origen privado, o false para deshabilitar la confianza en el origen exacto.Errores de autenticación en las solicitudes
Errores de autenticación en las solicitudes
Si las solicitudes fallan con errores de autenticación, defina un valor real para
VLLM_API_KEY que coincida con la configuración del servidor, o configure el proveedor explícitamente en models.providers.vllm.No se detectan modelos
No se detectan modelos
La detección automática requiere que se defina
VLLM_API_KEY. Si se ha definido models.providers.vllm, OpenClaw utiliza únicamente los modelos declarados, salvo que agents.defaults.models incluya "vllm/*": {}.Las herramientas se muestran como texto sin procesar
Las herramientas se muestran como texto sin procesar
Si un modelo Qwen imprime sintaxis de herramientas JSON/XML en lugar de ejecutar una Skill:
- Inicie vLLM con el analizador o la plantilla correctos para ese modelo.
- Confirme el ID exacto del modelo con
openclaw models list --provider vllm. - Añada una sustitución
params.extra_body.tool_choice: "required"dedicada para cada modelo solo sitool_choice: "auto"sigue devolviendo llamadas a herramientas vacías o solo de texto.
Contenido relacionado
Selección de modelos
Selección de proveedores, referencias de modelos y comportamiento de conmutación por error.
OpenAI
Proveedor nativo de OpenAI y comportamiento de las rutas compatibles con OpenAI.
OAuth y autenticación
Detalles de autenticación y reglas de reutilización de credenciales.
Solución de problemas
Problemas habituales y cómo resolverlos.