大家好,我是萝卜哥~
这两天看到 DeepSeek 放出 DeepSeek Harness 的开发者预览版,看到网上各种大 V 都是做测评,褒贬不一。
我翻了一遍官方介绍页、GitHub 仓库和插件教程,又把 Windows 下的启动、源码构建、工具注册与 Profile 安装命令顺了一遍。
把这一整套流程走一遍之后,我觉得它最值得研究的地方就是把 Agent 的运行底盘变成了一组可以替换和组合的插件。
所谓的万物皆插件,确实是一个非常不错的概念。
下面就带大家把 Web UI 跑起来,再从源码写一个最小工具插件,也顺便推荐了几个好用的插件,先玩起来再说。
第一次体验不用克隆仓库。先确认电脑已经安装 Node.js,然后在终端中执行:
npm --version
经过我的测试,npm 的版本需要在 11.6.3 及以上才行,要不然会报错。
接着进入准备交给 Agent 的目录。Harness 会把启动命令所在目录当作默认文件系统位置,所以第一次最好准备一个可以随时删除的测试目录。
默认访问地址是
页面打开以后,先进入 Settings > Models,填写 DeepSeek API Key 并保存。模型设置会在下一次请求中生效,不需要重启服务。再点击 Choose workspace,添加并选中一个本地目录即可。工作区没有选好以前,输入框是无法输入的。
第一次先发一个只读任务,确认模型、目录和权限都对得上,也顺便看看系统会不会在动作发生前请求确认。
如果 3080 端口已经被占用,可以换到 3081 等其他空闲端口。
除了 Web UI,官方 CLI 还提供 Headless Profile。它适合一次性任务,会创建一条新会话,打印最终答案,然后自行退出,任务结束后服务进程也就结束了。
如果想知道自己到底启动了哪些插件,可以使用下面两条命令。前一条看默认配置,后一条看所有层合并后的最终配置。
npx @deepseek-ai/dsh --profile web --dump-config
感觉默认安装的插件有点多啊。
在 Web 页面上也能看到。
跑到这里,DeepSeek Harness 的分工就很清楚了。模型负责理解和决策,文件、Shell、工具结果、会话与权限由运行底盘接进真实环境。
很多 Agent 工具用起来很方便,但是按照自己的需求改起来却很难。模型、工具和权限绑在一起,想换一个沙箱,一般要改核心代码,甚至重新维护一份分支。
DeepSeek Harness 把这些能力放到了插件和配置层。运行中的 dsh 由多个有顺序的层组合出来,开发者可以用 patch 替换已有的配置,也可以插入新的配置行。模型适配器、工具注册、会话记录、沙箱和审批策略,都有对应的扩展位置。
C:\Users\Admin\.dsh\.credentials.yaml
C:\Users\Admin\.dsh\sessions\
C:\Users\Admin\.dsh\profiles\web\cordis.patch.yml
C:\Users\Admin\.dsh\cordis.patch.yml
这对内部开发平台和 Agent 实验都很实用。你可以给不同团队换不同的模型、工具和工作区权限,也可以只替换某一个工具,观察 Agent 行为会发生什么变化。
以前我们用的 Agent 工具,要么没有运行详情,要么运行详情折叠在运行过程当中。
Dsh 则使用了完全不一样的设计,所谓的运行轨迹。
模型看到的系统提示词、思维内容、工具调用与结果、子代理调度和上下文注入都会进入事件流。Trajectory 视图可以按来源查看这些记录,恢复、分叉、检索与回放也共享同一份日志。
这对调试有用,对评测更有用。你可以拿同一个任务跑两套 Agent 配置,比较它们在哪一步走了不同路径,也可以把失败轨迹留下来,改掉工具或提示词以后重新跑。
DeepSeek Harness 当前内置四个 Agent preset,它们分别叫标准模式、Code 模式、极简模式和创造模式。
它们和前面命令行里的 web、headless 不在同一层。web 与 headless 是 CLI Profile,决定用浏览器界面还是一次性运行器启动 Harness。四种模式决定某一条 Agent 会话拥有哪些工具、提示词和运行能力。
标准模式是最普遍的模式,它的工具比较齐,日常使用就用这个模式没错。
Code 模式适合把重复操作塞进一次程序化工具调用,比如下面这个批量任务就可以用 Code 模式。
极简模式只有两件主要工具,适合观察模型在工具很少时会怎样工作。
创造模式最贴近“一切皆插件”的主旨。它可以检查当前运行时,也能试验 Cordis 插件并辅助编写新的 Agent preset。
创造模式的权限也是最高的,适合更高阶的工作。
**我觉得现阶段,我们最应该关注的就是极简模式和创造模式。**前者把变量压到很低,方便观察工具数量变化以后 Agent 会怎么行动。后者允许 Agent 参与设计下一套 Agent,但也把权限审查推到了更重要的位置。
Harness 的价值不只在于用默认配置跑任务,还在于让开发者持续创造新的运行方式。
只跑 Web UI,用 npx 最省事。准备写插件时,源码路线更方便,因为官方第一个插件教程就是从仓库根目录加载本地 TypeScript 文件。
当前官方开发文档要求 Node.js 22.19 及以上或 24 及以上,Git 至少为 2.26,pnpm 通过 Corepack 使用。
先检查环境
git --version
corepack enable
pnpm --version
接着克隆仓库,安装依赖并构建
git clone https://github.com/deepseek-ai/deepseek-harness.git
Set-Location .\deepseek-harness
pnpm install
pnpm run typecheck
pnpm run build
pnpm run typecheck 用来确认开发环境和类型关系正常,pnpm run build 生成运行 Web UI 与源码 Demo 需要的产物。
构建通过以后,在仓库根目录创建插件目录
新建 scratch-plugin/src/my-plugin.ts,放入这个最小工具
import { defineTool } from '@deepseek-ai/dsh-tools'
export const name = 'greet-tool'
export const inject = ['tools']
export function apply(ctx: Context) {
ctx.tools.register(defineTool({
name: 'greet',
description: 'Greet someone by name.',
parameters: {
name: {
type: 'string',
required: true,
description: 'The name to greet',
},
},
output: {
schema: { type: 'string' },
render: (_args, value) => [{ type: 'text', text: value }],
},
async execute(args) {
return `Hello, ${args.name}!`
},
}))
}
下面终于可以好好说一下 ctx.tools 了。ctx 是 Harness 加载插件时交给它的运行上下文,tools 是其中的工具注册服务。
插件通过 ctx.tools.register() 把工具名称、用途、参数和执行函数交给 Harness,模型随后才能看到并调用这个工具。
inject = ['tools'] 表示这个插件依赖工具服务。Cordis 会等依赖准备好,再执行插件的 apply。defineTool 还会根据参数 Schema 检查模型传入的数据,所以 name 没有填写或类型不对时,错误会在进入 execute 之前被拦下来。
工具文件有了,还要告诉运行树把它插在哪里。新建 scratch-plugin/cordis.yml
- id: greet-tool
name: 'file:///D:/code/DeepSeek_harness/deepseek-harness/scratch-plugin/src/my-plugin.ts'
这里必须使用自己电脑上的绝对路径。Windows 的 YAML 路径建议改成正斜杠,并放进引号。然后启动带 Patch 的 Web UI
打开 http://127.0.0.1:3080,配置模型、选中工作区,再发送下面的指令
预期工具结果是 Hello, Ada!。
我们在插件列表当中也能搜索到我们创建的插件。
自从开源以来,DeepSeek Harness 社区已经冒出了不少插件和 Skill。推荐几个有用好玩的插件,先玩起来再说。
dot-skill 的 GitHub Star 约为 2.2 万。它可以根据资料和用户的描述,提炼出一个人的经验、判断框架和说话方式。用在离职同事、行业前辈、作者、虚构角色,甚至过去的自己身上,都很有想象力。
安装方法多种多样,最省事的做法,是把下面这句话交给 DeepSeek Harness
Archify 的 GitHub Star 约为 1.26 万。它专门生成架构图、工作流图、时序图和数据流图,输出是可验证、可交互、可导出的 HTML。除了看代码,它也适合画内容生产流程、公司审批链路、新媒体发布流程和个人知识管理系统。
它的 Harness 接入属于社区集成,当前安装命令是
安装后重启 dsh web,然后可以直接说
dsh-web-ui 的 GitHub Star 约为 2000。它是一组 Web UI 插件聚合包,目前包含任务看板、Git 图谱、文件预览、实时 Token 统计、手机远程控制、图像理解、多款皮肤和鲸鱼宠物。
仓库当前建议固定已发布版本
dsh web
如果你只想先装一个好玩的小功能,可以单独安装鲸鱼宠物
ModLens 的 GitHub Star 约为 1400。它会给 DeepSeek 这类文本模型注册图像读取工具,将 OCR、布局、实体和语义转成结构化证据。常见用法包括识别截图中的文字、分析表格照片、诊断 UI 问题,以及根据一张海报拆解版式。
安装命令是
安装后还要确认本机有可用的视觉模型或兼容视觉端点。接着在 Web UI 里粘贴图片,或选择带 (modlens vision) 的模型入口即可。
想继续找插件,可以再装 dsh-market。它会在 Harness 设置里增加插件市场,用来搜索、安装、更新和卸载社区插件。
安装使用命令如下
dsh web
目前市面上支持 DeepSeek Harness 的插件已经非常多了,大家可以多多留心,当然自己开发一个也不难。
第一,它现在还是 developer preview,官方自己都说后面会有兼容性破坏式的更新,API、插件结构和配置字段随时可能变,当玩具折腾没问题,生产环境里用要想清楚。
第二个问题更实际,一行命令只能跑 Web UI,连个桌面安装包都没有。对终端用户来说门槛其实不低,现阶段还真不适合直接推给非技术的人用。
第三,插件越自由,权限这块越要自己盯住。Agent 能读写工作区、执行命令,还能委派子代理,轨迹日志里可能留下你的项目代码和系统提示词。安全这件事,Harness 管不了,只能靠你自己。
虽然它现在还是 developer preview,虽然还有各种各样的不足,但是现在的社区非常活跃,插件数量增长得也非常快。
但如果你是想研究 Agent 到底是怎么跑起来的,或者想给自己的工具链加一块自定义能力,那现在拉下来摸一摸是值得的。
模型、工具、沙箱和运行循环都拆成了可以单独替换的零件,哪块想换就换哪块,你甚至可以让 Agent 帮你设计下一套 Agent。
先跑起来,看一条任务轨迹,想法自然就来了。
以上就是今天的分享,觉得有帮助,帮请帮一键三连:点赞、转发,再看和留言,你的反馈对我很重要!

