Providers
ds4
ds4 sirve DeepSeek V4 Flash desde un backend Metal local
con una API /v1 compatible con OpenAI. OpenClaw se conecta a ds4
mediante la familia genérica de proveedores openai-completions.
ds4 no es un Plugin de proveedor incluido con OpenClaw. Configúrelo en
models.providers.ds4 y, a continuación, seleccione ds4/deepseek-v4-flash.
| Propiedad | Valor |
|---|---|
| Id. del proveedor | ds4 |
| Plugin | ninguno (solo configuración) |
| API | Chat Completions compatible con OpenAI (openai-completions) |
| URL base | http://127.0.0.1:18000/v1 (sugerida) |
| Id. del modelo | deepseek-v4-flash |
| Llamadas a herramientas | tools / tool_calls al estilo de OpenAI |
| Razonamiento | thinking y reasoning_effort al estilo de DeepSeek |
Requisitos
- macOS con compatibilidad con Metal.
- Una copia de trabajo funcional de ds4 con
ds4-servery el archivo GGUF de DeepSeek V4 Flash. - Memoria suficiente para el contexto que elija; los valores de
--ctxmás grandes asignan más memoria KV al iniciar el servidor.
Inicio rápido
Start ds4-server
Sustituya <DS4_DIR> por la ruta de su copia de trabajo de ds4.
<DS4_DIR>/ds4-server \ --model <DS4_DIR>/ds4flash.gguf \ --host 127.0.0.1 \ --port 18000 \ --ctx 32768 \ --tokens 128Verify the OpenAI-compatible endpoint
curl http://127.0.0.1:18000/v1/modelsLa respuesta debe incluir deepseek-v4-flash.
Add the OpenClaw provider config
Añada la configuración de Configuración completa y, a continuación, ejecute una comprobación puntual del modelo:
openclaw infer model run \ --local \ --model ds4/deepseek-v4-flash \ --thinking off \ --prompt "Reply with exactly: openclaw-ds4-ok" \ --jsonConfiguración completa
Use 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"], }, }, ], }, }, },}Mantenga contextWindow alineado con ds4-server --ctx. Mantenga maxTokens alineado
con --tokens, salvo que quiera deliberadamente que OpenClaw solicite menos salida
que el valor predeterminado del servidor.
Inicio bajo demanda
OpenClaw puede iniciar ds4 solo cuando se selecciona un modelo ds4/.... Añada
localService a la misma entrada del 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 a un ejecutable. No se utilizan la búsqueda del shell ni la expansión de ~.
Consulte Servicios de modelos locales para conocer
todos los campos de localService.
Think Max
ds4 aplica Think Max únicamente cuando se cumplen ambas condiciones:
ds4-serverse inicia con--ctx 393216o un valor superior.- La solicitud usa
reasoning_effort: "max"(o el campo de esfuerzo equivalente de ds4).
Si ejecuta ese contexto de gran tamaño, actualice 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"], },}Prueba
Comprobación HTTP directa, sin pasar por OpenClaw:
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"}}'Enrutamiento del modelo de OpenClaw (igual que la comprobación del inicio rápido):
openclaw infer model run \ --local \ --model ds4/deepseek-v4-flash \ --thinking off \ --prompt "Reply with exactly: openclaw-ds4-ok" \ --jsonPrueba de humo completa del agente y de las llamadas a herramientas, con 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 portool-ok
Solución de problemas
curl /v1/models cannot connect
ds4 no se está ejecutando o no está vinculado al host/puerto de baseUrl. Inicie
ds4-server y vuelva a intentarlo:
curl http://127.0.0.1:18000/v1/models500 prompt exceeds context
El valor configurado de --ctx es demasiado pequeño para el turno de OpenClaw. Aumente
ds4-server --ctx y, a continuación, actualice models.providers.ds4.models[].contextWindow
para que coincida. Los turnos completos del agente con herramientas necesitan considerablemente más contexto que una
solicitud directa de curl con un solo mensaje.
Think Max does not activate
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 al nivel de razonamiento
alto.
The first request is slow
ds4 tiene una fase inicial de residencia en Metal y calentamiento del modelo. Establezca
localService.readyTimeoutMs: 300000 cuando OpenClaw inicie el servidor bajo
demanda.
Contenido relacionado
Inicie servidores de modelos locales bajo demanda antes de las solicitudes al modelo.
Elija y gestione backends de modelos locales.
Configure referencias de proveedores, autenticación y conmutación por error.
Comportamiento nativo del proveedor DeepSeek y controles de pensamiento.