
¿Qué es DeepSeek Harness?
DeepSeek Harness es un harness de agentes de código abierto desarrollado por DeepSeek AI y construido sobre un framework de plugins llamado Cordis. El repositorio salió el 13 de agosto de 2026, y el hilo de lanzamiento en Hacker News alcanzó 747 puntos y 314 comentarios. El nombre en la línea de comandos es dsh, el paquete de npm es @deepseek-ai/dsh, y logró 451.964 descargas en npm en la semana hasta el 4 de octubre.

La página de producto de DeepSeek lo presenta mucho más allá de la programación: "Everyday tasks, coding, or your own harness." La demo integrada enumera cinco trabajos que maneja, desde organizar archivos y preparar diapositivas hasta corregir errores, investigar con citas y ejecutar scripts en segundo plano.
El estado del proyecto importa tanto como el discurso. El README lo califica de vista previa para desarrolladores y advierte, en mayúsculas, de que habrá cambios que rompan la compatibilidad. Todas las versiones hasta ahora son preliminares, y la última etiqueta al momento de escribir es dsh-v0.2.1-alpha.1, del 3 de octubre.
¿Qué es un harness de agentes, en realidad?
Un modelo por sí solo solo predice texto, y un harness es todo lo que lo rodea y convierte esas predicciones en acciones: el bucle que envía un prompt, lee una llamada a herramienta, ejecuta la herramienta, devuelve el resultado y decide cuándo parar. También se encarga del sandbox, los permisos, el historial de sesión y la interfaz en la que escribes.
Claude Code, Codex y el harness Strands de AWS son todos harnesses. También lo es el agente que responde tickets dentro de eesel. El modelo se lleva los titulares, pero la mayor parte de la diferencia que notas en el día a día (cómo gestiona el contexto, cómo se recupera de un comando fallido y también a qué tiene permiso de tocar) vive en el harness.
Lo que hace diferente a la versión de DeepSeek no es que sea un harness. Es que no tiene un núcleo fijo. El documento de arquitectura de DeepSeek lo dice sin rodeos: "no privileged core to patch."
Cómo funciona realmente "todo es un plugin"
Por dentro, dsh es un conjunto de plugins de Cordis. En Cordis, los plugins aportan servicios, eventos tipados y "reversible effects" a un contexto compartido, de modo que un plugin puede cargarse, cambiarse o descargarse mientras la app se está ejecutando. DeepSeek aplica eso a todas las capas: el adaptador de modelo, el registro de herramientas, el registro de sesión y el bucle del agente son, cada uno, plugins que puedes reemplazar desde la configuración, según el documento de arquitectura.

Los plugins se agrupan en bundles, y los bundles se apilan en perfiles. La referencia de la CLI detalla el orden en que se componen las capas:
- El parche de cada bundle, en el orden en que el perfil los enumera.
- El propio
cordis.patch.ymldel perfil. - El
$DSH_HOME/cordis.patch.ymla nivel de home, compartido por todos los perfiles. - Cualquier archivo
--patchque pases por la línea de comandos.
Las capas posteriores ganan, y un parche reemplaza el config completo de la fila a la que apunta en lugar de fusionarlo en profundidad. Si alguna vez has peleado con un archivo de configuración que fusionó en silencio un valor que olvidaste, esa regla resulta bastante refrescante. Puedes imprimir el resultado compuesto con dsh --profile web --dump-config, que anota cada fila con el archivo que la aportó.
Lo que más entusiasmó a la gente es el modo Creator. Describes un plugin en el chat y el agente lo escribe, lo instala y lo verifica. La demo de DeepSeek construye un temporizador Pomodoro flotante: el agente carga una skill cordis-plugin-development, escribe un client.js de 638 líneas, lo instala a través del gestor de plugins y confirma que funciona, en 5 minutos y 24 segundos.

El inconveniente es real, y un usuario intensivo lo expresó bien en Hacker News, porque poder reemplazar un plugin central no es lo mismo que poder ajustarlo:
"the problem with "Everything Is A Plugin" is that when this includes core functionality, you still have to maintain downstream patches for those core plugins if you want to tweak existing behaviour. I currently have ~25 downstream commits and 0 new plugins."
Cinco formas de ejecutarlo
Todo parte de un único lanzador, dsh, que arranca un perfil con nombre. Vienen cinco perfiles de serie, y la app de escritorio envuelve el web. Así se diferencian, según el README de la CLI y el README de escritorio:
| Modo | Comando | Para qué sirve |
|---|---|---|
| App de escritorio | Descarga para macOS (Apple Silicon o Intel) o Windows x64 | La app web completa dentro de un contenedor Electron, con Node, Python y pnpm incluidos. Sin versión para Linux |
| Interfaz web | npx @deepseek-ai/dsh web | App web local en http://127.0.0.1:3080. Funciona por SSH si redirigues el puerto |
| Headless | dsh --profile headless "run the tests" | Ejecuta un trabajo, imprime solo la respuesta final y sale con 0 si hay éxito y con 1 en caso contrario. No abre ningún puerto |
| SDK | dsh --profile sdk | JSON-RPC sobre stdio, también envuelto por un SDK de Python |
| ACP | dsh --profile acp | Atiende a editores y clientes de automatización mediante el Agent Client Protocol |
Para CI, el modo headless es el primero al que recurriría. Envía el razonamiento del modelo a stderr bajo el encabezado dsh: reasoning: y mantiene stdout limpio para la respuesta, lo que facilita encadenarlo con el siguiente paso. Desde v0.1.7 también lee tareas desde stdin, se reanuda con --session-id y emite eventos JSON delimitados por saltos de línea con --json. Si ya programas agentes desde una terminal, mi guía para controlar agentes de IA desde la CLI cubre el mismo patrón con otras herramientas.
Un detalle pequeño que me gustó: el perfil web rechaza --host 0.0.0.0 con un error de uso. Exponer a toda tu red un agente con acceso a shell es algo que tienes que hacer a propósito, mediante --public-url y --trusted-host.
Qué trae de serie
La instalación por defecto es deliberadamente ligera, y la mayoría de las partes interesantes son plugins oficiales que activas. Lo más destacado de la documentación y las notas de versión:
- Subagentes, incluidos otros harnesses. Plugins opcionales permiten que dsh llame a Claude Code y Codex como subagentes (
@deepseek-ai/dsh-subagent-claude-codey@deepseek-ai/dsh-subagent-codex). Las cadenas de subagentes admiten por defecto 8 hijos activos con una profundidad de delegación de 1, según las notas de v0.1.6. - Equipos de agentes. Un modo de equipo experimental con un tablero de tareas compartido, donde el límite por defecto de compañeros pasó de 8 a 16 en septiembre.
- Tareas programadas. Trabajos recurrentes como "cada viernes a las 17:00, resume las notas de esta semana." Está desactivado por defecto en escritorio.
- Archivos de Office. El escritorio registra las skills
office-docx,office-pptxyoffice-xlsxy previsualiza archivos de Word, Excel y PowerPoint en la app. - Uso de navegador y de ordenador. Backends experimentales mediante Playwright MCP, Chrome DevTools MCP, Stagehand y un driver de Cua.
- Cliente MCP. La compatibilidad con MCP viene como dependencia, pero no hay ningún servidor habilitado por defecto (más abajo, el porqué).
- Un puente de mods de Claude Code. La versión más reciente añade una capa de compatibilidad experimental para probar si las capacidades de los mods de Claude Code son "broadly a subset" del sistema de plugins de dsh.
La función de la que más habla la gente es la vista de trayectoria, un panel para desarrolladores que muestra cada turno, llamada a herramienta, payload, resultado y tiempo como una línea temporal, para que veas exactamente dónde se torció un agente en lugar de adivinarlo a partir de la respuesta final.

"Trajectory view is the underrated bit. If the agent searches the web or edits files, people need to see the trail, not just trust the final answer."
Estoy más de acuerdo con eso que con el recuento de estrellas. En el compañero de helpdesk de eesel, la superficie de depuración en la que más me apoyo es el registro de actividad por ejecución, que muestra qué leyó el agente y qué herramienta llamó. Un agente que no puedes rastrear es un agente al que no puedes confiar nada real.
Los ajustes por defecto que conviene revisar antes de ejecutarlo
Esta es la sección que se salta la mayor parte de la cobertura del lanzamiento, y la que yo leería primero. Nada de esto está oculto, todo figura en la propia documentación de DeepSeek, pero es fácil pasarlo por alto cuando la instalación es un solo comando npx.

Los registros de sesión van a DeepSeek en la API oficial. El bundle base monta un contribuidor de registro de sesión de DeepSeek que está activado por defecto. Envía tus registros de sesión junto con las peticiones posteriores a la API de DeepSeek, incluso a través de gateways configurados. Puedes desactivarlo en Settings, General, Upload Session Log when using the official model API, o poner la configuración enabled del plugin en false. Un comentarista de Hacker News que lo investigó añadió la cara útil de la moneda: si ejecutas dsh web contra un modelo local, por defecto no va nada a DeepSeek salvo la herramienta de búsqueda web, que usa la API de DeepSeek.
Las escrituras están en sandbox; las lecturas y la red no. Las sesiones nuevas usan el preset workspace-write, de modo que Bash y los cambios de archivos están restringidos al workspace y a carpetas temporales. Las lecturas y el acceso a la red no están confinados, así que el agente puede leer tu carpeta de usuario y llamar a internet. Qué tan aislados están los procesos depende del backend: bwrap en Linux oculta los procesos del host, mientras que Landlock y macOS Seatbelt no. El perfil sdk-minimal va en sentido contrario y fija danger-full-access sin ningún servicio de aprobación.
Los servidores MCP están desactivados hasta que los añades. Vale la pena citar el razonamiento de DeepSeek: cada comando de servidor MCP es "trusted executable code outside the agent sandbox", así que ninguno está habilitado por defecto. Es la decisión correcta, y es la misma razón por la que auditaría cualquier servidor MCP para trabajo de soporte antes de conectarlo a datos de clientes.
La telemetría es solo de feedback en la versión web. El valor base de DSH_TELEMETRY_MODE es FEEDBACK_ONLY, y DISABLED la apaga. Un usuario de Hacker News comentó que la versión de escritorio parece activar la telemetría por defecto, y el README de escritorio confirma que sus analíticas siguen una política de recopilación de producto aparte con un ajuste en vivo, así que revisa ese interruptor si usas la app.
Nada de esto hace a dsh algo inusual, ya que la mayoría de los agentes de programación alojados también envían tus prompts y tu código a su proveedor, que es simplemente cómo funciona un modelo alojado. La diferencia es que dsh es de código abierto y se ejecuta en local, lo que lleva a mucha gente a suponer que nada sale de la máquina. Con la API oficial, esa suposición es falsa hasta que cambies el ajuste.
¿Cuánto cuesta DeepSeek Harness?
El harness es gratis. La licencia MIT cubre el código, y la página de producto no enumera planes ni tarifas. Lo que pagas es el uso del modelo, y en la API propia de DeepSeek es inusualmente barato. Esta es la tarifa actual, por millón de tokens:
| Tipo de token | V4.1 Flash, fuera de hora punta | V4.1 Flash, hora punta | V4 Pro, fuera de hora punta | V4 Pro, hora punta |
|---|---|---|---|---|
| Entrada, acierto de caché | $0.003 | $0.006 | $0.022 | $0.044 |
| Entrada, fallo de caché | $0.15 | $0.30 | $0.66 | $1.32 |
| Salida | $0.60 | $1.20 | $1.98 | $3.96 |
| Ventana de contexto | 1M | 1M | 1M | 1M |
| Salida máxima | 384K | 384K | 384K | 384K |
Dos detalles cambian las cuentas. Primero, fuera de hora punta cuesta la mitad, y la hora punta es solo de 01:00 a 04:00 y de 06:00 a 10:00 UTC en días laborables, excluidos los festivos públicos de China, según la documentación de precios. Los fines de semana es fuera de hora punta todo el día. Segundo, el nombre del modelo ahora es deepseek-flash; los nombres antiguos deepseek-v4-flash siguen funcionando, pero los atiende V4.1 Flash y se facturan al precio de Flash. Mi artículo sobre los precios de V4.1 Flash profundiza en las cuentas de la caché.

Un ejemplo rápido. Supón que una larga sesión de programación envía 5 millones de tokens de entrada sin caché y recibe 500.000 tokens de salida en V4.1 Flash. Fuera de hora punta, son 5 x 0,15 $ más 0,5 x 0,60 $, es decir, 1,05 $. La misma sesión en hora punta cuesta 2,10 $. Los bucles de agente reenvían mucho contexto, así que en la práctica buena parte de esa entrada acertaría en la caché a 0,003 $, y la factura real sería aún menor.
Esa es la razón honesta de que dsh reciba tanta atención, y un comentarista resumió el intercambio que la mayoría está sopesando:
"At least DeepSeek provides 95% of the performance for 10% of the cost."
Toma ese "95 %" como la impresión de una persona, no como un benchmark. Para una comparación más completa, mis artículos sobre V4 Flash vs V4 Pro y los precios de Claude Code cubren la parte de modelos y la de suscripciones.
¿Qué dicen los desarrolladores?
La reacción se dividió en bandos: quienes adoran la arquitectura, quienes adoran el precio y quienes quieren verlo sobrevivir al contacto con producción.
Sobre la arquitectura, el elogio es concreto. Hesam (@Hesamation) enumeró las reacciones que vio en los primeros días:
"unusually well designed architecture with tools, session log, agent loop, subagents, all being replaceable plugins"
Los usuarios que lo han probado señalan cómo se siente en el día a día. Un desarrollador lo comparó directamente con OpenCode y destacó la mensajería bidireccional de subagentes:
"Good things about it are that it is extremely lightweight and fast. The communication between sub agents is two way in that a sub agent can midway send a message to parent and the parent can send a message midway to change the course of action of a sub agent and while this is happening, you can sitll continue talking to the model on the main thread."
Los escépticos tampoco se equivocan. Las estrellas miden atención, y un repositorio de crecimiento rápido con el seguimiento de incidencias desactivado es difícil de juzgar desde fuera:
"The repo was created on 13 August, so that is about 202K stars in 15 days, and the issue tracker is turned off. Stars at that rate measure attention, not deployment. Is there a published number on agents actually running on it?"
Los autores de DeepSeek han sido claros al respecto. Uno de ellos publicó el día del lanzamiento que es "an early developer preview" y que hay que "expect lots of rough edges and compatibility-breaking changes." El registro de cambios lo respalda: solo la versión v0.2.1-alpha.1 eliminó los plugins de invariantes de runtime y renombró las entradas de estadísticas del composer, ambos cambios que rompen compatibilidad para autores de plugins.
Ejecutarlo con modelos que no son de DeepSeek también funciona. Ollama, un popular ejecutor de modelos locales, anunció compatibilidad el segundo día:
"Ollama now supports the DeepSeek Harness. ollama launch dsh. Run it completely in your own environment."
Cómo se compara con Claude Code, Codex y Strands
Los cuatro son harnesses, y la respuesta honesta es que están convergiendo. Las diferencias que importan hoy son la apertura y la dependencia del modelo, y también la madurez.
| DeepSeek Harness | Claude Code | Codex | Harness Strands | |
|---|---|---|---|---|
| Creado por | DeepSeek | Anthropic | OpenAI | AWS |
| Código abierto | Sí, MIT | No | Sí, la CLI es de código abierto | Sí, Apache 2.0 |
| Modelos | Cualquiera, mediante adaptador de plugin | Modelos Claude | Modelos de OpenAI | Cualquiera (Bedrock, Anthropic, OpenAI, Ollama y más) |
| Interfaces | Escritorio, interfaz web, headless, SDK, ACP | Terminal, IDE, escritorio, SDK | Terminal, IDE, nube | Biblioteca de código (SDK) |
| Modelo de extensión | Todo es un plugin reemplazable | Plugins, hooks, MCP, subagentes | MCP, configuración | Hooks y herramientas a nivel de código |
| Madurez | Vista previa para desarrolladores, se esperan cambios que rompen compatibilidad | Estable | Estable | Nuevo (septiembre de 2026) |
Mi opinión: si quieres trastear con cómo funciona un agente, o quieres ejecutar un agente de programación capaz por unos pocos dólares al día en DeepSeek V4.1 Flash, dsh es ahora mismo el harness abierto más interesante. Si necesitas algo en lo que todo tu equipo pueda confiar el próximo trimestre sin releer el registro de cambios cada semana, las herramientas asentadas siguen siendo la apuesta más segura. Para una visión más amplia, mi recopilación de herramientas de asistentes de programación con IA y la lista de alternativas al harness Strands cubren más opciones.
¿Deberías construir un agente de soporte sobre él?
Alguien ya lo preguntó. Un pequeño hilo de Ask HN titulado "Anyone using DeepSeek Harness (dsh) as part of a customer-facing agent?" es una señal de hacia dónde se va la cabeza de la gente cuando el precio del token baja tanto: si el agente es gratis y el modelo es barato, ¿por qué no construir mi propio bot de soporte?
Entiendo la atracción, porque lo veo desde el otro lado. Un puñado de clientes de eesel se ha ido para construir directamente sobre la API de Claude por su cuenta, y una marca de cosmética con un plan de 799 $/mes le dijo al equipo de soporte de eesel que "build their own solution" si el precio no bajaba. Los modelos baratos hacen esa conversación más frecuente, no menos.
El problema es que el harness es la parte más pequeña del trabajo. Así veo el reparto después de haber construido uno:

dsh te da un buen bucle y sandboxing, además de un sistema de plugins. Un agente de soporte también necesita una conexión bidireccional con tu helpdesk (leer el ticket, etiquetarlo, responder, escalar), una forma de mantener sincronizados tu centro de ayuda, tus macros y los tickets pasados a medida que cambian, reglas sobre lo que puede hacer sin un humano y una forma de probarlo con tickets pasados reales antes de que hable con un cliente. Ese último paso es el que nunca me saltaría. He visto a un bot de aspecto muy seguro dar respuestas erróneas durante días antes de que nadie lo notara, por lo que cada despliegue de eesel ahora se simula primero con tickets históricos.
Así que mi respuesta: construye sobre dsh si a tu equipo le gusta ser dueño de ese stack y tiene tiempo para seguir el ritmo de una vista previa que cambia cada semana. Si tu objetivo son tickets respondidos y no un framework que mantener, contrata mejor al compañero. Y vuelve a leer la sección de ajustes por defecto de arriba antes de que pasen datos de clientes por la API oficial.
Prueba eesel
La forma limpia de decirlo: DeepSeek Harness es infraestructura, y eesel es el empleado. eesel es una plataforma de compañeros de IA donde contratas compañeros listos para trabajar en tareas concretas. Para soporte, ese es el compañero de IA para el helpdesk: se conecta a Zendesk, Freshdesk, Gorgias y otros helpdesks en minutos, aprende de tus tickets pasados y tu centro de ayuda, y puedes simularlo con tu propio historial de tickets antes de que responda a nadie.

Si dsh te llamó la atención porque te gusta manejar agentes desde una terminal, eesel también lo tiene. La CLI de eesel opera el mismo compañero y el mismo workspace que el panel, no es un producto aparte. npx @eesel/cli init configura un agente, eesel integrations connect conecta tu helpdesk, eesel approvals list muestra las acciones a la espera de un humano y eesel activity te permite leer cada ejecución en detalle, de forma muy parecida a la vista de trayectoria de dsh. Cada comando imprime JSON y admite --dry-run, así que un agente de programación como Claude Code, Codex o incluso el propio dsh puede configurar y probar un workspace por ti. Mi artículo sobre gestionar agentes de IA desde la terminal lo explica paso a paso.
Puedes empezar con el plan gratuito con 100 créditos y sin tarjeta; los planes de pago de compañeros empiezan en 299 $/mes por 500 créditos, donde un ticket o chat equivale a un crédito. Es el camino más corto si lo que quieres son tickets resueltos y no un harness que mantener.
Preguntas frecuentes
¿Qué es DeepSeek Harness?
DeepSeek Harness (el comando dsh) es el harness de agentes de código abierto y licencia MIT de DeepSeek. Envuelve un modelo de lenguaje con un bucle de agente, herramientas, un sandbox y una interfaz, y cada una de esas piezas es un plugin que puedes cambiar desde la configuración. Es un primo cercano de Claude Code y del harness Strands, pero totalmente abierto e independiente del modelo.
¿Es gratis DeepSeek Harness?
Sí, el harness en sí es gratis con la licencia MIT. Pagas por el modelo al que lo apuntes. En la API de DeepSeek, V4.1 Flash cuesta 0,15 $ por millón de tokens de entrada sin caché y 0,60 $ por millón de tokens de salida fuera de hora punta, y el doble en hora punta.
¿Cómo instalo DeepSeek Harness?
La vía más rápida es npx @deepseek-ai/dsh web, que inicia una interfaz web local en 127.0.0.1:3080. También hay una app de escritorio para macOS y Windows, un modo headless para tareas puntuales y modos SDK y ACP para manejarlo desde otros programas. Si prefieres manejar agentes desde una terminal, mi guía sobre gestionar agentes de IA desde la terminal cubre el patrón más amplio.
¿DeepSeek Harness solo funciona con modelos de DeepSeek?
No. El adaptador de modelo es un plugin, y dsh incluye un catálogo de modelos de terceros junto al adaptador nativo de DeepSeek, así que puedes apuntarlo a otros proveedores o a un modelo local con Ollama. Incluso puede ejecutar Claude Code y Codex como subagentes.
¿Es seguro usar DeepSeek Harness con código privado?
Revisa primero los ajustes por defecto. En la API oficial de DeepSeek, un plugin de registro de sesión sube tus registros de sesión junto con las peticiones posteriores por defecto (puedes desactivarlo en Ajustes). Las sesiones nuevas solo pueden escribir dentro del workspace, pero las lecturas y el acceso a la red no están confinados, y los servidores MCP están desactivados hasta que los habilites. Compáralo con cómo funcionan los permisos de Claude Code antes de decidir.
DeepSeek Harness vs Claude Code: ¿cuál debería usar?
DeepSeek Harness es gratis, de código abierto y te deja sustituir cualquier pieza, lo que encaja con quienes disfrutan trasteando y con equipos que quieren los bajos precios de tokens de DeepSeek V4.1 Flash. Claude Code es el producto más asentado, con un modelo estable de plugins y hooks. dsh sigue siendo una vista previa para desarrolladores, así que espera cambios que rompan la compatibilidad. Mi desglose de los precios de Claude Code ayuda con la parte de costes.
¿Puedo construir un agente de atención al cliente sobre DeepSeek Harness?
Puedes, pero el harness solo te da el bucle, las herramientas y el sandbox. Aún necesitas la conexión con el helpdesk, la sincronización de conocimiento, las reglas de aprobación y las pruebas con tickets pasados. Un compañero de IA para el helpdesk como eesel trae esas piezas listas para trabajar, y mi guía de MCP para atención al cliente cubre el camino a medida.