{"id":201,"date":"2026-11-06T10:40:51","date_gmt":"2026-11-06T06:40:51","guid":{"rendered":"https:\/\/demensdeum.com\/blog\/2026\/11\/06\/deepseek-harness-install-usage\/"},"modified":"2026-11-06T17:04:10","modified_gmt":"2026-11-06T13:04:10","slug":"deepseek-harness-install-usage","status":"publish","type":"post","link":"https:\/\/demensdeum.com\/blog\/es\/2026\/11\/06\/deepseek-harness-install-usage\/","title":{"rendered":"DeepSeek Harness: instalaci\u00f3n, capacidades y primer lanzamiento"},"content":{"rendered":"<p>DeepSeek Harness, o dsh para abreviar, es un arn\u00e9s de agente de IA de c\u00f3digo abierto de DeepSeek AI. Si el modelo responde preguntas, entonces el arn\u00e9s le da la mano: lee y edita archivos, ejecuta comandos, mantiene sesiones, muestra la trayectoria de ejecuci\u00f3n y se permite expandirse con complementos. El proyecto se distribuye bajo la licencia MIT y se encuentra en versi\u00f3n preliminar p\u00fablica.<\/p>\n<p>La idea principal de DeepSeek Harness est\u00e1 formulada como &#8220;todo es un complemento&#8221;, literalmente &#8220;todo es un complemento&#8221;. Todo el producto se basa en esto: adaptadores de modelo, un registro de herramientas, un registro de sesi\u00f3n, una interfaz e incluso el propio ciclo del agente. Se basa en el marco Cordis, por lo que un desarrollador no puede simplemente agregar un nuevo comando, sino reemplazar todo el comportamiento del agente sin bifurcar el kernel.<\/p>\n<p>Puede trabajar con dsh de varias maneras: a trav\u00e9s de la interfaz web local, a trav\u00e9s de una aplicaci\u00f3n de escritorio, desde la l\u00ednea de comandos en modo sin cabeza o desde el SDK de Python. A continuaci\u00f3n se muestra la instalaci\u00f3n, el primer lanzamiento y una descripci\u00f3n general de las capacidades.<\/p>\n<h2>Lo que necesitas<\/h2>\n<p>La interfaz web y la CLI requieren Node.js. El proyecto tiene requisitos estrictos:<\/p>\n<ul>\n<li><b>Node.js 22.19.0 o posterior<\/b> en la l\u00ednea 22.x.<\/li>\n<li><b>Node.js 24.0.0 o posterior<\/b> en la l\u00ednea 24.x.<\/li>\n<li><b>Node.js 23.x no es compatible<\/b> con ning\u00fan parche: esta l\u00ednea no es LTS y ya ha sido descontinuada.<\/li>\n<\/ul>\n<p>Adem\u00e1s de Node.js, necesitar\u00e1 la clave API de DeepSeek. Se crea en su cuenta personal en platform.deepseek.com. La aplicaci\u00f3n de escritorio no necesita Node.js: el entorno ya est\u00e1 empaquetado all\u00ed.<\/p>\n<p>Puedes comprobar la versi\u00f3n con el comando:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>node -v\n<\/code><\/pre>\n<\/div>\n<h2>Instalaci\u00f3n mediante npx<\/h2>\n<p>La forma m\u00e1s r\u00e1pida de conocer el proyecto es no instalar nada globalmente. Simplemente ejecuta:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>npx @deepseek-ai\/dsh web\n<\/code><\/pre>\n<\/div>\n<p>El comando descargar\u00e1 el paquete <b>@deepseek-ai\/dsh<\/b> de npm, configurar\u00e1 un servidor web local y abrir\u00e1 la interfaz en el navegador. Por defecto escucha la direcci\u00f3n:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code><a href=\"https:\/\/127.0.0.1:3080\" rel=\"noopener\" target=\"_blank\">https:\/\/127.0.0.1:3080<\/a><\/code><\/pre>\n<\/div>\n<p>Si no necesita abrir el navegador, por ejemplo en una m\u00e1quina remota, agregue el indicador <b>&#8211;no-open<\/b>:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>npx @deepseek-ai\/dsh web --no-open\n<\/code><\/pre>\n<\/div>\n<p>Cuando se inicia a trav\u00e9s de SSH, dsh imprime la direcci\u00f3n pero no intenta abrir el navegador: la direcci\u00f3n local es propiedad del cliente o editor SSH.<\/p>\n<h2>Instalaci\u00f3n global<\/h2>\n<p>Si necesitas una herramienta constantemente, es m\u00e1s conveniente instalarla globalmente. El paquete proporciona el binario <b>dsh<\/b>:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>npm install -g @deepseek-ai\/dsh\ndsh web\n<\/code><\/pre>\n<\/div>\n<p>Despu\u00e9s de esto, el comando dsh est\u00e1 disponible desde cualquier directorio. La actualizaci\u00f3n se realiza de la forma habitual:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>npm install -g @deepseek-ai\/dsh@latest\n<\/code><\/pre>\n<\/div>\n<h2>Aplicaci\u00f3n de escritorio<\/h2>\n<p>Para aquellos que no quieren tener una terminal y Node.js, DeepSeek lanza versiones de escritorio. Est\u00e1n disponibles en la p\u00e1gina de descarga oficial:<\/p>\n<ul>\n<li><b>macOS<\/b>: Apple Silicon, macOS 13 o posterior, formato DMG.<\/li>\n<li><b>Windows<\/b>: ensamblado de 64 bits, formato EXE.<\/li>\n<\/ul>\n<p>La aplicaci\u00f3n funciona con los mismos archivos locales, puede realizar tareas en segundo plano y almacena sesiones de la misma forma que la versi\u00f3n web. Esta es una opci\u00f3n conveniente para el trabajo diario, cuando no desea activar el servidor manualmente cada vez.<\/p>\n<h2>Construyendo a partir de fuentes<\/h2>\n<p>Si necesita control total sobre el c\u00f3digo, sus propios parches o el desarrollo de complementos, el proyecto se recopila del repositorio. Necesitar\u00e1 pnpm y el repositorio corrige una versi\u00f3n espec\u00edfica, por lo que primero debe habilitar Corepack:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>corepack enable\ngit clone https:\/\/github.com\/deepseek-ai\/deepseek-harness.git\ncd deepseek-harness\npnpm install\npnpm run build\npnpm dsh web\n<\/code><\/pre>\n<\/div>\n<p>El comando <b>pnpm run build<\/b> prepara el paquete y los artefactos del frontend, y <b>pnpm dsh web<\/b> ejecuta la versi\u00f3n ya compilada sin reconstruir. Para el desarrollo, existe un modo <b>pnpm run dev:web<\/b>: construye, inicia el servidor y reconstruye los paquetes de clientes cuando cambian las fuentes.<\/p>\n<h2>Primer lanzamiento<\/h2>\n<p>Despu\u00e9s de iniciar la interfaz web, el procedimiento es el siguiente.<\/p>\n<p>Primero, abra <b>Configuraci\u00f3n \u2192 Modelos<\/b> e ingrese la clave API de DeepSeek. La clave se guarda en el archivo <b>$DSH_HOME\/.credentials.yaml<\/b> y solo queda un enlace en la configuraci\u00f3n. La p\u00e1gina de configuraci\u00f3n recibe una descripci\u00f3n ya enmascarada del secreto, por lo que es imposible leer la clave desde la interfaz. Los cambios de modelo se aplican a partir de la siguiente solicitud; no es necesario reiniciar el servidor.<\/p>\n<p>Luego seleccione su carpeta de trabajo a trav\u00e9s de <b>Elegir espacio de trabajo<\/b>. Mientras el espacio de trabajo no est\u00e9 seleccionado, el campo de entrada de la tarea permanece atenuado. Esto se hace intencionalmente: el agente debe comprender los l\u00edmites dentro de los cuales se le permite leer y cambiar archivos.<\/p>\n<p>Despu\u00e9s de esto, puedes enviar la primera tarea. Por ejemplo:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>Summarize this repository and identify its main packages.\n<\/code><\/pre>\n<\/div>\n<p>El agente leer\u00e1 el proyecto, elaborar\u00e1 un plan, solicitar\u00e1 las herramientas necesarias y mostrar\u00e1 el resultado. Para operaciones que requieren confirmaci\u00f3n seg\u00fan la pol\u00edtica de acceso actual, dsh preguntar\u00e1 antes de ejecutar.<\/p>\n<h2>Modelos y proveedores<\/h2>\n<p>DeepSeek se conecta en un solo paso: la tarjeta del proveedor en la configuraci\u00f3n contiene solo un campo para la clave API. Adem\u00e1s, puede agregar servicios de terceros. El directorio integrado conoce identificadores como <b>anthropic<\/b>, <b>openai<\/b>, <b>moonshotai<\/b> para Kimi y <b>zai<\/b> para GLM.<\/p>\n<p>Para su propia puerta de enlace, proxy corporativo o servidor local, existe un modo <b>API de modelo personalizado<\/b>. Pregunta:<\/p>\n<ul>\n<li>identificador de proveedor permanente;<\/li>\n<li>nombre para mostrar;<\/li>\n<li>Direcci\u00f3n base API;<\/li>\n<li>protocolo: Finalizaciones de chat OpenAI, respuestas OpenAI o mensajes antr\u00f3picos;<\/li>\n<li>Clave y lista de modelos.<\/li>\n<\/ul>\n<p>El protocolo es importante: un proveedor habla un protocolo. Si una puerta de enlace admite tanto OpenAI como Anthropic, deber\u00e1 ser descrita por dos proveedores. Para los modelos, puede especificar el tama\u00f1o de la ventana contextual, la cantidad m\u00e1xima de tokens de salida y los tipos de datos de entrada admitidos, incluidas las im\u00e1genes.<\/p>\n<p>Los modelos de DeepSeek tienen niveles de razonamiento <b>apagado<\/b>, <b>bajo<\/b>, <b>alto<\/b> y <b>m\u00e1ximo<\/b>. El nivel se selecciona en el men\u00fa <b>Esfuerzo<\/b> al lado del modelo. Para tareas rutinarias en el repositorio, un modelo r\u00e1pido es suficiente, pero para tareas arquitect\u00f3nicas complejas tiene sentido aumentar el esfuerzo o tomar un modelo de clase superior.<\/p>\n<h2>Complementos y modo Creador<\/h2>\n<p>Los complementos son la caracter\u00edstica principal de DeepSeek Harness. A trav\u00e9s de ellos se a\u00f1aden herramientas, habilidades, elementos de interfaz y aplicaciones completas. La interfaz tiene un administrador de complementos con conjuntos oficiales y experimentales: comandos de agentes, confirmaci\u00f3n autom\u00e1tica, tareas programadas, entrada de voz, terminal, subagentes.<\/p>\n<p>Destaca por separado el <b>modo Creador<\/b>. En este modo, puedes pedirle al agente que escriba un complemento directamente en el chat. Descargar\u00e1 la habilidad de desarrollo del complemento Cordis, crear\u00e1 una estructura de paquete, escribir\u00e1 c\u00f3digo, instalar\u00e1 el complemento y verificar\u00e1 su estado. Hay un ejemplo en la p\u00e1gina oficial del proyecto donde se ensambla un temporizador Pomodoro flotante de esta manera.<\/p>\n<p>Los complementos tambi\u00e9n se pueden instalar desde la l\u00ednea de comando. Para un perfil web, el comando tiene este aspecto:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>dsh plugin --profile web add some-dsh-plugin\n<\/code><\/pre>\n<\/div>\n<p>Se admiten paquetes Npm, enlaces como github:owner\/repo, directorios locales y archivos tgz. Despu\u00e9s de la instalaci\u00f3n, es \u00fatil comprobar que la capa del complemento est\u00e9 realmente incluida en la configuraci\u00f3n:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>dsh --profile web --dump-config\n<\/code><\/pre>\n<\/div>\n<p>El comando imprime el \u00e1rbol de complementos ensamblado sin iniciar el servidor. Si no hay una capa nueva, lo m\u00e1s probable es que el paquete no haya declarado un manifiesto dsh.bundle y se haya instalado como una biblioteca normal en lugar de como un complemento incluido.<\/p>\n<p>La configuraci\u00f3n experimental incluye <b>Mercados de complementos personalizados<\/b>. Este es un archivo JSON de \u00edndice con una lista de complementos, sus versiones, \u00edconos y fuentes. Al habilitar el conjunto, obtienes una pesta\u00f1a <b>Descubrir<\/b> en la p\u00e1gina de complementos y la capacidad de conectar mercados de terceros. Como cualquier fuente de terceros, dicho mercado s\u00f3lo debe agregarse si se conf\u00eda en sus autores.<\/p>\n<h2>Trayectoria y auditor\u00eda<\/h2>\n<p>Para cada sesi\u00f3n, dsh escribe un registro de eventos de solo anexar: <b>Trayectoria<\/b>. Almacena las indicaciones del sistema, el razonamiento, las llamadas a herramientas y sus resultados, la programaci\u00f3n de subagentes y las inserciones de contexto. La reanudaci\u00f3n de la sesi\u00f3n, las bifurcaciones, la b\u00fasqueda y la reproducci\u00f3n se basan en este registro.<\/p>\n<p>El beneficio pr\u00e1ctico es que la conversaci\u00f3n deja de ser una caja negra. En la interfaz, puede abrir la trayectoria y ver qu\u00e9 herramientas se llamaron, cu\u00e1nto tiempo tom\u00f3 cada paso, qu\u00e9 archivos se cambiaron y cu\u00e1ntos tokens se gastaron en la solicitud. Si un agente se comporta de manera extra\u00f1a, el motivo suele ser visible aqu\u00ed y no en una respuesta breve en el chat.<\/p>\n<p>Las sesiones se encuentran en <b>~\/.dsh\/sessions<\/b> en forma de registros JSONL. Puede leerlos, buscarlos y crear sus propios an\u00e1lisis. Esto tambi\u00e9n hace posible calcular con precisi\u00f3n los gastos y los aciertos de cach\u00e9 que no son visibles en una factura API normal.<\/p>\n<h2>Tareas y cronogramas en segundo plano<\/h2>\n<p>DeepSeek Harness puede funcionar no solo en el modo &#8220;preguntar y recibir una respuesta&#8221;. Las tareas se pueden iniciar en segundo plano y programarse. Por ejemplo, p\u00eddale al agente que recopile un informe semanal de las notas del proyecto todos los viernes a las 17:00. En la interfaz, dichas tareas son visibles por separado: puede verificar el estado, ver el historial y abrir los detalles de ejecuci\u00f3n.<\/p>\n<p>Existe un perfil sin cabeza para la automatizaci\u00f3n. Inicia una sesi\u00f3n, imprime la respuesta final y sale:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>dsh --profile headless \"run the tests\"\n<\/code><\/pre>\n<\/div>\n<p>Este modo es conveniente para CI, cron y scripts donde no se necesita una interfaz web. Adem\u00e1s del modo sin cabeza, est\u00e1n disponibles los perfiles <b>sdk<\/b> y <b>acp<\/b>: el primero atiende a clientes SDK a trav\u00e9s de JSON-RPC, el segundo atiende a clientes de automatizaci\u00f3n a trav\u00e9s de ACP stdio.<\/p>\n<h2>Subagentes, MCP y habilidades<\/h2>\n<p>Una tarea compleja se puede descomponer entre subagentes. El agente principal planifica el trabajo y los subagentes individuales trabajan en sus \u00e1reas. Esto ayuda a mantener el contexto compacto y no arrastrar todo el historial a cada solicitud.<\/p>\n<p>Las herramientas externas y las fuentes de datos se conectan a trav\u00e9s de MCP. La documentaci\u00f3n incluye una gu\u00eda separada para la memoria MCP, as\u00ed como integraciones como sesiones de revisi\u00f3n de GitHub. Las habilidades describen procedimientos repetibles que el agente carga seg\u00fan sea necesario, en lugar de mantener todas las instrucciones en un mensaje del sistema todo el tiempo.<\/p>\n<h2>Perfiles, paquetes y parches<\/h2>\n<p>La configuraci\u00f3n dsh se ensambla a partir de tres capas. <b>Bundle<\/b> es un conjunto de l\u00edneas de configuraci\u00f3n y c\u00f3digo de complemento, es decir, una pieza de funcionalidad lista para usar. <b>Perfil<\/b> es una composici\u00f3n de paquetes con nombre, que se almacena en <b>$DSH_HOME\/profiles\/<name><\/b>. <b>Patch<\/b> es un archivo YAML que cambia las l\u00edneas ya cargadas por identificador, las deshabilita o agrega otras nuevas.<\/p>\n<p>El orden de aplicaci\u00f3n es el siguiente: primero los paquetes en orden de perfil, luego el parche de perfil, luego el parche general <b>$DSH_HOME\/cordis.patch.yml<\/b> y al final las superposiciones transmitidas a trav\u00e9s de <b>&#8211;patch<\/b>. Esto significa que casi cualquier configuraci\u00f3n se puede anular sin tocar las fuentes del paquete. Puedes ver el \u00e1rbol resultante con el comando:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>dsh --profile web --dump-config\n<\/code><\/pre>\n<\/div>\n<p>Un perfil web est\u00e1ndar se llama <b>web<\/b>, un perfil sin servidor se llama <b>headless<\/b>. Sus archivos de configuraci\u00f3n se encuentran en <b>$DSH_HOME\/profiles\/web\/cordis.patch.yml<\/b> y <b>$DSH_HOME\/profiles\/headless\/cordis.patch.yml<\/b>. Aqu\u00ed es donde dsh escribe los cambios realizados a trav\u00e9s de la interfaz de configuraci\u00f3n.<\/p>\n<h2>SDK de Python<\/h2>\n<p>Existe un SDK oficial para proyectos de Python. Se instala en un entorno virtual y trae consigo un tiempo de ejecuci\u00f3n nativo, por lo que el sistema Node.js no es necesario para el trabajo normal:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>python -m venv .venv\n.venv\\Scripts\\Activate.ps1\npython -m pip install deepseek-harness-sdk\n<\/code><\/pre>\n<\/div>\n<p>Un ejemplo de inicio m\u00ednimo se ve as\u00ed:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>from pathlib import Path\n\nfrom deepseek_harness import DeepSeekHarness\n\nworkspace = Path(\"C:\/work\/disposable-workspace\").resolve()\ndsh_home = Path(\"C:\/work\/example-dsh-home\").resolve()\n\nwith DeepSeekHarness(\n    provider=\"deepseek-official\",\n    model=\"deepseek-v4-flash\",\n    max_tokens=49_152,\n    cwd=str(workspace),\n    dsh_home=str(dsh_home),\n    profile=\"sdk-minimal\",\n) as harness:\n    result = harness.run(\n        \"Inspect the repository and fix the failing tests.\",\n        session_id=\"example-001\",\n    )\n\nprint(result.final_response)\n<\/code><\/pre>\n<\/div>\n<p>El SDK inicia el proceso dsh incluido con el perfil m\u00ednimo sdk y lo reutiliza antes de salir del administrador de contexto. El perfil m\u00ednimo est\u00e1 intencionalmente limitado: tiene bash o pwsh, lectura de im\u00e1genes y un directorio de trabajo, pero no tiene herramientas web, subagentes ni algunas de las herramientas de archivos. Para tareas puntuales, esto es una ventaja: hay menos superficie para controlar.<\/p>\n<h2>A qu\u00e9 prestar atenci\u00f3n<\/h2>\n<p>DeepSeek Harness es una <b>vista previa para desarrolladores<\/b> versi\u00f3n 0.1.0-rc.x. El README advierte expl\u00edcitamente que la compatibilidad se romper\u00e1. Para experimentos, proyectos personales y automatizaci\u00f3n, esto est\u00e1 bien, pero para un proceso que genera dinero en este momento, vale la pena sopesar el riesgo y mantener un plan de respaldo.<\/p>\n<p>El segundo punto es Node.js. Si tiene 22.18 o 23.x, la instalaci\u00f3n fallar\u00e1 o se comportar\u00e1 de manera impredecible. Verifique la versi\u00f3n con anticipaci\u00f3n: el proyecto utiliza node:sqlite y el borrado integrado de TypeScript de tipos que necesitan una nueva rama.<\/p>\n<p>El tercer punto es el sandbox y los derechos. De forma predeterminada, el agente opera con una pol\u00edtica cercana a la escritura en el espacio de trabajo: puede cambiar archivos en la carpeta seleccionada y las operaciones potencialmente peligrosas requieren confirmaci\u00f3n. El modo de acceso total a peligros ofrece m\u00e1s libertad, pero el riesgo aumenta. Antes de experimentar con un repositorio real, es \u00fatil realizar una confirmaci\u00f3n o una copia de seguridad.<\/p>\n<p>El cuarto punto es el costo. DSH en s\u00ed es gratuito, pero, por inferencia, le paga al proveedor en tokens. Para sesiones largas, el almacenamiento en cach\u00e9 de prefijos es importante: dsh redacta las solicitudes para que el historial y los esquemas de herramientas permanezcan sin cambios durante el mayor tiempo posible. Si el puntaje resulta ser m\u00e1s alto de lo esperado, observe no solo el precio por token, sino tambi\u00e9n la proporci\u00f3n de ingresos en efectivo en la trayectoria.<\/p>\n<h2>Vale la pena intentarlo<\/h2>\n<p>DeepSeek Harness es de inter\u00e9s principalmente para aquellos que desean no s\u00f3lo \u201cotro chat con un modelo\u201d, sino un entorno controlado para los agentes. Hay una trayectoria transparente, trabajo normal con archivos y comandos, tareas en segundo plano, subagentes y una expansi\u00f3n verdaderamente profunda a trav\u00e9s de complementos. La capacidad de reemplazar un bucle de agente por uno propio es poco com\u00fan y potencialmente muy \u00fatil para la investigaci\u00f3n y la orquestaci\u00f3n personalizada.<\/p>\n<p>Si necesita una herramienta estable para el trabajo diario remunerado, ahora es m\u00e1s prudente tratar a dsh como un segundo agente junto al principal: pru\u00e9belo en un proyecto personal, compare el costo y la calidad de sus tareas y solo entonces transfi\u00e9ralo al flujo de trabajo.<\/p>\n<h2>Enlaces<\/h2>\n<p><a href=\"https:\/\/www.deepseek.com\/harness\/\" rel=\"noopener\" target=\"_blank\">https:\/\/www.deepseek.com\/harness\/<\/a><br \/>\n<a href=\"https:\/\/www.deepseek.com\/download\/\" rel=\"noopener\" target=\"_blank\">https:\/\/www.deepseek.com\/download\/<\/a><br \/>\n<a href=\"https:\/\/github.com\/deepseek-ai\/deepseek-harness\" rel=\"noopener\" target=\"_blank\">https:\/\/github.com\/deepseek-ai\/deepseek-harness<\/a><br \/>\n<a href=\"https:\/\/deepseek-harness.github.io\/deepseek-harness\/en\/guide\/quickstart\" rel=\"noopener\" target=\"_blank\">https:\/\/deepseek-harness.github.io\/deepseek-harness\/en\/guide\/quickstart<\/a><br \/>\n<a href=\"https:\/\/deepseek-harness.github.io\/deepseek-harness\/en\/guide\/providers\" rel=\"noopener\" target=\"_blank\">https:\/\/deepseek-harness.github.io\/deepseek-harness\/en\/guide\/providers<\/a><br \/>\n<a href=\"https:\/\/deepseek-harness.github.io\/deepseek-harness\/en\/guide\/python-sdk\" rel=\"noopener\" target=\"_blank\">https:\/\/deepseek-harness.github.io\/deepseek-harness\/en\/guide\/python-sdk<\/a><br \/>\n<a href=\"https:\/\/platform.deepseek.com\/\" rel=\"noopener\" target=\"_blank\">https:\/\/platform.deepseek.com\/<\/a><\/p>\n<h2>Fuentes<\/h2>\n<p><a href=\"https:\/\/github.com\/deepseek-ai\/deepseek-harness\/blob\/master\/README.md\" rel=\"noopener\" target=\"_blank\">https:\/\/github.com\/deepseek-ai\/deepseek-harness\/blob\/master\/README.md<\/a><br \/>\n<a href=\"https:\/\/github.com\/deepseek-ai\/deepseek-harness\/blob\/master\/apps\/cli\/README.md\" rel=\"noopener\" target=\"_blank\">https:\/\/github.com\/deepseek-ai\/deepseek-harness\/blob\/master\/apps\/cli\/README.md<\/a><br \/>\n<a href=\"https:\/\/deepseek-harness.github.io\/deepseek-harness\/en\/guide\/quickstart\" rel=\"noopener\" target=\"_blank\">https:\/\/deepseek-harness.github.io\/deepseek-harness\/en\/guide\/quickstart<\/a><br \/>\n<a href=\"https:\/\/deepseek-harness.github.io\/deepseek-harness\/en\/guide\/providers\" rel=\"noopener\" target=\"_blank\">https:\/\/deepseek-harness.github.io\/deepseek-harness\/en\/guide\/providers<\/a><br \/>\n<a href=\"https:\/\/deepseek-harness.github.io\/deepseek-harness\/en\/guide\/python-sdk\" rel=\"noopener\" target=\"_blank\">https:\/\/deepseek-harness.github.io\/deepseek-harness\/en\/guide\/python-sdk<\/a><br \/>\n<a href=\"https:\/\/deepseek-harness.github.io\/deepseek-harness\/en\/guide\/plugin-market\" rel=\"noopener\" target=\"_blank\">https:\/\/deepseek-harness.github.io\/deepseek-harness\/en\/guide\/plugin-market<\/a><br \/>\n<a href=\"https:\/\/dshdocs.com\/getting-started\/installation\/\" rel=\"noopener\" target=\"_blank\">https:\/\/dshdocs.com\/getting-started\/installation\/<\/a><br \/>\n<a href=\"https:\/\/dshdocs.com\/concepts\/profiles-bundles-patches\/\" rel=\"noopener\" target=\"_blank\">https:\/\/dshdocs.com\/concepts\/profiles-bundles-patches\/<\/a><br \/>\n<a href=\"https:\/\/dshdocs.com\/guides\/dsh-vs-claude-code\/\" rel=\"noopener\" target=\"_blank\">https:\/\/dshdocs.com\/guides\/dsh-vs-claude-code\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>DeepSeek Harness, o dsh para abreviar, es un arn\u00e9s de agente de IA de c\u00f3digo abierto de DeepSeek AI. Si el modelo responde preguntas, entonces el arn\u00e9s le da la mano: lee y edita archivos, ejecuta comandos, mantiene sesiones, muestra la trayectoria de ejecuci\u00f3n y se permite expandirse con complementos. El proyecto se distribuye bajo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-201","post","type-post","status-publish","format-standard","hentry","category-notes"],"translation":{"provider":"WPGlobus","version":"3.0.6","language":"es","enabled_languages":["en","ru","zh","de","ja","fr","es","pt","hi"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"ru":{"title":true,"content":true,"excerpt":false},"zh":{"title":true,"content":true,"excerpt":false},"de":{"title":true,"content":true,"excerpt":false},"ja":{"title":true,"content":true,"excerpt":false},"fr":{"title":true,"content":true,"excerpt":false},"es":{"title":true,"content":true,"excerpt":false},"pt":{"title":true,"content":true,"excerpt":false},"hi":{"title":true,"content":true,"excerpt":false}}},"_links":{"self":[{"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/posts\/201","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=201"}],"version-history":[{"count":2,"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/posts\/201\/revisions"}],"predecessor-version":[{"id":203,"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/posts\/201\/revisions\/203"}],"wp:attachment":[{"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}