Qwen3.8-27B 接入 DSH 全流程实测:写代码、跑长任务,都没问题

我把 Qwen3.8-27B 接进了 DeepSeek Harness

Qwen3.8-27B 开源之后,我第一反应,不是先去看跑分。

而是:能不能把它塞进 DSH 里。

模型单独跑起来,顶多算一个会说话的 API。

接进 Harness,能读文件、跑命令、调用工具,再根据结果继续往下干,才算真正长出了手和脚。

答案是:可以。

而且整个过程,比我想象中简单。

核心就两步:

先用 vLLM 把 Qwen3.8-27B 跑起来,再把它提供的 OpenAI 兼容接口,填进 DSH。

先把 Qwen3.8-27B 跑起来

这次部署的是 Qwen3.8-27B-FP8

Qwen3.8-27B 是一个 27B 稠密模型,原生支持 262,144 Token 上下文,也就是通常所说的 256K。官方 vLLM Recipe 还专门给出了推理解析和工具调用解析配置,这两项正好也是接入 DSH 的关键。(vLLM Recipes1)

配图:vLLM Recipes 中的 Qwen3.8-27B 部署页面

我这里直接使用 Docker 启动:

bash 复制代码
docker run -itd \
  --restart always \
  --name llm_server \
  --gpus '"device=2"' \
  -e CUDA_VISIBLE_DEVICES=0 \
  -v /data/pretrained_models/Qwen3.8-27B-FP8/:/models/Qwen3.8-27B-FP8 \
  -p 8004:8000 \
  vllm/vllm-openai:v0.21.0 \
  --model /models/Qwen3.8-27B-FP8 \
  --served-model-name Qwen3.8-27B-FP8 \
  --gpu-memory-utilization=0.95 \
  --dtype auto \
  --host 0.0.0.0 \
  --port 8000 \
  --max-model-len=262144 \
  --tensor-parallel-size=1 \
  --reasoning-parser qwen3 \
  --enable-auto-tool-choice \
  --tool-call-parser qwen3_coder \
  --max-num-seqs 512 \
  --mm-encoder-tp-mode data

这段命令看着挺长,真正需要注意的,其实就几个参数。

--max-model-len=262144,表示把最大上下文长度设置为 256K。

不过这只是上限,不代表每次请求都要塞满。上下文越长,KV Cache 占用也越大。如果启动时显存不够,可以先降到 65536 或者 131072,跑通之后再慢慢往上加。

--served-model-name Qwen3.8-27B-FP8 也很重要。

后面在 DSH 里填写的模型 ID,必须和这里保持一致。名字对不上,模型明明已经启动了,DSH 还是会告诉你找不到。

然后是这三个参数:

bash 复制代码
--reasoning-parser qwen3
--enable-auto-tool-choice
--tool-call-parser qwen3_coder

前一个负责把模型的思考内容解析出来,后两个负责识别和解析工具调用。

毕竟接入 DSH,不是为了让模型换个界面陪你聊天。

真正要看的,是它能不能正确调用 Bash、读取文件、修改代码,然后根据工具返回的结果继续干活。

还有一个看起来有点奇怪的地方:

bash 复制代码
--gpus '"device=2"'
-e CUDA_VISIBLE_DEVICES=0

这不是写错了。

前面的 device=2 表示使用宿主机上的第 2 号 GPU,这张卡进入容器之后,会被重新映射成容器里的第 0 号 GPU,所以后面写 CUDA_VISIBLE_DEVICES=0

套娃了一层,但逻辑没问题。

如果不是使用已经配置好的 Docker 镜像,而是在本地 Python 环境里直接安装 vLLM,遇到模型配置或 Processor 加载错误,可以先检查一下 transformers 版本。官方 Recipe 要求 transformers >= 5.8.0。(vLLM Recipes1)

先别急着打开 DSH

模型启动以后,先检查一下接口。

bash 复制代码
curl http://127.0.0.1:8004/v1/models

如果返回结果里能够看到:

text 复制代码
Qwen3.8-27B-FP8

说明 vLLM 服务已经正常起来了。

这一步最好别省。

不然一会儿 DSH 连不上,你很容易怀疑是模型不支持、工具调用有问题,折腾半天,最后发现只是端口没通。

再把模型塞进 DSH

接下来启动 DeepSeek Harness:

bash 复制代码
npx @deepseek-ai/dsh web

打开 DSH 工作台以后,进入:

text 复制代码
设置 → 模型 → 添加自定义提供方

DSH 原生支持接入自托管的 OpenAI 兼容服务,需要填写 Provider ID、API 地址、接口协议和模型信息。保存之后,新请求就会直接使用新的配置,不需要重启 DSH。(GitHub2)

我这里的配置大概是:

text 复制代码
Provider ID:qwen-local
显示名称:Qwen Local
API 地址:http://模型服务器IP:8004/v1
API 协议:openai-completions
模型 ID:Qwen3.8-27B-FP8
模型名称:Qwen3.8-27B-FP8

如果 DSH 和 vLLM 在同一台机器上,API 地址可以直接填写:

text 复制代码
http://127.0.0.1:8004/v1

如果不在同一台机器上,就换成模型服务器的实际 IP。

本地 vLLM 没有配置 API 鉴权的话,API Key 可以留空;如果启动服务时额外设置了 Key,就按照实际值填写。

这里再强调一次:

DSH 里的模型 ID,必须和 vLLM 的 --served-model-name 完全一致。

一个字母都别差。

保存以后,回到对话页面,在模型选择器里找到刚刚添加的 Qwen3.8-27B-FP8

到这里,模型就算正式装进 DSH 了。

接上以后,重点不是问一句"你好"

普通对话能正常返回,只能说明接口通了。

对于 Harness 来说,这还远远不够。

所以这次,我没有拿"介绍一下你自己"这种问题糊弄它,而是直接扔进去一个正在做的真实任务:WorldQuant BRAIN Alpha 研究与批量模拟

这个任务并不简单。

它需要先阅读项目里的脚本、Skill 和参考资料,检查现有工具能不能用;然后登录 API、探测数据字段、设计候选 Alpha,再启动多组并行模拟,检查相关性、Margin、Turnover 和报错信息,最后继续做下一轮优化。

换句话说,它不只是写一段代码。

而是要围绕一个目标,连续完成「读文件---写代码---执行命令---等待结果---分析日志---发现问题---继续修正」这一整套流程。

实测下来,Qwen3.8-27B 在 DSH 里的表现,比我预想中稳。

它会自己读取项目文件,调用 PowerShell 执行 Python 脚本,生成候选配置,启动后台任务,同时维护一份任务清单,记录哪些步骤已经完成、哪些正在执行、后面还要继续做什么。

中间也不是完全没有报错。

例如批量模拟结果写入时出现了竞争问题,最终结果文件只保留了一条记录。模型发现结果数量不对之后,没有直接卡死,而是继续检查日志,判断问题来自并发写入,再换到 JSONL 日志里读取完整结果。

这点其实挺重要。

真实开发任务不可能一路绿灯,关键不是模型会不会报错,而是报错以后,它还能不能沿着目标继续往下查。

上图是 DSH 的对话视图。

可以看到,模型一边执行任务,一边汇报当前进度:前面检查了哪些工具,正在运行哪一批模拟,又发现了哪些相关性和结果文件问题。

页面下方还有一份持续更新的任务清单。

整个任务连续运行了三十多分钟,执行了接近四十个步骤。期间涉及多次文件读写、代码生成、后台进程、日志分析和结果判断,模型没有明显忘记最初目标,也没有跑着跑着突然开始干别的。

速度上不算特别快,长任务里的首 Token 等待也比较明显。

但至少从这次实测来看,写代码、执行目标和持续跑长任务,基本都没有明显问题

更让我喜欢的,还是 DSH 的轨迹视图。

切换到轨迹页面以后,整个任务会被拆成一条完整的执行链。

哪一步是模型输出,哪一步调用了工具,什么时候注入了新的上下文,后台任务什么时候完成,全都按照时间顺序排了出来。

点开其中一条,还能继续查看具体调用了什么工具、传入了哪些参数、命令返回了什么内容,以及模型拿到结果以后做出了什么判断。

页面顶部还会把 Input、Model 和 Tools 的耗时画成一条时间轴。

模型在哪一步想得比较久,哪条命令执行得比较慢,任务是在哪个环节开始绕路的,基本一眼就能定位。

以前跑这种长 Agent 任务,通常只能盯着终端里一行行日志猜。

现在相当于把模型整个「思考---行动---反馈---修正」的过程,直接摊开给你看。

所以这一轮测试下来,我对这套组合的判断,也从"能够接入"变成了"确实能够干活"。

Qwen3.8-27B 负责理解目标、写代码和做判断。

DeepSeek Harness 负责文件、命令、工具编排和过程记录。

两者拼在一起以后,已经不只是换了一个界面的本地聊天模型,而是一个能围绕真实目标,连续工作几十分钟的 Agent。

至少这次,它不是简单的「能跑」。

是真的把活干起来了。

相关推荐
linux-hzh3 小时前
百日算法修炼 · Day 12
算法·深度优先
额额额对了3 小时前
数据结构:二叉树
c语言·数据结构·算法
iNeuOS工业互联网4 小时前
iNeuOS_Vision_视觉分析,增加SAM3模型对实例分割和目标检测AI自动标注图片样本功能
人工智能·算法·目标检测
qeen874 小时前
【数据结构】红黑树的算法原理解析与实现
开发语言·数据结构·c++·算法·红黑树
码匠许师傅4 小时前
【C++ 面试真题】20. 聊聊 C++ 的标准库常用算法
c++·算法·面试
aqiu1111115 小时前
【算法刷题】蓝桥杯:0星际争霸(大数比较 + 多关键字自定义排序)
算法·排序·自定义排序
m0_547486665 小时前
《数据结构与算法(Python语言版)》全套PPT课件2026
数据结构·算法
个 人 练 习 生5 小时前
数据结构入门:算法复杂度
开发语言·数据结构·经验分享·学习·程序人生·算法
Ricardo-Yang5 小时前
无人机单目深度估计测试:ZipDepth 与 AerialMetric
人工智能·算法·机器学习·计算机视觉·无人机