在 DeepSeek Harness 开放开发者预览后的第二天,从一条 npx 命令开始,选择隔离工作区,让它制作并验收一个真实网页,再查看运行轨迹并选做插件识图。
发布第二天实测:一条命令启动 DSH,在空工作区里交付一个真实网页。
2026 年 8 月 14 日,DeepSeek Harness 开放开发者预览后的第二天,我决定先不啃源码,也不急着跑复杂 Benchmark,只验证一件最朴素的事:它能不能把一句需求变成电脑里真实存在的网页?
整个核心过程用了大约 25~35 分钟。通关标志也很简单:实验目录里出现 index.html,浏览器能够打开,页面内容和任务要求一致。第一次接触 DSH,只要完成这条路线就够了。
先看结果。这是 DSH 最后交付的网页成品:
页面已经作为文件写进工作区。好看只是第一印象,过程还要继续检查。下面从启动开始,把这次实验完整走一遍。
1. 发布第二天,我先看它能不能真的交付
DeepSeek 给 DSH 的定位是开源 Agent Harness,官方强调“Everything is a Plugin”。这句话听着很有想象力,但第一次体验时,我更关心一个具体问题:模型能不能调用文件、终端和搜索工具,最后交出一个由我亲手验收的结果?
所以这次没有让它挑战大型项目,而是选择制作一个介绍 DeepSeek Harness 的单页网站。网页的好处是结果足够直观:有没有文件、能不能打开、内容对不对,几分钟就能判断。
这次核对资料时,我优先使用以下入口:
官方入口给出的 Web UI 启动方式很短,后面真正要执行的核心命令只有一条。
成功标志: 你已经知道本文要交付什么,而且准备把实验限制在一个可以随时放弃的空目录里。
2. 三样准备,加一条启动命令
开始前只需要三样东西:
- Node.js:让
npx能运行 DSH。已经安装过就不用重装。 - DeepSeek API Key:在 DeepSeek 开放平台创建,再填入 DSH 的
Settings → Models。真实 Key 不要放进聊天、截图或文章。 - 一个空实验文件夹:例如
try-harness。不要直接选择桌面、常用代码仓库、公司资料或私人照片目录。
先打开 PowerShell 或 Windows Terminal,检查 Node.js:
node -v能看到版本号就可以继续。若提示找不到 node,从 Node.js 官方下载页安装后重新打开终端;旧窗口可能还没有读取新的环境变量。
进入刚才的空实验目录,然后执行:
npx @deepseek-ai/dsh web教程截图里的 $、> 和前面的文件夹路径都只是终端提示符,不要一起复制。第一次运行若出现下面的询问,输入 y 并回车:
Need to install the following packages:
@deepseek-ai/dsh@...
Ok to proceed? (y)等终端打印类似 http://127.0.0.1:3080 的地址:
127.0.0.1 可以先理解成“这台电脑自己”。保持终端运行,在浏览器打开它实际打印的地址。本次截图安装的是 @deepseek-ai/dsh@0.1.0-rc.6,你复现时版本不同很正常。
最小排错: 没出现地址时,先读终端最后一行错误;页面打不开时,确认终端没有关闭,并以它实际打印的 URL 为准。
成功标志: 浏览器出现 DSH 页面,启动终端仍在运行。
3. 进入 DSH:先圈定工作区,再谈能力
第一次打开,DSH 会先显示开发者预览声明。
这不是一段可以随手跳过的客套话。官方仓库明确提醒项目正在快速迭代,而且会出现兼容性破坏变更。本文记录的是 2026 年 8 月 14 日的界面;如果你看到的按钮、命令或插件行为不同,先回官方 README 和 Web UI 指南核对。
进入主界面后,点击 Choose workspace,选择刚才新建的空文件夹。工作区决定 Agent 围绕哪里读写文件,也是这次实验最重要的安全边界。
选好后,左侧会显示文件夹名,输入框也会变得可用。若选错目录,先换回空实验文件夹,不要抱着“应该不会改到别处”的侥幸继续。
接着看模式。界面里有标准、PTC、极简和创造四种模式:
- 标准模式:包含本次需要的文件、终端、搜索和计划能力。
- PTC 模式:适合把多步工具调用组合起来,第一次体验暂时用不到。
- 极简模式:只保留少量基础工具,更适合观察最小能力边界。
- 创造模式:用来试验 Agent preset 和插件,留到下一篇。
今天保持标准模式即可。模式旁边还有三档文件权限:
Read Only:只能读取,无法写出网页。Workspace Write:允许在当前工作区内写文件,本任务优先推荐这一档。Full access:访问范围更大,这个小实验用不到。
这里必须把原实验说清楚:我当时实际选成了 Full access,后面的任务截图也保留了 preset danger-full-access。对于只在空目录里生成网页的任务,这是过度授权,权限开得太大。
我没有再用 Workspace Write 完整重跑同一个任务,因此不能把推荐写成已经复验过的结论。它来自权限定义和最小权限原则。你跟做时优先选 Workspace Write;若写入受阻,再根据具体提示判断,不要直接跳到最高权限。
成功标志: 左侧只有这次的空工作区,模式为标准,权限限制在完成任务所需的最小范围。
4. 把一个真实网页任务交给它
准备完成后,我把下面这句原始提示词发给 DSH:
先搜索网页获取Deepseek Harness的最新资料,然后制作一个介绍Deepseek Harness介绍网页句子里甚至重复了一次“介绍”,我没有替实验润色。目标仍然足够明确:先找资料,再把结果做成网页。
发送后,Agent 没有只回一篇介绍,而是开始搜索、建立任务列表,并准备写文件。
截图顶部的 preset danger-full-access,就是前面提到的过度授权证据。保留它比悄悄裁掉更有教学价值:这次任务确实跑通了,但跑通并不代表权限选择合理。
随后,搜索、计划、写入 index.html 和本地检查沿着任务轨迹继续展开。
这时最容易犯的错误,是看到“4/4 完成”就提前庆祝。任务列表只能证明 Agent 认为步骤做完了;搜索内容是否准确、文件是否真的存在、网页是否正确,还需要人来检查。
最小排错: 长时间没有新事件时,不要重复发送同一个任务。先看任务列表、轨迹和启动终端,确认是模型仍在处理、工具等待审批,还是已经报错。
成功标志: 会话里出现对 index.html 的真实写入记录,而不是只有一段聊天回答。
5. 它说“完成了”,我还是亲手打开了一遍
几分钟后,Agent 给出了完成说明、文件名和本地预览地址。
到这里先别急着下结论。真正验收至少要过四关:
- 文件存在:实验目录里确实能看到
index.html。 - 页面能打开:双击文件,或打开 Agent 给出的本地预览地址。
- 内容对得上:页面介绍的是 DSH,不是空白页、错误页或无关内容。
- 关键交互正常:至少滚动、导航和主要链接没有明显失效。
想在 PowerShell 里再确认一次,可以在实验目录运行:
Get-Item .\index.html前面已经看过首屏,继续向下滚动,还能看到功能卡片区:
这次成品整体可用,但也出现了一个很典型的问题:网页自动写入了会随时间变化的 Star 数。我没有把这些数字当成本文事实,公开总览图也避开了相应区域。
这正好说明,Agent 能把网页做出来,不代表页面里的每个数字都已核验。同样,HTTP 200 只说明服务器返回了响应;未知路径可能回退首页,错误内容也可能返回 200。完成文字、HTTP 状态和真实页面内容要一起看。
最小排错: 找不到文件时先核对工作区;打开后还是旧页面时刷新并确认地址;页面空白时回到会话检查 HTML 和浏览器控制台,不要先删除原文件。
通关标志: index.html 真实存在,浏览器打开后能看到与任务一致的网页。
6. 网页做成后,Harness 和轨迹就好懂了
做到这里,再看 Harness 会比一开始背概念轻松很多:
Model + Harness = Agent- Model 负责理解目标、推理和决定下一步。
- Harness 把这些决定连接到文件、终端、工具、权限、会话和插件。
- 两者组合,才形成能够围绕目标连续执行的 Agent。
DeepSeek 所说的“Everything is a Plugin”,可以先理解为:模型、工具、会话和 UI 等能力能够被组合与替换。Cordis 更深层的设计很有意思,但不影响今天完成第一个网页。
这次我最喜欢的是“轨迹”面板。聊天区告诉我 Agent 说了什么,轨迹更接近它实际做了什么。
在同一条时间线上,可以看到输入、模型回合和工具调用。我们可以复盘执行顺序;遇到失败时,也更容易定位问题发生在哪一层,并核对它读写过什么。
右上角还能导出 Session log。完整日志可能包含工作区路径、提示词、工具参数、搜索内容和会话标识,所以本文只展示经过裁切的轨迹局部。分享日志前必须逐项脱敏。
到这里,本文主线已经结束。关闭实验时,先结束当前任务,再回到启动 DSH 的终端按 Ctrl+C 停止本地服务。
7. 选做:给纯文本模型补一双“眼睛”
核心网页任务完成后,我又试了一个插件场景。最开始直接粘贴截图,当前模型明确表示不支持图片:
ModLens 是第三方视觉桥接插件,不是 DeepSeek 官方组件。它可以把图片转换为文本模型能够使用的信息。安装前要先阅读它的 INSTALL.md、权限、安全说明和数据去向;图片可能交给本机视觉引擎或外部服务处理,并可能消耗相应额度。
截至本文核对时,ModLens 仓库给出的 DSH 安装命令是:
npx -y @deepseek-ai/dsh plugin --profile web add @liustack/modlens@latest插件仍在快速变化。如果你的输出与本文不同,先回 ModLens 安装说明核对,不要寻找来历不明的安装脚本。
完成安装和健康检查后,模型选择器里出现了两个带 modlens vision 的入口:
切换入口,再粘贴同一张图提问,这一次已经能根据图片内容作答:
这条证据链很完整:原始能力先失败,安装插件后出现新入口,再用同类输入复验成功。它比一句“DSH 支持识图”更可信。
最小排错: 模型列表没有变化时,先看插件命令和健康检查结果,再按插件仓库说明刷新或重启 DSH。不要在不清楚数据去向时上传敏感截图。
8. 跑完以后,我怎么看 DSH?
这次任务不复杂,但我对 DSH 的判断具体了很多:
- 它能把模型连接到文件、终端和搜索,交付真实文件。
- 工作区、权限与轨迹让执行过程比普通聊天更容易检查。
- 插件可以补充新的能力,ModLens 的“失败 → 安装 → 复验”就是一个现成例子。
它目前更适合愿意在空目录里试验、能接受开发者预览变化、也愿意亲手验收结果的人。重要项目、公司资料和私人文件,不应该直接交给高权限 Agent;第三方插件在没有审计代码、权限和数据去向前,也不该接触敏感内容。
模型调用可能产生费用或消耗额度,价格也会变化,需要时请查看 DeepSeek 开放平台的最新说明。本文留下的证据缺口也继续保留:原实验使用了 Full access,同一任务还没有在 Workspace Write 下完整复验。
网页已经做出来了,插件也露出了一点真正有意思的地方。下一篇,我们就从 0 开始做一个 DSH 插件,看看“一切皆插件”究竟只是口号,还是普通人也能亲手用起来的能力。