{"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\/pt\/2026\/11\/06\/deepseek-harness-install-usage\/","title":{"rendered":"DeepSeek Harness: instala\u00e7\u00e3o, recursos e primeiro lan\u00e7amento"},"content":{"rendered":"<p>DeepSeek Harness, ou dsh, \u00e9 um agente de IA de c\u00f3digo aberto da DeepSeek AI. Se a modelo responde \u00e0s perguntas, o arn\u00eas d\u00e1 as m\u00e3os: l\u00ea e edita arquivos, executa comandos, realiza sess\u00f5es, mostra a trajet\u00f3ria de execu\u00e7\u00e3o e se permite ser expandido com plugins. O projeto \u00e9 distribu\u00eddo sob a licen\u00e7a do MIT e est\u00e1 em pr\u00e9-visualiza\u00e7\u00e3o p\u00fablica.<\/p>\n<p>A ideia principal do DeepSeek Harness \u00e9 formulada como \u201ctudo \u00e9 um plugin\u201d &#8211; literalmente \u201ctudo \u00e9 um plugin\u201d. Todo o produto \u00e9 constru\u00eddo sobre isso: adaptadores de modelo, um registro de ferramentas, um log de sess\u00e3o, uma interface e at\u00e9 mesmo o pr\u00f3prio ciclo do agente. Ele \u00e9 baseado na estrutura Cordis, portanto, um desenvolvedor pode n\u00e3o apenas adicionar um novo comando, mas substituir todo o comportamento do agente sem bifurcar o kernel.<\/p>\n<p>Voc\u00ea pode trabalhar com o dsh de v\u00e1rias maneiras: por meio da interface da web local, por meio de um aplicativo de desktop, pela linha de comando no modo headless ou pelo SDK do Python. Abaixo est\u00e1 a instala\u00e7\u00e3o, o primeiro lan\u00e7amento e uma vis\u00e3o geral dos recursos.<\/p>\n<h2>O que voc\u00ea precisa<\/h2>\n<p>A interface da web e a CLI exigem Node.js. O projeto tem requisitos rigorosos:<\/p>\n<ul>\n<li><b>Node.js 22.19.0 ou posterior<\/b> na linha 22.x.<\/li>\n<li><b>Node.js 24.0.0 ou posterior<\/b> na linha 24.x.<\/li>\n<li><b>Node.js 23.x n\u00e3o \u00e9 compat\u00edvel<\/b> em nenhum patch: esta linha n\u00e3o \u00e9 LTS e j\u00e1 foi descontinuada.<\/li>\n<\/ul>\n<p>Al\u00e9m do Node.js, voc\u00ea precisar\u00e1 da chave API DeepSeek. Ele \u00e9 criado em sua conta pessoal em platform.deepseek.com. O aplicativo de desktop n\u00e3o precisa do Node.js &#8211; o ambiente j\u00e1 est\u00e1 empacotado l\u00e1.<\/p>\n<p>Voc\u00ea pode verificar a vers\u00e3o com o 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>Instala\u00e7\u00e3o via npx<\/h2>\n<p>A maneira mais r\u00e1pida de conhecer o projeto \u00e9 n\u00e3o instalar nada globalmente. Basta executar:<\/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>O comando ir\u00e1 baixar o pacote <b>@deepseek-ai\/dsh<\/b> do npm, configurar um servidor web local e abrir a interface no navegador. Por padr\u00e3o, ele escuta o endere\u00e7o:<\/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>Se voc\u00ea n\u00e3o precisa abrir o navegador, por exemplo, em uma m\u00e1quina remota, adicione o sinalizador <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>Quando iniciado via SSH, dsh imprime o endere\u00e7o, mas n\u00e3o tenta abrir o navegador: o endere\u00e7o local pertence ao cliente ou editor SSH.<\/p>\n<h2>Instala\u00e7\u00e3o global<\/h2>\n<p>Se voc\u00ea precisa de uma ferramenta constantemente, \u00e9 mais conveniente instal\u00e1-la globalmente. O pacote fornece o bin\u00e1rio <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>Depois disso, o comando dsh estar\u00e1 dispon\u00edvel em qualquer diret\u00f3rio. A atualiza\u00e7\u00e3o \u00e9 realizada da maneira usual:<\/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>Aplicativo de desktop<\/h2>\n<p>Para aqueles que n\u00e3o querem manter um terminal e Node.js, DeepSeek lan\u00e7a vers\u00f5es para desktop. Eles est\u00e3o dispon\u00edveis na p\u00e1gina oficial de download:<\/p>\n<ul>\n<li><b>macOS<\/b> \u2013 Apple Silicon, macOS 13 ou posterior, formato DMG.<\/li>\n<li><b>Windows<\/b> &#8211; assembly de 64 bits, formato EXE.<\/li>\n<\/ul>\n<p>O aplicativo funciona com os mesmos arquivos locais, pode realizar tarefas em segundo plano e armazenar sess\u00f5es da mesma forma que a vers\u00e3o web. Esta \u00e9 uma op\u00e7\u00e3o conveniente para o trabalho di\u00e1rio, quando voc\u00ea n\u00e3o deseja acionar o servidor manualmente todas as vezes.<\/p>\n<h2>Construindo a partir de fontes<\/h2>\n<p>Se voc\u00ea precisar de controle total sobre o c\u00f3digo, seus pr\u00f3prios patches ou desenvolvimento de plugins, o projeto \u00e9 coletado do reposit\u00f3rio. Voc\u00ea precisar\u00e1 do pnpm, e o reposit\u00f3rio corrige uma vers\u00e3o espec\u00edfica, ent\u00e3o voc\u00ea deve primeiro habilitar o 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>O comando <b>pnpm run build<\/b> prepara pacotes e artefatos de frontend, e <b>pnpm dsh web<\/b> executa a vers\u00e3o j\u00e1 compilada sem reconstruir. Para desenvolvimento, existe um modo <b>pnpm run dev:web<\/b>: ele constr\u00f3i, inicia o servidor e reconstr\u00f3i pacotes de clientes quando as fontes mudam.<\/p>\n<h2>Primeiro lan\u00e7amento<\/h2>\n<p>Ap\u00f3s iniciar a interface web, o procedimento \u00e9 o seguinte.<\/p>\n<p>Primeiro, abra <b>Configura\u00e7\u00f5es \u2192 Modelos<\/b> e insira a chave da API DeepSeek. A chave \u00e9 salva no arquivo <b>$DSH_HOME\/.credentials.yaml<\/b>, e apenas um link para ela permanece nas configura\u00e7\u00f5es. A p\u00e1gina de configura\u00e7\u00f5es recebe uma descri\u00e7\u00e3o j\u00e1 mascarada do segredo, portanto \u00e9 imposs\u00edvel ler a chave de volta na interface. As altera\u00e7\u00f5es de modelo s\u00e3o aplicadas a partir da pr\u00f3xima solicita\u00e7\u00e3o; n\u00e3o h\u00e1 necessidade de reiniciar o servidor.<\/p>\n<p>Em seguida, selecione sua pasta de trabalho em <b>Escolher espa\u00e7o de trabalho<\/b>. Enquanto o espa\u00e7o de trabalho n\u00e3o estiver selecionado, o campo de entrada da tarefa permanecer\u00e1 esmaecido. Isso \u00e9 feito intencionalmente: o agente deve compreender os limites dentro dos quais pode ler e alterar arquivos.<\/p>\n<p>Depois disso, voc\u00ea pode enviar a primeira tarefa. Por exemplo:<\/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>O agente ir\u00e1 ler o projeto, tra\u00e7ar um plano, chamar as ferramentas necess\u00e1rias e mostrar o resultado. Para opera\u00e7\u00f5es que requerem confirma\u00e7\u00e3o com base na pol\u00edtica de acesso atual, o dsh perguntar\u00e1 antes de executar.<\/p>\n<h2>Modelos e provedores<\/h2>\n<p>O DeepSeek se conecta em uma \u00fanica etapa: o cart\u00e3o do provedor nas configura\u00e7\u00f5es cont\u00e9m apenas um campo para a chave API. Al\u00e9m disso, voc\u00ea pode adicionar servi\u00e7os de terceiros. O diret\u00f3rio integrado conhece identificadores como <b>antr\u00f3pico<\/b>, <b>openai<\/b>, <b>moonshotai<\/b> para Kimi e <b>zai<\/b> para GLM.<\/p>\n<p>Para seu pr\u00f3prio gateway, proxy corporativo ou servidor local, existe um modo <b>API de modelo personalizado<\/b>. Ele pergunta:<\/p>\n<ul>\n<li>identificador permanente do provedor;<\/li>\n<li>nome de exibi\u00e7\u00e3o;<\/li>\n<li>Endere\u00e7o base da API;<\/li>\n<li>protocolo: conclus\u00f5es de bate-papo OpenAI, respostas OpenAI ou mensagens antr\u00f3picas;<\/li>\n<li>chave e lista de modelos.<\/li>\n<\/ul>\n<p>O protocolo \u00e9 importante: um provedor fala um protocolo. Se um gateway suportar OpenAI e Anthropic, ele dever\u00e1 ser descrito por dois provedores. Para modelos, voc\u00ea pode especificar o tamanho da janela de contexto, o n\u00famero m\u00e1ximo de tokens de sa\u00edda e os tipos de dados de entrada suportados, incluindo imagens.<\/p>\n<p>Os modelos DeepSeek t\u00eam n\u00edveis de racioc\u00ednio <b>desativado<\/b>, <b>baixo<\/b>, <b>alto<\/b> e <b>m\u00e1ximo<\/b>. O n\u00edvel \u00e9 selecionado no menu <b>Esfor\u00e7o<\/b> pr\u00f3ximo ao modelo. Para tarefas rotineiras no reposit\u00f3rio, um modelo r\u00e1pido \u00e9 suficiente, mas para tarefas arquitet\u00f4nicas complexas faz sentido aumentar o esfor\u00e7o ou adotar um modelo de classe superior.<\/p>\n<h2>Plugins e modo Criador<\/h2>\n<p>Plugins s\u00e3o o principal recurso do DeepSeek Harness. Atrav\u00e9s deles, s\u00e3o adicionadas ferramentas, habilidades, elementos de interface e aplica\u00e7\u00f5es inteiras. A interface possui um gerenciador de plugins com conjuntos oficiais e experimentais: comandos de agente, confirma\u00e7\u00e3o autom\u00e1tica, tarefas agendadas, entrada de voz, terminal, subagentes.<\/p>\n<p>O <b>modo Criador<\/b> se destaca separadamente. Neste modo, voc\u00ea pode pedir ao agente para escrever um plugin diretamente no chat. Ele far\u00e1 o download da habilidade de desenvolvimento do plugin Cordis, criar\u00e1 uma estrutura de pacote, escrever\u00e1 o c\u00f3digo, instalar\u00e1 o plugin e verificar\u00e1 seu status. H\u00e1 um exemplo na p\u00e1gina oficial do projeto onde um temporizador Pomodoro flutuante \u00e9 montado desta forma.<\/p>\n<p>Plugins tamb\u00e9m podem ser instalados a partir da linha de comando. Para um perfil da web, o comando \u00e9 semelhante a este:<\/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>Pacotes Npm, links como github:owner\/repo, diret\u00f3rios locais e arquivos tgz s\u00e3o suportados. Ap\u00f3s a instala\u00e7\u00e3o, \u00e9 \u00fatil verificar se a camada do plugin est\u00e1 realmente inclu\u00edda na configura\u00e7\u00e3o:<\/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>O comando imprime a \u00e1rvore de plugins montada sem iniciar o servidor. Se n\u00e3o houver nenhuma nova camada, o pacote provavelmente n\u00e3o declarou um manifesto dsh.bundle e foi instalado como uma biblioteca regular, e n\u00e3o como um plugin inclu\u00eddo.<\/p>\n<p>As configura\u00e7\u00f5es experimentais incluem <b>Mercados de plug-ins personalizados<\/b>. Este \u00e9 um arquivo JSON de \u00edndice com uma lista de plugins, suas vers\u00f5es, \u00edcones e fontes. Ao ativar o conjunto, voc\u00ea obt\u00e9m uma guia <b>Discover<\/b> na p\u00e1gina de plug-ins e a capacidade de conectar mercados de terceiros. Como qualquer fonte de terceiros, tal mercado s\u00f3 deve ser adicionado se voc\u00ea confiar em seus autores.<\/p>\n<h2>Trajet\u00f3ria e auditoria<\/h2>\n<p>Para cada sess\u00e3o, o dsh grava um log de eventos somente anexado &#8211; <b>Trajet\u00f3ria<\/b>. Ele armazena o prompt do sistema, o racioc\u00ednio, as chamadas de ferramentas e seus resultados, o agendamento de subagentes e as inser\u00e7\u00f5es de contexto. A retomada da sess\u00e3o, bifurca\u00e7\u00f5es, pesquisa e reprodu\u00e7\u00e3o s\u00e3o constru\u00eddas neste log.<\/p>\n<p>O benef\u00edcio pr\u00e1tico \u00e9 que a conversa deixa de ser uma caixa preta. Na interface, voc\u00ea pode abrir a trajet\u00f3ria e ver quais ferramentas foram chamadas, quanto tempo durou cada etapa, quais arquivos foram alterados e quantos tokens foram gastos na solicita\u00e7\u00e3o. Se um agente se comportou de forma estranha, o motivo geralmente fica vis\u00edvel aqui, e n\u00e3o em uma resposta curta no chat.<\/p>\n<p>As sess\u00f5es est\u00e3o localizadas em <b>~\/.dsh\/sessions<\/b> na forma de logs JSONL. Voc\u00ea pode l\u00ea-los, pesquis\u00e1-los e construir suas pr\u00f3prias an\u00e1lises. Isso tamb\u00e9m torna poss\u00edvel calcular com precis\u00e3o despesas e ocorr\u00eancias de cache que n\u00e3o s\u00e3o vis\u00edveis em uma fatura normal de API.<\/p>\n<h2>Tarefas e programa\u00e7\u00f5es em segundo plano<\/h2>\n<p>DeepSeek Harness pode funcionar n\u00e3o apenas no modo \u201cperguntar e receber uma resposta\u201d. As tarefas podem ser iniciadas em segundo plano e agendadas. Por exemplo, pe\u00e7a ao agente para coletar um relat\u00f3rio semanal das notas do projeto todas as sextas-feiras \u00e0s 17h. Na interface, tais tarefas s\u00e3o vis\u00edveis separadamente: voc\u00ea pode verificar o status, visualizar o hist\u00f3rico e abrir detalhes de execu\u00e7\u00e3o.<\/p>\n<p>Existe um perfil sem cabe\u00e7a para automa\u00e7\u00e3o. Inicia uma sess\u00e3o, imprime a resposta final e sai:<\/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 \u00e9 conveniente para CI, cron e scripts onde uma interface web n\u00e3o \u00e9 necess\u00e1ria. Al\u00e9m do headless, est\u00e3o dispon\u00edveis os perfis <b>sdk<\/b> e <b>acp<\/b>: o primeiro atende clientes SDK via JSON-RPC, o segundo atende clientes de automa\u00e7\u00e3o via ACP stdio.<\/p>\n<h2>Subagentes, MCPs e habilidades<\/h2>\n<p>Uma tarefa complexa pode ser decomposta entre subagentes. O agente principal planeja o trabalho e os subagentes individuais trabalham em suas \u00e1reas. Isso ajuda a manter o contexto compacto e a n\u00e3o arrastar todo o hist\u00f3rico para cada solicita\u00e7\u00e3o.<\/p>\n<p>Ferramentas externas e fontes de dados s\u00e3o conectadas via MCP. A documenta\u00e7\u00e3o inclui um guia separado para mem\u00f3ria MCP, bem como integra\u00e7\u00f5es como sess\u00f5es de revis\u00e3o do GitHub. As habilidades descrevem procedimentos repet\u00edveis que o agente carrega conforme necess\u00e1rio, em vez de manter todas as instru\u00e7\u00f5es em um prompt do sistema o tempo todo.<\/p>\n<h2>Perfis, pacotes e patches<\/h2>\n<p>A configura\u00e7\u00e3o dsh \u00e9 montada a partir de tr\u00eas camadas. <b>Bundle<\/b> \u00e9 um conjunto de linhas de configura\u00e7\u00e3o e c\u00f3digo de plugin, ou seja, uma funcionalidade pronta. <b>Perfil<\/b> \u00e9 uma composi\u00e7\u00e3o nomeada de pacotes configur\u00e1veis, que \u00e9 armazenada em <b>$DSH_HOME\/profiles\/<name><\/b>. <b>Patch<\/b> \u00e9 um arquivo YAML que altera linhas j\u00e1 carregadas por identificador, desativa-as ou adiciona novas.<\/p>\n<p>A ordem de aplica\u00e7\u00e3o \u00e9 a seguinte: primeiro os pacotes na ordem do perfil, depois o patch do perfil, depois o patch geral <b>$DSH_HOME\/cordis.patch.yml<\/b> e no final as sobreposi\u00e7\u00f5es transmitidas via <b>&#8211;patch<\/b>. Isso significa que quase qualquer configura\u00e7\u00e3o pode ser substitu\u00edda sem tocar nas fontes do pacote. Voc\u00ea pode visualizar a \u00e1rvore resultante com o 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>Um perfil da web padr\u00e3o \u00e9 chamado de <b>web<\/b>, um perfil sem servidor \u00e9 chamado de <b>headless<\/b>. Seus arquivos de configura\u00e7\u00e3o ficam em <b>$DSH_HOME\/profiles\/web\/cordis.patch.yml<\/b> e <b>$DSH_HOME\/profiles\/headless\/cordis.patch.yml<\/b>. \u00c9 aqui que o dsh grava as altera\u00e7\u00f5es feitas na interface de configura\u00e7\u00f5es.<\/p>\n<h2>SDK para Python<\/h2>\n<p>Existe um SDK oficial para projetos Python. Ele \u00e9 instalado em um ambiente virtual e traz consigo um runtime nativo, portanto o sistema Node.js n\u00e3o \u00e9 necess\u00e1rio para o funcionamento 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>Um exemplo de inicializa\u00e7\u00e3o m\u00ednima \u00e9 assim:<\/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>O SDK inicia o processo dsh empacotado com o perfil sdk-minimal e o reutiliza antes de sair do gerenciador de contexto. O perfil m\u00ednimo \u00e9 intencionalmente limitado: possui bash ou pwsh, leitura de imagens e um diret\u00f3rio de trabalho, mas n\u00e3o possui ferramentas da web, subagentes ou algumas das ferramentas de arquivo. Para tarefas \u00fanicas, isso \u00e9 uma vantagem: h\u00e1 menos superf\u00edcie para controlar.<\/p>\n<h2>No que prestar aten\u00e7\u00e3o<\/h2>\n<p>DeepSeek Harness \u00e9 uma <b>pr\u00e9via do desenvolvedor<\/b> vers\u00e3o 0.1.0-rc.x. O README avisa explicitamente que a compatibilidade ser\u00e1 interrompida. Para experimentos, projetos pessoais e automa\u00e7\u00e3o, tudo bem, mas para um processo que d\u00e1 dinheiro agora, vale a pena pesar o risco e manter um plano de backup.<\/p>\n<p>O segundo ponto \u00e9 o Node.js. Se voc\u00ea tiver 22.18 ou 23.x, a instala\u00e7\u00e3o ir\u00e1 travar ou se comportar de maneira imprevis\u00edvel. Verifique a vers\u00e3o com anteced\u00eancia: o projeto usa node:sqlite e o apagamento integrado do TypeScript de tipos que precisam de uma nova ramifica\u00e7\u00e3o.<\/p>\n<p>O terceiro ponto \u00e9 a sandbox e os direitos. Por padr\u00e3o, o agente opera em uma pol\u00edtica pr\u00f3xima \u00e0 grava\u00e7\u00e3o no espa\u00e7o de trabalho: ele pode alterar arquivos na pasta selecionada e opera\u00e7\u00f5es potencialmente perigosas exigem confirma\u00e7\u00e3o. O modo de acesso total ao perigo oferece mais liberdade, mas o risco aumenta. Antes de experimentar um reposit\u00f3rio real, \u00e9 \u00fatil fazer um commit ou backup.<\/p>\n<p>O quarto ponto \u00e9 o custo. O DSH em si \u00e9 gratuito, mas para infer\u00eancia voc\u00ea paga ao provedor em tokens. Para sess\u00f5es longas, o cache de prefixo \u00e9 importante: o dsh comp\u00f5e as solicita\u00e7\u00f5es para que o hist\u00f3rico e os esquemas da ferramenta permane\u00e7am inalterados pelo maior tempo poss\u00edvel. Se a pontua\u00e7\u00e3o for maior do que o esperado, observe n\u00e3o apenas o pre\u00e7o por token, mas tamb\u00e9m a parcela dos acertos em dinheiro na trajet\u00f3ria.<\/p>\n<h2>Vale a pena tentar<\/h2>\n<p>DeepSeek Harness \u00e9 de interesse principalmente para aqueles que desejam n\u00e3o apenas \u201coutro bate-papo com uma modelo\u201d, mas um ambiente controlado para agentes. H\u00e1 uma trajet\u00f3ria transparente, trabalho normal com arquivos e comandos, tarefas em segundo plano, subagentes e expans\u00e3o verdadeiramente profunda por meio de plugins. A capacidade de substituir um loop de agente pelo seu pr\u00f3prio \u00e9 rara e potencialmente muito \u00fatil para pesquisa e orquestra\u00e7\u00e3o personalizada.<\/p>\n<p>Se voc\u00ea precisa de uma ferramenta est\u00e1vel para o trabalho di\u00e1rio remunerado, agora \u00e9 mais sensato tratar o dsh como um segundo agente ao lado do principal: experimente em um projeto pessoal, compare o custo e a qualidade de suas tarefas e s\u00f3 ent\u00e3o transfira-o para o fluxo de trabalho.<\/p>\n<h2>Links<\/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>Fontes<\/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, ou dsh, \u00e9 um agente de IA de c\u00f3digo aberto da DeepSeek AI. Se a modelo responde \u00e0s perguntas, o arn\u00eas d\u00e1 as m\u00e3os: l\u00ea e edita arquivos, executa comandos, realiza sess\u00f5es, mostra a trajet\u00f3ria de execu\u00e7\u00e3o e se permite ser expandido com plugins. O projeto \u00e9 distribu\u00eddo sob a licen\u00e7a do MIT [&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":"pt","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\/pt\/wp-json\/wp\/v2\/posts\/201","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=201"}],"version-history":[{"count":2,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/201\/revisions"}],"predecessor-version":[{"id":203,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/201\/revisions\/203"}],"wp:attachment":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}