DeepSeek Harness(简称 DSH)自 2026 年 8 月开源以来,上线一天 GitHub Star 就突破 5 万。它之所以能迅速引爆开发者社区,核心原因只有一个:“一切皆插件”

你可能已经听说过 DSH、知道它能跑 Agent,但面对社区里数百个插件不知道从何下手,或者想把 DSH 改装成自己想要的样子却不知道怎么做。本文将带你从理解 DSH 的插件化架构开始,按业务场景逐一拆解可用的插件组合,最后教你如何动手开发自己的插件。

前置提醒:安装插件等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络。

一、理解“一切皆插件”:DSH 的架构基因

在谈“怎么用插件”之前,必须先理解 DSH 的架构哲学。

1.1 没有“内核”,全是插件

传统软件通常有一个“内核”加一堆“插件”——内核是固定的,插件只能扩展不能替换。但 DSH 不一样:产品的每一部分都是插件,包括模型适配器、工具注册表、会话日志,以及 agent loop(智能体循环)本身

这意味着什么?意味着不存在需要打补丁的特权内核——扩展 DSH 的方式是把插件挂载到其他插件旁边。你想换掉默认的 Agent 循环?可以。你想用自己的会话存储方案?可以。你想把整个 Web UI 推倒重来?也可以。

用《实测 DeepSeek Harness》里的话说:DSH 就像一套可以任意插拔积木的乐高玩具

1.2 Cordis:驱动这一切的底层框架

DSH 底层以 vendor 方式引入了名为 Cordis 的插件框架。理解 Cordis 的五个核心概念,是理解 DSH 插件机制的关键:

概念说明
插件实现 Service 的对象,导出 apply(ctx) 函数
上下文 (Context)服务的容器,如 ctx.toolsctx.llmctx.sessions
服务依赖 (inject)插件声明所需服务后,等待服务就绪才启动
类型化事件通过 emitwaterfallparallelserial 四种模式分发
可逆副作用插件卸载时,其注册的所有能力自动撤销

其中最关键的是“可逆副作用”——插件安装后会留下监听器、服务、定时器等副作用,而 Cordis 负责记录这些变化,并在插件卸载时完整撤销。这意味着你可以随意尝试插件,不满意就卸载,不会留下“垃圾”。

1.3 Profile 与 Bundle:插件的“组装方式”

DSH 的插件组合通过 Profile 和 Bundle 两个概念来管理:

  • Profile:存放在 ~/.dsh/profiles/ 中的具名组装,如 webheadless。它定义了启动时加载哪些插件以及加载顺序。

  • Bundle:Cordis 配置项及其代码的分发格式。每个插件通过 package.json 中的 dsh.bundle 字段声明自己的 patch 文件。

查看当前 Profile 实际加载的插件树:

dsh --profile web --dump-config

这会打印出所有配置条目,打印出的任何条目,都可以由你自己的 patch 替换

二、插件安装:一条命令搞定

在进入场景化推荐之前,先掌握插件的安装方式。

2.1 标准安装命令

最常用的安装方式是通过 dsh plugin 命令:

# 安装 npm 包形式的插件
dsh plugin --profile web add <package-name>

# 从 GitHub 仓库安装
dsh plugin --profile web add "github:owner/repo#main"

安装后重启 DSH 即可生效。

2.2 推荐工具:插件市场

社区提供了 dsh-market 插件,可以在 Web UI 内一键安装、升级插件、切换主题:

dsh plugin --profile web add dshmarket

安装后,在 Web UI 的设置面板中就能看到一个图形化的插件市场。如果更喜欢对话式操作,可以安装 dsh-find-plugin,想要什么插件直接问 Agent。

三、分场景插件组合推荐

社区目前已有 275 个插件(另一份清单收录了 700+ 插件),按功能分为 UI 增强、主题与外观、会话与消息、记忆、工具与能力、技能包、工作流与自动化、通知与集成、模型与账号接入、开发与运行时、娱乐等十余个类别。以下按业务场景进行组织。

3.1 场景一:编码与代码审查

如果你是开发者,希望 DSH 成为你的编码助手,这个组合能显著提升代码质量管控能力。

核心插件推荐:

插件功能安装命令
dsh-plugin-review多维度代码健康评分 + 雷达图可视化,支持手动/对话指令/AI主动触发审查dsh plugin --profile web add dsh-plugin-review
dsh-commit-review增加 /commit 与 /review 斜杠命令,对标 Claude Codedsh plugin --profile web add dsh-commit-review
dsh-auto-mode安全自动权限批准,减少编码过程中的频繁停步确认dsh plugin --profile web add dsh-auto-mode

组合效果:安装这三个插件后,你的 DSH 会变成一个自带代码质量审查纪律的工作台——AI 在模块/任务完成后主动触发审查,你可以用 /commit 一键生成 Conventional Commits 提交信息,同时 dsh-auto-mode 减少了烦人的权限弹窗。

3.2 场景二:网页浏览与自动化

如果希望 Agent 能访问网页、执行浏览器自动化操作:

插件功能安装命令
dsh-plugin-playwright基于 Playwright 的浏览器自动化,支持 Chromium/Firefox/WebKitdsh plugin --profile web add dsh-plugin-playwright
Tabbit Browser Plugin提供控制 Tabbit 浏览器的能力dsh plugin --profile web add github:Tabbit-Browser/dsh-plugin
dsh-web-search-pro多引擎路由搜索(DeepSeek、Exa、DuckDuckGo、Bing、Jina、GitHub 等)dsh plugin --profile web add dsh-web-search-pro

3.3 场景三:长期记忆与跨会话持久化

原生 DSH 的会话是独立的,每次新开会话 Agent 都会“失忆”。以下插件解决这个问题:

插件功能安装命令
dsh-mneme跨会话记忆,借鉴 Claude 的 Dream 机制,自动巩固(去重、合并、冲突裁决)dsh plugin --profile web add @modusensus/dsh-mneme
dsh-memory-evolve五轨记忆 + git 分支感知 + 技能自我进化dsh plugin --profile web add dsh-memory-evolve
dsh-native-memory原生、按工作区隔离的长期记忆dsh plugin --profile web add dsh-native-memory
dsh-thread无损捕获完整事件流(用户消息、助手回复、工具调用)并持久化到 SQLitedsh plugin --profile web add dsh-thread

选择建议:如果你想要一个“开箱即用”的记忆方案,选 dsh-mneme;如果你需要精细控制(如按 git 分支隔离记忆),选 dsh-memory-evolve

3.4 场景四:多 Agent 协作

单个 Agent 能力有限,多 Agent 协作能处理更复杂的任务:

插件功能安装命令
dsh-agent-teams当前会话 Agent 升职当“队长”,拆解任务、招募子 Agent、派发工作dsh plugin --profile web add dsh-agent-teams
dsh-team主会话作为 leader,派生常驻队友(teammate),成员间通过邮箱互发消息dsh plugin --profile web add dsh-team
dsh-ai-solution-council多个同职责 Agent 并行调查同一问题,再交叉评审和最终裁判dsh plugin --profile web add dsh-ai-solution-council
dsh-agency-agents17 个行业专家 Agent,在 Settings → Experts 中启用dsh plugin --profile web add dsh-agency-agents

典型用法:说一句“用 AgentTeams 调研一下 XX 技术方案”,当前会话的 Agent 会立马原地升职当队长,拉几个子 Agent 进组,拆任务、设依赖、互相发消息。

3.5 场景五:UI 增强与交互体验

原生 Web UI 比较简陋,以下插件能大幅改善体验:

插件功能安装命令
dsh-side-panel侧边栏集成文件浏览器、终端和 Git 审查dsh plugin --profile web add dsh-side-panel
dsh-genui助手回复内渲染交互式 UI:布局、图表、表单、测验、mermaid、3D 场景dsh plugin --profile web add dsh-genui
dsh-at-fileCodex 风格的 @file 文件引用,输入框直接搜索并引用工作区文件dsh plugin --profile web add dsh-at-file
dsh-visualize对话内生成式 UI:模型把交互式 HTML 卡片直接画进会话流dsh plugin --profile web add dsh-visualize
dsh-pet桌面宠物:精灵图动画、Agent 状态联动、番茄钟dsh plugin --profile web add dsh-pet
dsh-global-rules在设置面板中编辑 ~/.dsh/AGENTS.md 全局规则dsh plugin --profile web add dsh-global-rules

组合效果:安装 dsh-side-panel + dsh-at-file + dsh-genui 后,DSH 的界面体验会从“毛坯房”升级为“精装修”——侧边栏预览文件、@ 引用工作区文件、模型回复直接渲染图表和表单。

3.6 场景六:安全与权限控制

这是最重要的场景——因为插件运行在宿主进程中,拥有和用户一样的权限。

插件功能安装命令
dsh-plugin-vet信任流水线:静态规则给出 verdict + Agent 审计,输出评分卡dsh plugin --profile web add @jieai/dsh-plugin-vet
dsh-plugin-gate安装安全门:扫描 install scripts、权限、密钥和网络回调dsh plugin --profile web add dsh-plugin-gate
dsh-ssh-ops阻止不可逆操作(删文件、删库、格式化磁盘、terraform destroy 等)dsh plugin --profile web add dsh-ssh-ops
dsh-plugin-security-review对动态插件源码做静态安全审查并按安全优先策略拦截dsh plugin --profile web add dsh-plugin-security-review
dsh-code-security13 个审计技能 + 5 个扫描工具,新插件安装时自动审计dsh plugin --profile web add dsh-code-security

安全最佳实践:安装任何新插件前,让 dsh-plugin-vet 先走一遍审计流程;日常使用中启用 dsh-ssh-ops 防止 Agent 误执行破坏性命令。

3.7 场景七:工作流与定时任务

让 Agent 按计划自动执行任务:

插件功能安装命令
dsh-automation在 Settings → Scheduled Tasks 中管理定时编码任务dsh plugin --profile web add @michengai/dsh-automation
dsh-web-enhanced任务看板 + cron 调度 + git graphdsh plugin --profile web add dsh-web-enhanced
deepseek-flow工作流编排插件dsh plugin --profile web add "github:kanghelyu/dsh-deepseek-flow#main"

3.8 场景八:通知与集成

长时间运行任务时,及时获得通知:

插件功能安装命令
dsh-notification-center对话/任务完成、报错、等待批准触发浏览器通知 + 21 种音效dsh plugin --profile web add @lyhalal/dsh-notification-center
dsh-notify-windowsWindows Toast 通知dsh plugin --profile web add dsh-notify-windows
dsh-web-ui-notify桌面通知(审批/提问/回合完成)dsh plugin --profile web add github:omdsh-dev/dsh-web-ui-notify
dsh-plugin-tts用免费 Edge TTS 朗读 AI 回复dsh plugin --profile web add dsh-plugin-tts

3.9 场景九:模型与多模态扩展

插件功能安装命令
modlens为纯文本模型赋予图像识别能力——粘贴截图,插件调用 VLM 解析后交给文本模型dsh plugin --profile web add modlens
dsh-llm-fallbacks基于角色的模型重试备用策略(429 限流时自动切换 provider/model)dsh plugin --profile web add dsh-llm-fallbacks

特别说明modlens 是 DSH 生态中首款图像解析插件,设计初衷是“Give a text-only model sight”——相当于给纯文本模型装上了一双眼睛。

四、动手开发自己的插件

社区插件虽多,但总有满足不了特定需求的时候。以下从零开始带你理解插件开发。

4.1 插件的基本结构

在 DSH 中,插件是一个导出 apply 函数的 TypeScript 模块

import type { Context } from '@deepseek-ai/cordis'

export function apply(ctx: Context) {
  // 通过 ctx 注册能力
}

框架在加载时调用 apply,传入一个 ctx(上下文对象),你通过 ctx 注册能力。ctx.toolsctx.llmctx.agents 都是服务,其他插件通过 key 查找服务,而非导入具体实现。

4.2 开发一个最简单的工具插件

官方教程提供了一个逐步示例:

  1. 在 scratch-plugin/src/my-plugin.ts 中编写插件代码

  2. 使用 defineTool 定义工具,包含 schema 和 render

  3. 通过 ctx.tools.register 注册工具

更完整的参考模板位于官方仓库的 packages/fs/tool-fs

{
  "name": "@deepseek-ai/dsh-tool-fs",
  "description": "Model-facing filesystem tools (read, write, edit) over the DeepSeek Harness filesystem seam (ctx.fs)",
  "version": "0.1.0-rc.7",
  "publishConfig": {
    "access": "public"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/deepseek-ai/deepseek-harness.git",
    "directory": "packages/fs/tool-fs"
  },
  "type": "module",
  "main": "lib/index.js",
  "types": "lib/types/index.d.ts",
  "exports": {
    ".": {
      "types": "./lib/types/index.d.ts",
      "default": "./lib/index.js"
    },
    "./invariant": {
      "types": "./lib/types/invariant.d.ts",
      "default": "./lib/invariant.js"
    },
    "./src/*": "./src/*",
    "./package.json": "./package.json"
  },
  "files": [
    "lib/index.js",
    "lib/invariant.js",
    "lib/types/**/*.d.ts"
  ],
  "license": "MIT",
  "dependencies": {
    "diff": "^9.0.0",
    "@deepseek-ai/schemastery": "workspace:^"
  },
  "peerDependencies": {
    "@deepseek-ai/dsh-attachment": "workspace:^",
    "@deepseek-ai/dsh-fs": "workspace:^",
    "@deepseek-ai/dsh-invariants": "workspace:^",
    "@deepseek-ai/dsh-llm": "workspace:^",
    "@deepseek-ai/dsh-sandbox": "workspace:^",
    "@deepseek-ai/dsh-sandbox-policy": "workspace:^",
    "@deepseek-ai/dsh-session": "workspace:^",
    "@deepseek-ai/dsh-system-prompt": "workspace:^",
    "@deepseek-ai/dsh-tools": "workspace:^",
    "@deepseek-ai/dsh-user-approval": "workspace:^",
    "@deepseek-ai/cordis": "workspace:^"
  },
  "devDependencies": {
    "@deepseek-ai/dsh-agent": "workspace:^",
    "@deepseek-ai/dsh-agent-loop": "workspace:^",
    "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^",
    "@deepseek-ai/dsh-attachment": "workspace:^",
    "@deepseek-ai/dsh-fs": "workspace:^",
    "@deepseek-ai/dsh-fs-local": "workspace:^",
    "@deepseek-ai/dsh-fs-observation-policy": "workspace:^",
    "@deepseek-ai/dsh-invariants": "workspace:^",
    "@deepseek-ai/dsh-llm": "workspace:^",
    "@deepseek-ai/dsh-llm-deepseek": "workspace:^",
    "@deepseek-ai/dsh-sandbox": "workspace:^",
    "@deepseek-ai/dsh-sandbox-policy": "workspace:^",
    "@deepseek-ai/dsh-session": "workspace:^",
    "@deepseek-ai/dsh-system-prompt": "workspace:^",
    "@deepseek-ai/dsh-tools": "workspace:^",
    "@deepseek-ai/dsh-user-approval": "workspace:^",
    "@deepseek-ai/cordis": "workspace:^"
  }
}

4.3 判断插件运行面

开发前先判断插件运行在哪个“面”上:

运行面适用场景
Host工具、system prompt、HTTP、持久化、provider
Clientslot、Conversation Node、浏览器状态和浮层
Host + ClientHost 能力且需要 Web 可视化
仅 Host没有 Web 需求时不要声明 dsh.client

4.4 推荐的学习资源

资源说明
官方教程docs/user/develop/basic/index.zh.md——创建第一个插件并加载到 Web UI
Cordis 教程docs/cordis-tutorial/index.md——8 个由浅入深的可运行 Demo
实战手册deepseek-harness-handbook——17 章全中文教程,从安装到发布插件
详细教程ht426/deepseek-harness-tutorial——从源码出发、按模块组织的中文教程
插件开发 Skilldsh-plugin-development——执行型 Skill,覆盖 bundle/profile 契约、Service 与函数插件等

4.5 开发环境:DSH Forge

如果想在隔离环境中开发插件,可以使用 dsh-forge——面向 DSH 的独立插件开发环境:

DSH_HOME="$HOME/.dsh-forge" npx @deepseek-ai/dsh@0.1.0-rc.6 --profile forge

打开 Web UI 后选择 DSH Forge 开发者 Preset。

五、插件的发现与管理

5.1 发现插件

  • awesome-dsh-plugin:275 个插件,按功能分类(本文即基于此清单)

  • Dominic789654/awesome-deepseek-harness:另一份精选清单

  • GitHub 话题标签:搜索 #dsh

5.2 插件管理

查看已安装的插件:

# 查看 profile 的插件列表
ls ~/.dsh/profiles/web/node_modules/

卸载插件:

dsh plugin --profile web remove <package-name>

5.3 声明式配置:cordis.patch.yml

高级用户可以通过 ~/.dsh/profiles/web/cordis.patch.yml 精确控制每个插件的配置。一条 patch 按 id 定位某个条目并替换其整个 config,或插入新条目。

六、安全警示(必读)

在安装任何插件之前,请务必阅读以下内容

  1. 插件运行在宿主进程中,拥有和你一样的权限——能读你的文件、用你的凭据、访问网络

  2. 工具审批管不到插件自己的代码

  3. 目前插件的安装/更新/篡改路径没有签名、完整性校验或确认门控

安全操作指南

  • 安装前先看源码,不熟悉的插件尽量在隔离环境(不含密钥和重要资料)中试用

  • 优先安装 dsh-plugin-vet 或 dsh-plugin-gate 作为第一道防线

  • 确认插件仓库带有 #dsh GitHub topic

  • 锁定固定版本号,不建议使用 @latest 标签

七、总结

DeepSeek Harness 的“一切皆插件”架构,让它从一个“编码 Agent”变成了一台可以自由组装的 Agent 工作台。DSH 的插件生态还在快速膨胀(目前已超 275 个插件),本文不可能覆盖全部。建议收藏 awesome-dsh-plugin 作为日常参考,并定期关注新插件。

记住:在 DSH 的世界里,没有什么功能是不能用插件实现的——如果有,那就写一个。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐