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-server y el archivo GGUF de DeepSeek V4 Flash.
  • Memoria suficiente para el contexto que elija; los valores de --ctx má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.

    bash
    <DS4_DIR>/ds4-server \  --model <DS4_DIR>/ds4flash.gguf \  --host 127.0.0.1 \  --port 18000 \  --ctx 32768 \  --tokens 128
  • Verify the OpenAI-compatible endpoint

    bash
    curl http://127.0.0.1:18000/v1/models

    La 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:

    bash
    openclaw infer model run \  --local \  --model ds4/deepseek-v4-flash \  --thinking off \  --prompt "Reply with exactly: openclaw-ds4-ok" \  --json
  • Configuración completa

    Use esta configuración cuando ds4 ya se esté ejecutando en 127.0.0.1:18000.

    json5
    {  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:

    json5
    {  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-server se inicia con --ctx 393216 o 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:

    json5
    {  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:

    bash
    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):

    bash
    openclaw infer model run \  --local \  --model ds4/deepseek-v4-flash \  --thinking off \  --prompt "Reply with exactly: openclaw-ds4-ok" \  --json

    Prueba de humo completa del agente y de las llamadas a herramientas, con un contexto de al menos 32768:

    bash
    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 240

    Resultado esperado:

    • executionTrace.winnerProvider es ds4
    • executionTrace.winnerModel es deepseek-v4-flash
    • toolSummary.calls es al menos 1
    • finalAssistantVisibleText comienza por tool-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:

    bash
    curl http://127.0.0.1:18000/v1/models
    500 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

    Was this useful?
    On this page

    On this page