大数跨境

DeepSeek Harness开源了,先跑起来,再看懂“一切皆插件”

DeepSeek Harness开源了,先跑起来,再看懂“一切皆插件” 萝卜AI笔记
2026-08-17
2
导读:dsh 还是很值得期待的。

大家好,我是萝卜哥~

这两天看到 DeepSeek 放出 DeepSeek Harness 的开发者预览版,看到网上各种大 V 都是做测评,褒贬不一。

我翻了一遍官方介绍页、GitHub 仓库和插件教程,又把 Windows 下的启动、源码构建、工具注册与 Profile 安装命令顺了一遍。

把这一整套流程走一遍之后,我觉得它最值得研究的地方就是把 Agent 的运行底盘变成了一组可以替换和组合的插件

所谓的万物皆插件,确实是一个非常不错的概念。

下面就带大家把 Web UI 跑起来,再从源码写一个最小工具插件,也顺便推荐了几个好用的插件,先玩起来再说。

01先跑起来,十分钟认识 Harness

第一次体验不用克隆仓库。先确认电脑已经安装 Node.js,然后在终端中执行:

node --version
npm --version

经过我的测试,npm 的版本需要在 11.6.3 及以上才行,要不然会报错。

接着进入准备交给 Agent 的目录。Harness 会把启动命令所在目录当作默认文件系统位置,所以第一次最好准备一个可以随时删除的测试目录。

npx @deepseek-ai/dsh web
截图

默认访问地址是

http://127.0.0.1:3080

页面打开以后,先进入 Settings > Models,填写 DeepSeek API Key 并保存。模型设置会在下一次请求中生效,不需要重启服务。再点击 Choose workspace,添加并选中一个本地目录即可。工作区没有选好以前,输入框是无法输入的。

Image

第一次先发一个只读任务,确认模型、目录和权限都对得上,也顺便看看系统会不会在动作发生前请求确认。

请只读取当前工作区,不要修改文件。总结这个目录的用途,列出主要文件夹、关键入口和需要进一步确认的问题。每个结论都标注对应文件路径。

如果 3080 端口已经被占用,可以换到 3081 等其他空闲端口。

npx @deepseek-ai/dsh --profile web --port 3081

除了 Web UI,官方 CLI 还提供 Headless Profile。它适合一次性任务,会创建一条新会话,打印最终答案,然后自行退出,任务结束后服务进程也就结束了。

npx @deepseek-ai/dsh --profile headless "Summarize this workspace and list the three most important files."
Image

如果想知道自己到底启动了哪些插件,可以使用下面两条命令。前一条看默认配置,后一条看所有层合并后的最终配置。

npx @deepseek-ai/dsh --profile web --dump-default-config
npx @deepseek-ai/dsh --profile web --dump-config

感觉默认安装的插件有点多啊。

Image

在 Web 页面上也能看到。

截图

跑到这里,DeepSeek Harness 的分工就很清楚了。模型负责理解和决策,文件、Shell、工具结果、会话与权限由运行底盘接进真实环境。

02总结了三个优点,插件理念最喜人
02.1插件化让 Agent 更容易改造

很多 Agent 工具用起来很方便,但是按照自己的需求改起来却很难。模型、工具和权限绑在一起,想换一个沙箱,一般要改核心代码,甚至重新维护一份分支。

DeepSeek Harness 把这些能力放到了插件和配置层。运行中的 dsh 由多个有顺序的层组合出来,开发者可以用 patch 替换已有的配置,也可以插入新的配置行。模型适配器、工具注册、会话记录、沙箱和审批策略,都有对应的扩展位置。

C:\Users\Admin\.dsh\settings.yaml
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 行为会发生什么变化。

0.2运行轨迹,让 Agent 更透明

以前我们用的 Agent 工具,要么没有运行详情,要么运行详情折叠在运行过程当中。

Dsh 则使用了完全不一样的设计,所谓的运行轨迹。

Image

模型看到的系统提示词、思维内容、工具调用与结果、子代理调度和上下文注入都会进入事件流。Trajectory 视图可以按来源查看这些记录,恢复、分叉、检索与回放也共享同一份日志。

这对调试有用,对评测更有用。你可以拿同一个任务跑两套 Agent 配置,比较它们在哪一步走了不同路径,也可以把失败轨迹留下来,改掉工具或提示词以后重新跑。

02.3四种运行模式怎么选

DeepSeek Harness 当前内置四个 Agent preset,它们分别叫标准模式、Code 模式、极简模式和创造模式。

Image

它们和前面命令行里的 webheadless 不在同一层。web 与 headless 是 CLI Profile,决定用浏览器界面还是一次性运行器启动 Harness。四种模式决定某一条 Agent 会话拥有哪些工具、提示词和运行能力。

模式
preset id
实际能力
我更建议用在
标准模式
standard
文件编辑、Shell、文件与网页检索,还带 Skills、计划、目标、子代理和工作流
日常开发、资料研究和需要多种工具配合的任务
Code 模式,也叫 PTC 模式
code
保留标准模式能力,通过 Code Mode SDK 把多步工具操作组合进一个 TypeScript 程序
批量读取、循环处理和减少多轮工具往返
极简模式
minimal
只保留持久 Bash 与 str_replace_editor
小范围修改、受控实验和比较模型原始执行能力
创造模式
cordis
保留标准模式能力,增加运行时检查、插件实验和 preset 创作指导
设计新插件、改 Agent 组合和制作自定义 preset

标准模式是最普遍的模式,它的工具比较齐,日常使用就用这个模式没错。

请先只读检查当前工作区,说明它的用途和主要目录。接着给出三步处理计划,列出每一步可能读取或修改的文件。等我确认以后再执行,最后运行与改动范围匹配的检查。

Code 模式适合把重复操作塞进一次程序化工具调用,比如下面这个批量任务就可以用 Code 模式。

请扫描当前工作区的所有 Markdown 文件,提取标题、待办事项和最后修改时间。优先使用 Code Mode SDK 在一个 TypeScript 程序中组合读取与汇总,最后生成一张按目录分组的表格。先只返回结果,不修改原文件。

极简模式只有两件主要工具,适合观察模型在工具很少时会怎样工作。

请只检查 notes.md,把其中所有未勾选待办列出来。不要访问网络,不要读取其他文件,也不要修改内容。最后说明你实际调用了哪些工具。

创造模式最贴近“一切皆插件”的主旨。它可以检查当前运行时,也能试验 Cordis 插件并辅助编写新的 Agent preset。

请只读检查当前 Harness 的 Agent preset 和插件树,为“本地资料研究助手”设计一个新的 preset。它只允许读取指定工作区、检索本地文档和生成引用,不允许执行外部命令或修改原文件。先展示插件组成、权限边界和 cordis 配置草案,不要写入或挂载。

创造模式的权限也是最高的,适合更高阶的工作。

**我觉得现阶段,我们最应该关注的就是极简模式和创造模式。**前者把变量压到很低,方便观察工具数量变化以后 Agent 会怎么行动。后者允许 Agent 参与设计下一套 Agent,但也把权限审查推到了更重要的位置。

Harness 的价值不只在于用默认配置跑任务,还在于让开发者持续创造新的运行方式。

03从头写一个简单的插件

只跑 Web UI,用 npx 最省事。准备写插件时,源码路线更方便,因为官方第一个插件教程就是从仓库根目录加载本地 TypeScript 文件。

当前官方开发文档要求 Node.js 22.19 及以上或 24 及以上,Git 至少为 2.26,pnpm 通过 Corepack 使用。

先检查环境

node --version
git --version
corepack enable
pnpm --version
Image

接着克隆仓库,安装依赖并构建

Set-Location 'D:\code'
git clone https://github.com/deepseek-ai/deepseek-harness.git
Set-Location .\deepseek-harness
pnpm install
pnpm run typecheck
pnpm run build
Image

pnpm run typecheck 用来确认开发环境和类型关系正常,pnpm run build 生成运行 Web UI 与源码 Demo 需要的产物。

构建通过以后,在仓库根目录创建插件目录

New-Item -ItemType Directory -Force -Path .\scratch-plugin\src | Out-Null

新建 scratch-plugin/src/my-plugin.ts,放入这个最小工具

import type { Context } from '@deepseek-ai/cordis'
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}!`
    },
  }))
}
Image

下面终于可以好好说一下 ctx.tools 了。ctx 是 Harness 加载插件时交给它的运行上下文,tools 是其中的工具注册服务。

插件通过 ctx.tools.register() 把工具名称、用途、参数和执行函数交给 Harness,模型随后才能看到并调用这个工具。

inject = ['tools'] 表示这个插件依赖工具服务。Cordis 会等依赖准备好,再执行插件的 applydefineTool 还会根据参数 Schema 检查模型传入的数据,所以 name 没有填写或类型不对时,错误会在进入 execute 之前被拦下来。

工具文件有了,还要告诉运行树把它插在哪里。新建 scratch-plugin/cordis.yml

- insert:
    - id: greet-tool
      name: 'file:///D:/code/DeepSeek_harness/deepseek-harness/scratch-plugin/src/my-plugin.ts'
Image

这里必须使用自己电脑上的绝对路径。Windows 的 YAML 路径建议改成正斜杠,并放进引号。然后启动带 Patch 的 Web UI

pnpm dsh web --patch .\scratch-plugin\cordis.yml
Image

打开 http://127.0.0.1:3080,配置模型、选中工作区,再发送下面的指令

Use the greet tool to greet Ada.

预期工具结果是 Hello, Ada!

Image

我们在插件列表当中也能搜索到我们创建的插件。

Image
04推荐几个热门插件,可以先拿来玩

自从开源以来,DeepSeek Harness 社区已经冒出了不少插件和 Skill。推荐几个有用好玩的插件,先玩起来再说。

04.1dot-skill,把一个人的经验做成可调用的 Skill

dot-skill 的 GitHub Star 约为 2.2 万。它可以根据资料和用户的描述,提炼出一个人的经验、判断框架和说话方式。用在离职同事、行业前辈、作者、虚构角色,甚至过去的自己身上,都很有想象力。

Image

安装方法多种多样,最省事的做法,是把下面这句话交给 DeepSeek Harness

请按仓库安装说明,把 https://github.com/titanwings/colleague-skill 安装到 DeepSeek Harness 的全局 Skill 目录。安装结束后检查 /dot-skill 是否可用,并告诉我它读取了哪些目录。
04.2Archify,把复杂项目生成会动的结构图

Archify 的 GitHub Star 约为 1.26 万。它专门生成架构图、工作流图、时序图和数据流图,输出是可验证、可交互、可导出的 HTML。除了看代码,它也适合画内容生产流程、公司审批链路、新媒体发布流程和个人知识管理系统。

Image

它的 Harness 接入属于社区集成,当前安装命令是

dsh plugin --profile web add @tt-a1i/archify-dsh@0.1.0

安装后重启 dsh web,然后可以直接说

请使用 archify Skill,把当前项目的数据流、人工审批点和自动化节点画成一张可交互流程图。每个节点都要附上对应的文件或规则来源。
04.3dsh-web-ui,一次补齐看板、预览、远程和宠物

dsh-web-ui 的 GitHub Star 约为 2000。它是一组 Web UI 插件聚合包,目前包含任务看板、Git 图谱、文件预览、实时 Token 统计、手机远程控制、图像理解、多款皮肤和鲸鱼宠物。

Image

仓库当前建议固定已发布版本

dsh plugin --profile web add @linxin666/dsh-web-ui-all@0.1.12
dsh web

如果你只想先装一个好玩的小功能,可以单独安装鲸鱼宠物

dsh plugin --profile web add @linxin666/dsh-pet
04.4ModLens,让文本模型看懂截图和照片

ModLens 的 GitHub Star 约为 1400。它会给 DeepSeek 这类文本模型注册图像读取工具,将 OCR、布局、实体和语义转成结构化证据。常见用法包括识别截图中的文字、分析表格照片、诊断 UI 问题,以及根据一张海报拆解版式。

Image

安装命令是

npx -y @deepseek-ai/dsh plugin --profile web add @liustack/modlens@3.16.6

安装后还要确认本机有可用的视觉模型或兼容视觉端点。接着在 Web UI 里粘贴图片,或选择带 (modlens vision) 的模型入口即可。

想继续找插件,可以再装 dsh-market。它会在 Harness 设置里增加插件市场,用来搜索、安装、更新和卸载社区插件。

Image

安装使用命令如下

dsh plugin --profile web add dshmarket
dsh web

目前市面上支持 DeepSeek Harness 的插件已经非常多了,大家可以多多留心,当然自己开发一个也不难。

05缺点其实也很明显

第一,它现在还是 developer preview,官方自己都说后面会有兼容性破坏式的更新,API、插件结构和配置字段随时可能变,当玩具折腾没问题,生产环境里用要想清楚。

第二个问题更实际,一行命令只能跑 Web UI,连个桌面安装包都没有。对终端用户来说门槛其实不低,现阶段还真不适合直接推给非技术的人用。

第三,插件越自由,权限这块越要自己盯住。Agent 能读写工作区、执行命令,还能委派子代理,轨迹日志里可能留下你的项目代码和系统提示词。安全这件事,Harness 管不了,只能靠你自己。

写在最后适合研究,不适合盲上生产

虽然它现在还是 developer preview,虽然还有各种各样的不足,但是现在的社区非常活跃,插件数量增长得也非常快。

但如果你是想研究 Agent 到底是怎么跑起来的,或者想给自己的工具链加一块自定义能力,那现在拉下来摸一摸是值得的。

模型、工具、沙箱和运行循环都拆成了可以单独替换的零件,哪块想换就换哪块,你甚至可以让 Agent 帮你设计下一套 Agent。

先跑起来,看一条任务轨迹,想法自然就来了。


以上就是今天的分享,觉得有帮助,帮请帮一键三连:点赞、转发,再看留言,你的反馈对我很重要!

【声明】内容源于网络
0
0
萝卜AI笔记
做有温度的AI人
内容 183
粉丝 1
萝卜AI笔记 做有温度的AI人
总阅读11.6k
粉丝1
内容183