还在把 DeepSeek Harness 当聊天框?275 个插件正在把它变成你的“AI 外包团队”,总有一套组合能让它变成你的专属 Agent 工作台
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.tools、ctx.llm、ctx.sessions |
| 服务依赖 (inject) | 插件声明所需服务后,等待服务就绪才启动 |
| 类型化事件 | 通过 emit、waterfall、parallel、serial 四种模式分发 |
| 可逆副作用 | 插件卸载时,其注册的所有能力自动撤销 |
其中最关键的是“可逆副作用”——插件安装后会留下监听器、服务、定时器等副作用,而 Cordis 负责记录这些变化,并在插件卸载时完整撤销。这意味着你可以随意尝试插件,不满意就卸载,不会留下“垃圾”。
1.3 Profile 与 Bundle:插件的“组装方式”
DSH 的插件组合通过 Profile 和 Bundle 两个概念来管理:
-
Profile:存放在
~/.dsh/profiles/中的具名组装,如web、headless。它定义了启动时加载哪些插件以及加载顺序。 -
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 Code | dsh 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/WebKit | dsh 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 | 无损捕获完整事件流(用户消息、助手回复、工具调用)并持久化到 SQLite | dsh 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-agents | 17 个行业专家 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-file | Codex 风格的 @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-security | 13 个审计技能 + 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 graph | dsh 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-windows | Windows 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.tools、ctx.llm、ctx.agents 都是服务,其他插件通过 key 查找服务,而非导入具体实现。
4.2 开发一个最简单的工具插件
官方教程提供了一个逐步示例:
-
在
scratch-plugin/src/my-plugin.ts中编写插件代码 -
使用
defineTool定义工具,包含 schema 和 render -
通过
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 |
| Client | slot、Conversation Node、浏览器状态和浮层 |
| Host + Client | Host 能力且需要 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——从源码出发、按模块组织的中文教程 |
| 插件开发 Skill | dsh-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,或插入新条目。
六、安全警示(必读)
在安装任何插件之前,请务必阅读以下内容:
-
插件运行在宿主进程中,拥有和你一样的权限——能读你的文件、用你的凭据、访问网络
-
工具审批管不到插件自己的代码
-
目前插件的安装/更新/篡改路径没有签名、完整性校验或确认门控
安全操作指南:
-
安装前先看源码,不熟悉的插件尽量在隔离环境(不含密钥和重要资料)中试用
-
优先安装
dsh-plugin-vet或dsh-plugin-gate作为第一道防线 -
确认插件仓库带有
#dshGitHub topic -
锁定固定版本号,不建议使用
@latest标签
七、总结
DeepSeek Harness 的“一切皆插件”架构,让它从一个“编码 Agent”变成了一台可以自由组装的 Agent 工作台。DSH 的插件生态还在快速膨胀(目前已超 275 个插件),本文不可能覆盖全部。建议收藏 awesome-dsh-plugin 作为日常参考,并定期关注新插件。
记住:在 DSH 的世界里,没有什么功能是不能用插件实现的——如果有,那就写一个。
更多推荐



所有评论(0)