154.302 estrelas. Cada review que li me dizia as mesmas três coisas: tudo é um plugin, o log de sessão é append-only, e é uma versão de desenvolvedor.
Nenhum me disse quanto disco ele consome. Ou quanta RAM uma sessão ociosa ocupa. Ou o que acontece quando você o aponta para um endpoint que não é o próprio DeepSeek.
Então eu o instalei e dei a ele uma tarefa, três vezes: construir um rastreador da ISS ao vivo em um único arquivo HTML autocontido. Três configurações diferentes de provedor, mesmo prompt, mesmo modelo. Todos os três terminaram. Todos os três imprimiram um confiante "Pronto" com uma lista de marcadores de tudo que supostamente verificaram.
Então abri as três páginas em um navegador. Duas estavam quebradas.
Principais conclusões
npm install @deepseek-ai/dshpuxou 531 pacotes e 306 MB no macOS. Não é 1,5 GB, mas também não é pequeno, e o pacotedshem si tem 172 KB disso.- O servidor web do dsh ficou ocioso em 35 a 40 MB de RSS com uma sessão ativa aberta, após atingir um pico de cerca de 212 MB na inicialização. O número de 500 MB que as pessoas citam não é o processo do servidor.
- A visualização Trajectory é a verdadeira novidade nesta versão. É um stream de eventos JSONL puro append-only em disco, e foi o que me permitiu diagnosticar o problema de configuração em minutos, em vez de horas.
- Duas linhas YAML (
compat.thinkingFormate ummaxTokensreal) mudaram a mesma tarefa de uma execução de 36 etapas e 422 segundos para uma de 15 etapas e 152 segundos. Nenhuma das linhas está no site de documentação. - Todas as execuções relataram sucesso. Apenas uma produziu uma página com zero erros de console. Leia a saída, não o resumo.
- É uma versão de desenvolvedor, e o README diz isso em letras maiúsculas. Piloto contido, sim. Plano de controle de produção, não.
Aqui está o artigo inteiro em uma imagem. Duas páginas do rastreador da ISS, mesmo prompt, mesmo modelo, uma diferença de configuração. A esquerda é a execução que ajustei. A direita é a execução que não ajustei.

Comparação lado a lado de duas páginas do rastreador da ISS construídas pelo DeepSeek Harness, a esquerda com um mapa-múndi distorcido e um selo desatualizado fixado, a direita renderizando corretamente com um marcador ao vivo
Esquerda: a execução ajustada, 152 segundos, quinze caminhos SVG malformados e um selo congelado em "Desatualizado". Direita: a execução ingênua, 422 segundos, zero erros de console. Ambas relataram conclusão.
Por Que Todas as Reviews do DeepSeek Harness Dizem as Mesmas Três Coisas
O repositório foi ao ar em 13 de agosto e, quando comecei a escrever, já estava com 154.302 estrelas e 15.960 forks sob licença MIT (GitHub, agosto de 2026). Nessa velocidade, a maioria das coberturas é uma leitura do README, porque não houve tempo para mais nada.
Então o cenário existente de reviews do DeepSeek Harness se divide em três grupos, e todos os três têm o mesmo buraco. As análises de auditoria de código dissecam as costuras dos plugins e nunca executam um benchmark. As análises de dados comparam contagens de tokens e explicitamente ignoram tamanho de instalação e memória. As análises de aquisição empresarial chegam a um veredito com quase nenhum número medido.
Ninguém instalou, executou uma tarefa do início ao fim e depois abriu o resultado.
Enquanto isso, a crítica mais afiada não estava em nenhuma review. Eram dois comentários no tópico de lançamento, que renderam 737 pontos e 309 comentários em quatro dias.

Dois comentários literais do Hacker News sobre o tamanho da instalação e o uso de memória ociosa do DeepSeek Harness
As duas reclamações que esta review realmente tenta verificar, citadas literalmente do tópico de lançamento.
Usuário Kuyawa: "47mb baixados, 1.5gb após build, wtf?" e, em uma edição, "35 dependências compõem 1.4gb, para que servem?" Usuário eglintondust, em um subthread sobre carga de CPU: "O uso de memória definitivamente está fora de controle, tenho uma sessão ociosa agora consumindo 500MB" (Hacker News, agosto de 2026).
Esses são os dois números que eu queria verificar primeiro, porque são os dois que decidem se essa coisa mora no seu laptop. Ambos se revelaram mais complicados do que as citações sugerem, e um deles está medindo algo diferente do que as pessoas assumem. Se você precisar do primer de arquitetura antes de qualquer coisa fazer sentido, esse é um artigo diferente: o que o DeepSeek Harness realmente é.
Como Montei Esta Review do DeepSeek Harness: Uma Tarefa, Um Endpoint
A configuração é deliberadamente simples para que a variável seja a configuração, não a tarefa.
A tarefa. Construir um rastreador da ISS ao vivo em um único index.html autocontido. Ele precisa de uma API externa, um renderizador de mapa, um loop de polling e tratamento de erros, então força um loop de ferramentas real de várias etapas em vez de um despejo de código único. E crucialmente, posso abrir o resultado e ver instantaneamente se funciona.
O modelo. deepseek-ai/deepseek-v4-flash-0731, o mesmo modelo em todas as três execuções, então nada na comparação é uma diferença de modelo.
O endpoint. Esta é a parte que as pessoas ignoram. O Harness não vem com modelo. Ele precisa de uma URL base compatível com OpenAI e uma chave, ponto final, e a superfície de configuração para isso é de onde vieram todos os meus três problemas. Eu o executei contra um endpoint compatível com OpenAI hospedado com preços fixos do DeepSeek e sem sobretaxa de horário de pico, o que importa quando você está prestes a executar a mesma tarefa repetidamente e quer que a conta seja comparável entre as execuções. Qualquer endpoint compatível funciona da mesma forma.
| Endpoint | Protocolo | GET /models | Forma de cobrança | V4 com contexto de 1M |
|---|---|---|---|---|
| API própria do DeepSeek | openai-completions | Sim | Divisão pico e fora de pico, 01:00 às 04:00 e 06:00 às 10:00 UTC são pico, fora de pico é metade (docs da API DeepSeek, agosto de 2026) | Sim |
| Atlas Cloud | openai-completions | Sim, retornou 200 com 135 modelos quando verifiquei | Fixo por token, sem sobretaxa de pico | Sim, $0,14 in / $0,28 out por 1M no V4 Flash |
| Ollama local | openai-completions | Sim | Grátis, embora a pesquisa web integrada ainda precise do Ollama cloud | Depende do modelo local |
Uma nota honesta sobre a linha do meio, porque me mordeu depois: ela retorna {"code":200,"msg":"succeed","data":[...]} em vez do envelope padrão OpenAI {"object":"list","data":[...]}. O array data está lá, então um cliente tolerante está bem, mas não presuma que todo endpoint "compatível com OpenAI" seja byte idêntico à especificação.
Os preços foram lidos na página do modelo V4 Flash em 18 de agosto de 2026. Nenhum selo de desconto em nenhum modelo DeepSeek agora, então nada aqui é uma taxa por tempo limitado.
Passo 1: Instalar o DeepSeek Harness e Medir o Que Realmente Custa
Tudo daqui para frente é reproduzível no macOS com Node 22.19+ ou 24+ (não há suporte para 23.x, e muitos guias erram isso). Eu usei Node v24.15.0 e @deepseek-ai/[email protected].
Comece com o quickstart, que é um comando:
bash1node -v # ^22.19.0 || >=24, não 23.x 2npx @deepseek-ai/dsh web # Interface web em http://127.0.0.1:3080 3
Para obter um número que você possa realmente comparar com a alegação de 1,5 GB, instale em um diretório limpo e meça:
bash1mkdir dsh-size && cd dsh-size && npm init -y 2npm install @deepseek-ai/dsh 3du -sh node_modules 4du -sh node_modules/* | sort -h | tail -8 # onde o peso está 5
Aqui está o que isso produziu na minha máquina:
text1added 531 packages in 2m 2306M node_modules 3255 entradas de nível superior em node_modules 4172K node_modules/@deepseek-ai/dsh <- o pacote em si 5 6 13M node_modules/@shikijs 7 13M node_modules/openai 8 14M node_modules/@google/genai 9 17M node_modules/@img/sharp-libvips-darwin-arm64 10 24M node_modules/@mistralai/mistralai 11 26M node_modules/node-pty 12 27M node_modules/@deepseek-ai 13 34M node_modules/@opentelemetry 14
Então: 306 MB, não 1,5 GB. O número de 1,5 GB naquele comentário do Hacker News é uma compilação completa da fonte, que arrasta dependências de desenvolvimento e saída de build em todo o monorepo. A instalação de runtime é um quinto disso.
Dito isso, 306 MB para um agente de codificação ainda é muito, e a discriminação explica exatamente por que as pessoas estão irritadas. Você está instalando três SDKs de fornecedores que talvez nunca chame (openai, @google/genai, @mistralai/mistralai totalizam 51 MB), uma árvore completa do OpenTelemetry, um binário nativo sharp e um realçador de sintaxe. "Tudo é um plugin" tem um custo de envio, e agora você paga tudo adiantado, quer use essas rotas ou não.
Para memória ociosa, inicie o perfil web, abra uma sessão, deixe-a quieta e leia o RSS:
bash1npx @deepseek-ai/dsh web --port 3099 2# então, em outro shell: 3ps -o pid,rss,command -p $(pgrep -f "dsh web") 4
Amostrado uma vez por minuto por cinco minutos com uma sessão ativa aberta e nenhuma tarefa em execução:
text1t+0s 101,8 MB (logo após a sessão abrir) 2t+60s 37,0 MB 3t+120s 39,8 MB 4t+180s 38,8 MB 5t+240s 35,8 MB 6t+300s 35,0 MB 7
Atingiu cerca de 212 MB durante a inicialização, estabilizou em ~102 MB quando a UI se conectou, então o coletor de lixo o reduziu para a faixa de 35 a 40 MB e permaneceu lá. Isso não está "fora de controle".
Mas eglintondust não está necessariamente errado, e esta é a parte que vale a pena entender: o perfil web do dsh é um servidor local mais uma aba do navegador. Os 35 MB são o servidor. A UI é um aplicativo web completo no seu navegador, e essa memória é cobrada do Chrome, não do dsh. Se você está vendo uma sessão ociosa de 500 MB no Monitor de Atividades, verifique a qual processo ela está atribuída antes de registrar o bug. Detalhes completos da instalação estão no passo a passo de instalação de 10 minutos.

Saída real do terminal mostrando a pegada de instalação e as medições de memória ociosa do DeepSeek Harness
As medições reais, com os comandos visíveis. 306 MB instalados, 35 MB ociosos.
Passo 2: Apontar o DeepSeek Harness para Seu Próprio Endpoint
Na UI, isso é Settings, depois Models, depois Add a custom provider: ID do provedor, URL base, protocolo, chave, lista de modelos. Você também pode escrever diretamente em $DSH_HOME/settings.yaml (padrão ~/.dsh/settings.yaml), que foi o que eu fiz, porque a versão em arquivo é o que você pode fazer diff entre as execuções.
As seções nesse arquivo são indexadas pelo ID do plugin, o que não é óbvio na primeira vez. O dicionário do provedor pertence a llm-pi-ai, e a seleção de modelo padrão pertence a agent-default-model:
yaml1llm-pi-ai: 2 providers: 3 atlas: 4 displayName: Atlas Cloud 5 api: openai-completions 6 baseURL: https://api.atlascloud.ai/v1 7 apiKeyEnv: ATLAS_API_KEY 8 models: 9 - id: deepseek-ai/deepseek-v4-flash-0731 10 11agent-default-model: 12 provider: atlas 13 model: deepseek-ai/deepseek-v4-flash-0731 14
Essa é a configuração ingênua, e é com a qual comecei. Funciona. Pegue uma chave no console da Atlas, export ATLAS_API_KEY=..., e a execução prossegue. Observe que apiKeyEnv é uma referência, não o segredo, então nenhuma chave vai parar neste arquivo.
Um detalhe da UI que é fácil de perder e genuinamente bom: quando a chave vem do ambiente, o campo de chave da API é renderizado como Fornecido pelo ambiente de lançamento (somente leitura). O ponto verde ao lado do provedor significa que a rota foi resolvida. O ponto vermelho ao lado do provedor DeepSeek integrado significa que não há credencial. Essa é uma verificação de saúde de dois segundos que você não precisa procurar.
Duas coisas sobre essa configuração estão silenciosamente erradas, no entanto, e eu não descobri até comparar as trajetórias. Segure esse pensamento até o Passo 4.

A página de Configurações de Modelos do DeepSeek Harness mostrando um provedor personalizado compatível com OpenAI chamado Atlas Cloud com um ponto de status verde e sua chave de API fornecida somente leitura pelo ambiente de lançamento
Configurações, Modelos, provedor personalizado. Ponto verde significa que a rota foi resolvida; o provedor DeepSeek integrado acima está vermelho porque não tem chave.
Passo 3: As Três Execuções da Review do DeepSeek Harness, Lado a Lado
Mesmo prompt todas as vezes. Cole isto literalmente se quiser reproduzir:
text1Construa um rastreador da ISS em uma única página em um index.html autocontido. 2 3Requisitos: 4- Obtenha a posição da ISS de https://api.wheretheiss.at/v1/satellites/25544 a cada 5 segundos. 5- Renderize um mapa-múndi com um marcador na latitude/longitude atual, mais um rastro de desvanecimento das últimas 60 posições. 6- Mostre altitude (km), velocidade (km/h) e a latitude/longitude atual em um painel legível. 7- Sem etapa de build, sem npm install, sem chave de API. Apenas JavaScript puro + CSS inline. 8- Lide com falhas de busca sem quebrar a página: mantenha a última posição conhecida e mostre um selo de desatualizado. 9- Escreva o arquivo, então relate conclusão. 10
Execute sem cabeça para que o transcript fique limpo:
bash1export DSH_HOME=$PWD/dsh-home 2export ATLAS_API_KEY=<sua chave> 3dsh --profile headless "<o prompt acima>" 4
Três configurações:
- Execução A, a ajustada:
compat.thinkingFormat: deepseek,contextWindow: 1048576,maxTokens: 131072. - Execução B, a ingênua do Passo 2: a entrada do modelo é apenas
id. - Execução C, o erro plausível: igual a A, mas com
maxTokens: 4096, um número que tirei diretamente do exemplo do README do próprio adaptador.
Todas as três saíram com 0. Todas as três escreveram um index.html. Todas as três imprimiram um resumo alegando verificação. O resumo da Execução C até se gabou de auto-reparo: "Alguns bugs que peguei e corrigi durante a construção: uma variável indefinida no desvanecimento do rastro, lógica incorreta de sufixo N/S/E/W..."
Então abri todos os três arquivos em um navegador real com o console aberto e os deixei fazer polling por dois ciclos.
| Execução A (ajustada) | Execução B (ingênua) | Execução C (maxTokens: 4096) | |
|---|---|---|---|
| Tempo de parede | 152,7 s | 422,5 s | 50,2 s |
| Etapas | 15 | 36 | 8 |
| Chamadas de ferramenta | 14 | 35 | 7 |
| Mix de ferramentas | 6 edit, 4 read, 2 bash | 19 bash, 8 read, 3 grep | 4 edit, 1 write, 1 bash |
| Tamanho do arquivo | 19.569 B | 10.812 B | 11.326 B |
| Erros de console ao carregar | 15 | 0 | 12 |
| O que estava quebrado | todos os caminhos dos continentes malformados, nenhum marcador da ISS, selo "Desatualizado" preso para sempre | nada | círculos do rastro todos com cx="NaN", marcador estacionado em 0,0, latitude impressa como -34,76° S |
Leia essa tabela novamente. A execução mais rápida e a execução que ajustei cuidadosamente ambas entregaram páginas quebradas. A execução lenta, ingênua e mais cara é a única que funcionou.
A falha da Execução A é a mais instrutiva. O painel de telemetria estava perfeito: 431 km de altitude, 27.547 km/h, latitude/longitude corretas, atualizando ao vivo. O mapa abaixo era uma mancha verde, porque todos os quinze caminhos dos continentes terminavam com um L solto sem coordenadas ("... L48.0 624.0 L Z"). E o selo dizia "Desatualizado, mantendo última posição" com "Última atualização: -" enquanto três buscas bem-sucedidas estavam na aba de rede. Acertou a parte difícil e errou a parte visível.
A razão está no próprio log de raciocínio, na etapa 12, em suas próprias palavras: ele havia excluído uma variável que seu construtor de mapa ainda estava usando, percebeu, e seguiu em frente. Esse tipo de regressão autoinfligida no final de uma execução é exatamente para o que uma trajetória append-only é boa, que é o próximo passo.
A Execução C é mais engraçada e pior. Ela afirmou ter corrigido o bug do desvanecimento do rastro e a lógica do sufixo N/S. O rastro está exatamente o que está quebrado (doze círculos NaN, nenhum rastro é renderizado), e o rótulo de latitude lê -34,76° S, que é duplamente sinalizado. Não corrigiu nenhuma das duas coisas que disse ter corrigido, e verificou seu trabalho com node --check, que analisa a sintaxe do JavaScript e não sabe nada sobre se um caminho SVG é legal.

A página do rastreador da ISS da terceira execução com um rastro posicionado em NaN, um marcador preso no canto superior esquerdo e um rótulo de latitude duplamente sinalizado
Execução C, a execução de 50 segundos: bonita, ao vivo e silenciosamente quebrada nos dois lugares que afirmou ter corrigido.
Nada disso é realmente um bug do Harness. É um bug do agente de codificação que o Harness executou fielmente e depois relatou fielmente como sucesso. O que nos leva à única parte desta versão que realmente me impressionou.
Passo 4: A Correção de Duas Linhas, e a Visualização de Trajetória do DeepSeek Harness Que a Encontrou
A Execução B levar 2,8x mais tempo que a Execução A não fez sentido para mim. Mesmo modelo, mesma tarefa, e a única diferença eram algumas linhas de YAML. Então fui para a Trajectory.
A descrição oficial é precisa, o que é mais raro do que deveria ser: "Tudo que o modelo vê é registrado em um log de sessão append-only: prompts de sistema, raciocínio, chamadas de ferramenta e resultados, agendamento de subagentes e cada injeção de contexto... Na visualização Trajectory, você pode inspecionar esses registros por fonte. Retomar, bifurcar, pesquisar e reproduzir todos operam no mesmo stream de eventos" (DeepSeek Harness, agosto de 2026).
Não é marketing. O stream é um arquivo real:
bash1ls $DSH_HOME/sessions/<workspace>/session-<uuid>/session.jsonl.zstd 2
Um evento JSON por linha, com moldura zstd, append-only. A Execução A produziu 606 eventos; a Execução B produziu 1.709. Filtre por fonte na UI, ou apenas grep no arquivo decodificado. Os tipos de evento são exatamente o que a frase acima promete: turn/start, step/start, request/header, request/context, assistant/chunk, reasoning-chunks, tool-call-chunks, tool/call, tool/result, step/end, turn/end.
O evento request/header é o que resolveu. Ele registra a configuração realmente colocada no fio:
jsonc1// Execução A 2{"config":{"provider":"atlas","model":"deepseek-ai/deepseek-v4-flash-0731","maxTokens":131072}, 3 "adapterDefaults":{"maxTokens":true}} 4 5// Execução B 6{"config":{"provider":"atlas","model":"deepseek-ai/deepseek-v4-flash-0731"}} 7
A Execução B não enviou nenhum limite de saída, e seu raciocínio inchou para 72.420 caracteres em 33 blocos contra os 6.094 em 9 da Execução A. É daí que vieram os 270 segundos extras e os 44.170 tokens de saída extras.
A causa está documentada, mas não no site de documentação. Está enterrada em packages/llm/llm-pi-ai/README.md: o dialeto de pensamento é adivinhado a partir da URL do endpoint. Nas próprias palavras dos mantenedores, compat.thinkingFormat é algo que "pi-ai adivinha a partir da URL do endpoint; a URL de um gateway privado não diz nada, então um gateway de dialeto DeepSeek seria falado no dialeto OpenAI sem maneira de corrigi-lo."
Meu endpoint retorna reasoning_content, a grafia do DeepSeek. Seu nome de host não diz nada sobre isso. Então na Execução B o adaptador caiu para o dialeto OpenAI, não conseguiu enviar um nível de pensamento, e o modelo raciocinou em seu próprio padrão em cada uma das 36 chamadas. Separadamente, uma entrada de modelo que declara apenas id herda os fallbacks de rota defaultContextWindow: 262144 e defaultMaxTokens: 32768, então um modelo de 1.048.576 tokens perde silenciosamente três quartos de sua janela.
Ambos são duas linhas:
yaml1llm-pi-ai: 2 providers: 3 atlas: 4 api: openai-completions # compat.* existe APENAS sob este protocolo 5 baseURL: https://api.atlascloud.ai/v1 6 apiKeyEnv: ATLAS_API_KEY 7 compat: 8 thinkingFormat: deepseek # pare de adivinhar pela URL 9 supportsReasoningEffort: true 10 models: 11 - id: deepseek-ai/deepseek-v4-flash-0731 12 contextWindow: 1048576 # substitua o fallback de 262.144 13 maxTokens: 131072 # dê ao raciocínio espaço real 14
Duas coisas para manter na cabeça. A ordem de resolução é modelo, depois rota, depois a entrada do catálogo instalado, depois o palpite de URL do pi-ai, então um valor no nível do modelo vence. E compat.* existe apenas sob api: openai-completions; colocá-lo em qualquer outro lugar e a resolução falha completamente. O adaptador também deliberadamente não suporta Bedrock, Vertex, Azure ou Codex, porque sua autenticação precisa de mais do que uma chave, um endpoint e cabeçalhos.
Defina isso, e a configuração de fio da Execução A está correta, sua conta de tokens cai 3,5x, e ainda assim ela entrega um mapa quebrado. O que é o resumo honesto de todo este exercício: a correção de configuração é real, e corrige a conta, não a revisão de código que você ainda precisa fazer você mesmo.

O stream de eventos de sessão append-only de uma execução real do DeepSeek Harness, com contagens de eventos e o cabeçalho de requisição que revelou o problema de configuração
O stream de eventos da Trajectory da Execução A: 606 eventos, e aquele que expôs o limite de saída ausente.
Quanto Custou Esta Review do DeepSeek Harness, e Se Está Pronto para Produção
Três execuções completas do agente de uma tarefa não trivial, direto das trajetórias, pela taxa fixa de $0,14 in / $0,28 out por 1M:
| Execução A | Execução B | Execução C | Total | |
|---|---|---|---|---|
| Chamadas LLM | 15 | 36 | 8 | 59 |
| Tokens de entrada não armazenados em cache | 38.452 | 109.408 | 20.781 | 168.641 |
| Tokens de saída | 12.740 | 56.910 | 6.969 | 76.619 |
| Tokens de leitura de cache | 280.832 | 2.150.144 | 108.800 | 2.539.776 |
| Participação de cache no prompt | 88,0% | 95,2% | 84,0% | 93,8% |
| Entrada não armazenada em cache + saída | $0,0090 | $0,0313 | $0,0049 | $0,0452 |
| Se cada token em cache fosse cobrado à taxa total de entrada | $0,0483 | $0,3323 | $0,0201 | $0,4007 |
Duas coisas que vale a pena extrair disso. Primeiro, os números de cache são reais e o endpoint os relata: 93,8% de todos os tokens de prompt nas três execuções voltaram como leituras de cache, que é o que torna um loop de agente acessível. Segundo, a execução mal configurada custou 3,5x a ajustada para uma tarefa de tamanho idêntico. Esse é o preço real das duas linhas YAML.
Observe o formato da primeira chamada em cada execução: cerca de 11.000 tokens de entrada antes que o agente tenha feito qualquer coisa. Esse é o prompt de sistema, os esquemas de ferramenta e o catálogo de habilidades que "tudo é um plugin" implica, e você paga por ele em cada nova sessão. É por isso que a taxa de acerto de cache importa mais neste harness do que em um mais enxuto, e por que vale a pena tentar uma execução em modo Minimal (bash mais um editor de arquivos apenas) se sua tarefa não precisar do conjunto completo de ferramentas.
Então, você pode colocá-lo em produção? Não, e o projeto concorda com você. As próprias palavras do README: "O DeepSeek Harness está atualmente em versão de desenvolvedor e está iterando rapidamente. HAVERÁ MUDANÇAS QUE QUEBRAM A COMPATIBILIDADE." A interface web abre com um modal dizendo "DeepSeek Harness 0.1 permanece em teste para desenvolvedores do Harness." Licença MIT significa que você pode fazer o que quiser com ele; não significa que a API contra a qual você está construindo existirá no próximo mês.
| Quem você é | Veredito | Por quê |
|---|---|---|
| Desenvolvedor individual que só quer enviar código hoje | Pule por enquanto | Duas das minhas três execuções entregaram saída quebrada com um confiante "pronto". Você gastará seu tempo no harness, não no trabalho. |
| Equipe de infra que quer modificar o próprio loop do agente | Pilote | Esta é a única ferramenta onde o loop, as ferramentas e a UI são todos configuráveis. Isso é genuinamente raro e vale o seu tempo. |
| Empresa montando um plano de controle de produção | Ainda não | Mudanças que quebram a compatibilidade são prometidas por escrito, plugins e servidores MCP são executados fora da sandbox, e o site de documentação está faltando configuração que decide sua conta de tokens. |
| Construtores de plugins e ferramentas | Sim, agora | As costuras de extensão são o ponto principal, o ecossistema é pequeno, e os primeiros plugins terão o campo para si. |
O resto da lista de riscos é curta e real. Há um UUID de telemetria anônimo. Plugins e servidores MCP são executados fora da sandbox bash, então um plugin é código que você está escolhendo confiar. E como esta review descobriu da maneira mais difícil, as configurações que controlam custo e correção estão documentadas em um README de pacote em vez do guia, o que significa que sua primeira conta pode ser várias vezes o que deveria ser por razões que nenhuma mensagem de erro lhe dirá.
Review do DeepSeek Harness: Perguntas Frequentes
O DeepSeek Harness está pronto para produção?
Não. O README afirma claramente: "O DeepSeek Harness está atualmente em versão de desenvolvedor e está iterando rapidamente. HAVERÁ MUDANÇAS QUE QUEBRAM A COMPATIBILIDADE." A interface web repete isso em um modal de inicialização. Um piloto contido em uma carga de trabalho não crítica é razoável hoje. Um plano de controle de produção do qual sua equipe depende não é, porque a superfície da API contra a qual você está construindo é explicitamente instável.
Quanto disco e memória o DeepSeek Harness realmente usa?
No macOS, npm install @deepseek-ai/dsh puxou 531 pacotes e 306 MB, dos quais o pacote dsh em si tem 172 KB. O amplamente citado 1,5 GB é uma compilação completa da fonte, não a instalação de runtime. O processo do servidor web ficou ocioso em 35 a 40 MB de RSS com uma sessão ativa aberta, após atingir um pico perto de 212 MB durante a inicialização. A memória da própria UI é cobrada do seu navegador, não do dsh.
Por que minha execução do DeepSeek Harness é muito mais lenta e cara do que o esperado?
Muito provavelmente sua entrada de modelo declara nada além de id. Isso herda os fallbacks de rota defaultContextWindow: 262144 e defaultMaxTokens: 32768, e permite que o adaptador adivinhe o dialeto de raciocínio a partir do nome de host do seu endpoint. No meu teste, essa combinação produziu 36 etapas em vez de 15 e 3,5x o custo de tokens para a mesma tarefa. Defina compat.thinkingFormat, um contextWindow real e um maxTokens real.
O DeepSeek Harness funciona com endpoints que não são do DeepSeek?
Sim, qualquer URL base compatível com OpenAI funciona, e é assim que a maioria das pessoas vai executá-lo. A pegadinha é que o dialeto de pensamento é inferido a partir da URL, então um gateway de dialeto DeepSeek em um nome de host neutro é falado no dialeto OpenAI. compat.thinkingFormat: deepseek é a correção, e ela só existe sob api: openai-completions. Bedrock, Vertex, Azure e Codex são deliberadamente não suportados.
A visualização Trajectory é realmente útil ou é marketing?
É útil, e é o ponto mais forte desta versão. O log de sessão é um arquivo JSONL append-only real que você pode filtrar por fonte, retomar, bifurcar e reproduzir, e o evento request/header me disse exatamente qual configuração chegou ao fio, que foi o que resolveu meu problema. O que ela não faz é explicar por que o modelo escolheu algo. Ela registra o que o modelo viu, não por que decidiu.
DeepSeek Harness vs Claude Code ou OpenCode, qual devo usar no dia a dia?
Se você quer algo para escrever código de forma confiável hoje, não este, ainda não. Escolha Harness quando o runtime do agente em si é o que você quer mudar, porque trocar o loop, as ferramentas ou a UI é configuração aqui em vez de um fork. Para uma comparação baseada em números sobre uso de tokens, veja DeepSeek Harness vs OpenCode, e para a camada de extensão, quais plugins valem a pena instalar.
Execuções realizadas em 18 de agosto de 2026 no macOS, Node v24.15.0, @deepseek-ai/[email protected], modelo deepseek-ai/deepseek-v4-flash-0731 servido por um endpoint compatível com OpenAI no Atlas Cloud. Cada contagem de tokens, tempo de parede e erro de console neste artigo veio dos logs de sessão e consoles de navegador dessas execuções.






