> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aihubmix.com/llms.txt
> Use this file to discover all available pages before exploring further.

# DeepSeek Harness

> Conectar DeepSeek Harness a AIHubMix: instalación npm, proveedor compatible con OpenAI, modelos auto o específicos y prueba de una solicitud Agent.

DeepSeek Harness (comando `dsh`) es el framework de agente de programación de código abierto de DeepSeek. Incluye espacios de trabajo, terminal, edición de archivos, Skills, planificación y Web UI. Su interfaz compatible con OpenAI Chat Completions permite conectarlo a AIHubMix.

<Info>
  Esta guía se probó el 14 de agosto de 2026 con DeepSeek Harness `0.1.0-rc.6`. Harness sigue en vista previa para desarrolladores, por lo que versiones posteriores pueden cambiar campos o detalles de la interfaz.
</Info>

<h2 id="summary">
  Resumen
</h2>

La integración requiere cuatro valores:

| Ajuste                       | Valor                     |
| ---------------------------- | ------------------------- |
| Provider ID                  | `aihubmix`                |
| Base URL                     | `https://aihubmix.com/v1` |
| API protocol                 | `openai-completions`      |
| API key environment variable | `AIHUBMIX_API_KEY`        |

<Frame>
  <img src="https://mintcdn.com/aihubmix/pPBGbuf_Qo9bMEMd/public/en/deepseek-harness/01-models-aihubmix-configured.png?fit=max&auto=format&n=pPBGbuf_Qo9bMEMd&q=85&s=9a11531222d056d05d6ee6030eddb595" alt="AIHubMix configurado en la página Models de DeepSeek Harness" width="1280" height="720" data-path="public/en/deepseek-harness/01-models-aihubmix-configured.png" />
</Frame>

<h2 id="requirements">
  ¿Qué necesitas?
</h2>

* Una [clave API de AIHubMix](https://console.aihubmix.com/token) activa
* Node.js `22.19.0` o posterior, incluido Node.js 24+
* Acceso de red al registro npm y a `https://aihubmix.com`

```bash theme={null}
node --version
npm --version
```

<h2 id="install">
  ¿Cómo se instala DeepSeek Harness?
</h2>

Instala la versión publicada en npm sin clonar el repositorio de código fuente:

```bash theme={null}
npm install -g @deepseek-ai/dsh
dsh --version
```

Si aparece `dsh: command not found`, ejecuta `npm config get prefix` y comprueba que su directorio `bin` esté incluido en `PATH`.

<h2 id="start-web-ui">
  ¿Cómo se inicia la Web UI?
</h2>

Ejecuta el comando desde el directorio que quieras usar como espacio de trabajo:

```bash theme={null}
dsh web --port 3080
```

Abre `http://127.0.0.1:3080` y selecciona o añade un espacio de trabajo durante el primer uso.

<h2 id="configure-provider">
  ¿Cómo se configura el proveedor AIHubMix?
</h2>

Abre **Settings > Models > Add a custom provider**.

<Frame>
  <img src="https://mintcdn.com/aihubmix/pPBGbuf_Qo9bMEMd/public/en/deepseek-harness/03-add-custom-provider.png?fit=max&auto=format&n=pPBGbuf_Qo9bMEMd&q=85&s=e5f609447d3c979a65235ecc1b0382d0" alt="Formulario de proveedor personalizado en DeepSeek Harness" width="1280" height="720" data-path="public/en/deepseek-harness/03-add-custom-provider.png" />
</Frame>

| Campo        | Valor recomendado         | Notas                                                                  |
| ------------ | ------------------------- | ---------------------------------------------------------------------- |
| Provider ID  | `aihubmix`                | Identificador en minúsculas; usa `aihubmix-gateway` si ya está ocupado |
| Display name | `AIHubMix`                | Nombre mostrado en el selector de modelos                              |
| Base URL     | `https://aihubmix.com/v1` | Debe incluir `/v1`                                                     |
| API protocol | `openai-completions`      | Protocolo compatible con OpenAI Chat Completions                       |
| API key      | Tu clave API de AIHubMix  | Harness la guarda como credencial y no vuelve a mostrar el valor       |

El endpoint final es `https://aihubmix.com/v1/chat/completions`.

<Warning>
  No introduzcas la ruta completa `/chat/completions` en Base URL.
</Warning>

<h2 id="add-models">
  Añadir auto u otro modelo
</h2>

Después de introducir Base URL y la clave API, selecciona **Fetch available models**. Harness solicita `GET https://aihubmix.com/v1/models` y muestra los ID de modelo disponibles.

<Frame>
  <img src="https://mintcdn.com/aihubmix/pPBGbuf_Qo9bMEMd/public/en/deepseek-harness/07-discover-models.png?fit=max&auto=format&n=pPBGbuf_Qo9bMEMd&q=85&s=7fdeeb8c4ba8400910bcabe1e7b50a78" alt="Modelos de AIHubMix disponibles en DeepSeek Harness" width="1280" height="720" data-path="public/en/deepseek-harness/07-discover-models.png" />
</Frame>

Para la primera prueba puedes añadir solo `auto` y usar `Auto` como nombre visible. Para utilizar un modelo específico, selecciónalo en la lista o usa **Add model** e introduce el ID exacto. El selector gráfico solo muestra los modelos registrados en el catálogo del Provider actual.

<Frame>
  <img src="https://mintcdn.com/aihubmix/pPBGbuf_Qo9bMEMd/public/en/deepseek-harness/04-add-auto-model.png?fit=max&auto=format&n=pPBGbuf_Qo9bMEMd&q=85&s=0c1e93d53cf9840d5c5885dc192b0d80" alt="Añadir manualmente el modelo auto de AIHubMix" width="1280" height="720" data-path="public/en/deepseek-harness/04-add-auto-model.png" />
</Frame>

Selecciona **Create provider** para guardar.

<h2 id="auto-vs-specific-models">
  Comparación entre auto y un modelo específico
</h2>

| Opción                  | Cuándo usarla                                                                  |
| ----------------------- | ------------------------------------------------------------------------------ |
| `auto`                  | Primera prueba de conexión o selección automática por AIHubMix                 |
| ID de modelo específico | Se requiere una capacidad, versión o resultado reproducible con un modelo fijo |

Ambas opciones usan el mismo Provider, Base URL y clave API. Cambiar de modelo no requiere crear de nuevo el proveedor.

<h2 id="environment-variables">
  Guardar la clave API en una variable de entorno
</h2>

Edita `$HOME/.dsh/settings.yaml`:

```yaml theme={null}
llm-pi-ai:
  providers:
    aihubmix:
      displayName: AIHubMix
      apiKeyEnv: AIHUBMIX_API_KEY
      api: openai-completions
      baseURL: https://aihubmix.com/v1
      models:
        - id: auto
          name: Auto
          contextWindow: 1000000
          maxTokens: 32768

agent-default-model:
  provider: aihubmix
  model: auto
```

```bash theme={null}
export AIHUBMIX_API_KEY='sk-***'
dsh web --port 3080
```

Cuando la clave procede del entorno de inicio, la página de ajustes muestra un aviso de solo lectura sin revelar el valor.

<Frame>
  <img src="https://mintcdn.com/aihubmix/pPBGbuf_Qo9bMEMd/public/en/deepseek-harness/02-aihubmix-provider-details.png?fit=max&auto=format&n=pPBGbuf_Qo9bMEMd&q=85&s=a18af7f6409268331dcb4ddfa7d78568" alt="Detalles del proveedor AIHubMix en DeepSeek Harness" width="1280" height="720" data-path="public/en/deepseek-harness/02-aihubmix-provider-details.png" />
</Frame>

Reinicia Harness después de cambiar la variable de entorno.

<h2 id="verify-chat">
  Seleccionar un modelo y probar una conversación
</h2>

Cierra Settings y selecciona **Auto** u otro modelo añadido desde el selector situado en la esquina inferior derecha del cuadro de entrada.

<Frame>
  <img src="https://mintcdn.com/aihubmix/pPBGbuf_Qo9bMEMd/public/en/deepseek-harness/05-select-auto-model.png?fit=max&auto=format&n=pPBGbuf_Qo9bMEMd&q=85&s=82577ac5295eebc0ef6e4945f75f5ffe" alt="Auto seleccionado en DeepSeek Harness" width="1280" height="720" data-path="public/en/deepseek-harness/05-select-auto-model.png" />
</Frame>

```text theme={null}
Reply with exactly: AIHubMix connection successful
```

La respuesta esperada confirma la conexión entre Harness, el endpoint compatible con OpenAI Chat Completions y AIHubMix.

<Frame>
  <img src="https://mintcdn.com/aihubmix/pPBGbuf_Qo9bMEMd/public/en/deepseek-harness/06-live-chat-success.png?fit=max&auto=format&n=pPBGbuf_Qo9bMEMd&q=85&s=f5fe3902c1c2f57b84b34b739b258394" alt="Respuesta correcta de AIHubMix en DeepSeek Harness" width="1280" height="720" data-path="public/en/deepseek-harness/06-live-chat-success.png" />
</Frame>

<h2 id="headless-test">
  Ejecutar una prueba headless
</h2>

```bash theme={null}
export AIHUBMIX_API_KEY='sk-***'
dsh --profile headless \
  'Reply with exactly DSH_AIHUBMIX_OK and do not use tools.'
```

Una ejecución correcta muestra `DSH_AIHUBMIX_OK`.

<h2 id="troubleshooting">
  Preguntas frecuentes
</h2>

<h3 id="missing-credential">
  ¿Por qué aparece MISSING\_CREDENTIAL?
</h3>

Harness no recibió `AIHUBMIX_API_KEY` del entorno de inicio. Define la variable e inicia Harness desde el mismo terminal.

<h3 id="models-401">
  ¿Por qué la búsqueda de modelos devuelve 401?
</h3>

Comprueba que la clave API sea válida y no contenga espacios o saltos de línea adicionales. La solicitud utiliza autenticación Bearer.

<h3 id="only-auto">
  ¿Por qué Auto es el único modelo del selector?
</h3>

El selector solo muestra modelos registrados en el catálogo actual. Abre **Settings > Models > AIHubMix > Edit** y usa **Fetch available models**, o añade manualmente el ID exacto.

<h3 id="unknown-model">
  ¿Por qué Harness muestra UNKNOWN\_MODEL?
</h3>

El catálogo actual no contiene ese ID. Los ID distinguen mayúsculas y minúsculas, usa el valor exacto devuelto por la búsqueda.

<h3 id="connection-timeout">
  ¿Por qué se agota el tiempo de conexión?
</h3>

Comprueba DNS, la red de tu organización y el proxy local. Si solo el navegador usa el proxy del sistema, define `HTTP_PROXY`, `HTTPS_PROXY` y `NODE_USE_ENV_PROXY=1` en el terminal que inicia `dsh`.

<h2 id="security">
  Recomendaciones de seguridad
</h2>

* No incluyas claves API en Git, capturas de pantalla o scripts compartidos
* Usa el almacenamiento de credenciales de Harness o `AIHUBMIX_API_KEY`
* No muestres una clave API completa durante el diagnóstico
* Usa la gestión de secretos de la plataforma CI para inyectar variables

***

Última actualización: 2026-08-14
