ds4
ds4 sirve DeepSeek V4 Flash desde un backend
local de Metal con una API compatible con OpenAI /v1. OpenClaw se conecta a ds4
a través de la familia de proveedores genérica openai-completions.
ds4 no es un complemento de proveedor OpenClaw incluido. Configúrelo en
models.providers.ds4, luego seleccione ds4/deepseek-v4-flash.
- ID del proveedor:
ds4 - Complemento: ninguno
- API: Completaciones de Chat compatibles con OpenAI (
openai-completions) - URL base sugerida:
http://127.0.0.1:18000/v1 - ID del modelo:
deepseek-v4-flash - Llamadas a herramientas: admitidas mediante estilo OpenAI
toolsytool_calls - Razonamiento: estilo DeepSeek
thinkingyreasoning_effort
Requisitos
Sección titulada «Requisitos»- macOS con soporte Metal.
- Una copia de trabajo de ds4 con
ds4-servery el archivo GGUF de DeepSeek V4 Flash. - Suficiente memoria para el contexto que elija. Los valores
--ctxmás grandes asignan más memoria KV cuando se inicia el servidor.
Inicio rápido
Sección titulada «Inicio rápido»Iniciar ds4-server
Reemplace `
` con la ruta de su copia de ds4.
```bash/ds4-server
—model/ds4flash.gguf
—host 127.0.0.1
—port 18000
—ctx 32768
—tokens 128 ```Verificar el punto final compatible con OpenAI
Ventana de terminal curl http://127.0.0.1:18000/v1/modelsLa respuesta debe incluir
deepseek-v4-flash.Añade la configuración del proveedor OpenClaw
Añade la configuración de Configuración completa y luego ejecuta una verificación del modelo de un solo disparo:
Ventana de terminal openclaw infer model run \--local \--model ds4/deepseek-v4-flash \--thinking off \--prompt "Reply with exactly: openclaw-ds4-ok" \--json
Configuración completa
Sección titulada «Configuración completa»Usa esta configuración cuando ds4 ya se esté ejecutando en 127.0.0.1:18000.
{ agents: { defaults: { model: { primary: "ds4/deepseek-v4-flash" }, models: { "ds4/deepseek-v4-flash": { alias: "DS4 local", }, }, }, }, models: { mode: "merge", providers: { ds4: { baseUrl: "http://127.0.0.1:18000/v1", apiKey: "ds4-local", api: "openai-completions", timeoutSeconds: 300, models: [ { id: "deepseek-v4-flash", name: "DeepSeek V4 Flash (ds4)", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 32768, maxTokens: 128, compat: { supportsUsageInStreaming: true, supportsReasoningEffort: true, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek", supportedReasoningEfforts: ["low", "medium", "high", "xhigh"], }, }, ], }, }, },}Mantén contextWindow alineado con el valor de ds4-server --ctx. Mantén maxTokens
alineado con --tokens a menos que intencionalmente quieras que OpenClaw solicite menos
salida que la predeterminada del servidor.
Inicio bajo demanda
Sección titulada «Inicio bajo demanda»OpenClaw puede iniciar ds4 solo cuando se selecciona un modelo ds4/.... Añade
localService a la misma entrada de proveedor:
{ models: { providers: { ds4: { baseUrl: "http://127.0.0.1:18000/v1", apiKey: "ds4-local", api: "openai-completions", timeoutSeconds: 300, localService: { command: "<DS4_DIR>/ds4-server", args: ["--model", "<DS4_DIR>/ds4flash.gguf", "--host", "127.0.0.1", "--port", "18000", "--ctx", "32768", "--tokens", "128"], cwd: "<DS4_DIR>", healthUrl: "http://127.0.0.1:18000/v1/models", readyTimeoutMs: 300000, idleStopMs: 0, }, models: [ { id: "deepseek-v4-flash", name: "DeepSeek V4 Flash (ds4)", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 32768, maxTokens: 128, compat: { supportsUsageInStreaming: true, supportsReasoningEffort: true, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek", supportedReasoningEfforts: ["low", "medium", "high", "xhigh"], }, }, ], }, }, },}command debe ser una ruta absoluta al ejecutable. No se utiliza la búsqueda en el shell ni la expansión de ~.
Consulta Servicios de modelos locales para cada campo
de localService.
Think Max
Sección titulada «Think Max»ds4 aplica Think Max solo cuando se cumplen ambas condiciones:
ds4-servercomienza con--ctx 393216o superior.- La solicitud utiliza
reasoning_effort: "max"o el campo de esfuerzo equivalente de ds4.
Si ejecutas ese contexto grande, actualiza tanto los indicadores del servidor como los metadatos del modelo de OpenClaw:
{ contextWindow: 393216, maxTokens: 384000, compat: { supportsUsageInStreaming: true, supportsReasoningEffort: true, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek", supportedReasoningEfforts: ["low", "medium", "high", "xhigh", "max"], },}Comienza con una verificación HTTP directa:
curl http://127.0.0.1:18000/v1/chat/completions \ -H 'content-type: application/json' \ -d '{"model":"deepseek-v4-flash","messages":[{"role":"user","content":"Reply with exactly: ds4-ok"}],"max_tokens":16,"stream":false,"thinking":{"type":"disabled"}}'Luego prueba el enrutamiento del modelo OpenClaw:
openclaw infer model run \ --local \ --model ds4/deepseek-v4-flash \ --thinking off \ --prompt "Reply with exactly: openclaw-ds4-ok" \ --jsonPara una prueba completa de agente y llamada a herramientas, usa un contexto de al menos 32768:
openclaw agent \ --local \ --session-id ds4-tool-smoke \ --model ds4/deepseek-v4-flash \ --thinking off \ --message "Use the shell command pwd once, then reply exactly: tool-ok <output>" \ --json \ --timeout 240Resultado esperado:
executionTrace.winnerProvideresds4executionTrace.winnerModelesdeepseek-v4-flashtoolSummary.callses al menos1finalAssistantVisibleTextcomienza contool-ok
Solución de problemas
Sección titulada «Solución de problemas»curl /v1/models no puede conectar
ds4 no se está ejecutando o no está vinculado al host y puerto en baseUrl. Inicia
ds4-server y luego reintenta:
curl http://127.0.0.1:18000/v1/models500 prompt excede el contexto
El --ctx configurado es demasiado pequeño para el turno de OpenClaw. Aumente ds4-server --ctx y luego actualice models.providers.ds4.models[].contextWindow para que coincida. Los turnos completos del agente con herramientas necesitan sustancialmente más contexto que una solicitud curl directa de un solo mensaje.
Think Max no se activa
ds4 solo usa Think Max cuando --ctx es al menos 393216 y la solicitud pide reasoning_effort: "max". Los contextos más pequeños recurren a un razonamiento alto.
La primera solicitud es lenta
ds4 tiene una residencia en Metal fría y una fase de calentamiento del modelo. Use
localService.readyTimeoutMs: 300000 cuando OpenClaw inicie el servidor bajo
demanda.
Relacionado
Sección titulada «Relacionado»Inicie servidores de modelos locales bajo demanda antes de las solicitudes del modelo.
Elija y opere backends de modelos locales.
Configure refs de proveedores, autenticación y conmutación por error.
Comportamiento nativo del proveedor DeepSeek y controles de pensamiento.