把资料库能力拆成可单独装卸的六个插件包
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装;安装清单取自 pkg/dsh-client-ui-knowledge/package.json。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add jiumengya/dsh-knowledge-suite该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · market
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 49 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/9/24) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装;安装清单取自 pkg/dsh-client-ui-knowledge/package.json
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包@deepseek-ai/dsh-client-ui-knowledge(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/11 22:25:47
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 7 处,展示前 6 条)
- 读取本地文件pkg/dsh-knowledge-store/lib/index.js:159
case "markdown": return await readFile(path, "utf8"); - 读取本地文件pkg/dsh-knowledge-store/lib/index.js:160
case "html": return stripHtml(await readFile(path, "utf8")); - 读取本地文件pkg/dsh-knowledge-store/lib/index.js:172
const { text } = await extractText(await getDocumentProxy(new Uint8Array(await readFile(path))), { mergePages: true }); - 读取本地文件pkg/dsh-knowledge-store/lib/index.js:182
const { value } = await mammoth.extractRawText({ buffer: await readFile(path) }); - 读取本地文件pkg/dsh-knowledge-store/lib/index.js:256
documents = parseKnowledgeFile(await readFile(path, "utf8"), path); - 读取本地文件pkg/dsh-knowledge-store/lib/index.js:443
if ((await stat(target)).isDirectory()) {
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 六个包可单独装卸
- 离线验证脚本与夹具
DeepSeek Harness 知识(文档库)能力插件套件:六个包,可单独安装或卸载,幂等,含离线验证脚本与夹具
README
由 DeepSeek 最新模型翻译生成dsh-knowledge-suite — 资料库知识能力插件(DeepSeek Harness 桌面版)
把 DeepSeek Harness 的资料库(knowledge)能力从应用内置改为可单独装卸的桌面插件。装上之后,设置面板里出现「资料库」区块(上传 / 列表 / 删除文档),模型侧拿到 knowledge 工具,每轮对话开始前自动做一次文档召回注入;卸载之后功能退回应用内置默认状态,运行时文件与配置一字不差地还原。
六个包、不自行安装 npm 依赖、零业务行为变化——只是把上游硬编码在 dsh-base / dsh-web-app 里的那 5 行搬到插件侧重新注册(配置值原样保留,含你之前手加的 64MiB 单文件上传上限)。
展开完整文档(README 剩余 1 节)
dsh-knowledge-suite — 资料库知识能力插件(DeepSeek Harness 桌面版)
把 DeepSeek Harness 的资料库(knowledge)能力从应用内置改为可单独装卸的桌面插件。装上之后,设置面板里出现「资料库」区块(上传 / 列表 / 删除文档),模型侧拿到 knowledge 工具,每轮对话开始前自动做一次文档召回注入;卸载之后功能退回应用内置默认状态,运行时文件与配置一字不差地还原。
六个包、不自行安装 npm 依赖、零业务行为变化——只是把上游硬编码在 dsh-base / dsh-web-app 里的那 5 行搬到插件侧重新注册(配置值原样保留,含你之前手加的 64MiB 单文件上传上限)。
为什么需要「摘除」这一步
上游把知识能力写死在两个内置包的 cordis.patch.yml 里,随安装包分发:
| 内置包 | 行 id | 指向的包 |
| @deepseek-ai/dsh-base | knowledge-store | dsh-knowledge-store |
| @deepseek-ai/dsh-base | tool-knowledge | dsh-tool-knowledge |
| @deepseek-ai/dsh-base | knowledge-recall | dsh-knowledge-recall |
| @deepseek-ai/dsh-web-app | knowledge-controller | dsh-api-knowledge-controller |
| @deepseek-ai/dsh-web-app | ui-knowledge | dsh-client-ui-knowledge |
只要这 5 行还在上游,插件再插一份就会撞车。三种插法的实测结果(2026-09-15 冷启复现):
| 做法 | 结果 |
| 同 id 再插一行 | duplicate loader entry id: knowledge-store → 进程起不来 |
| 不摘除、用一个新 id 插 | service "knowledge" has been registered / tool "knowledge" is already registered → 进程起不来 |
| 禁用上游 5 行 + 用新 id 插 | ✅ 冷启通过(本插件采用的方案) |
所以 install.ps1 干的事是:备份 → 复制插件包 → 从上游摘除那 5 行 → 由插件重新注册。摘除是硬性前提,不是可选优化。
摘除逻辑 fail-loud:如果上游只摘到 2/3 行(结构变了),脚本会中止并且不改动该文件,而不是留下一个半残的运行时。
安装 / 卸载
安装(右键 install.ps1 → 使用 PowerShell 运行,或):
powershell -ExecutionPolicy Bypass -File install.ps1
五步:
1. 备份到 %LOCALAPPDATA%\DshNative\backup-dsh-knowledge-suite-(desktop.yml + 两个上游 cordis.patch.yml + 六个运行时包,写 manifest.json 记录 md5)
2. 复制六个插件包到 %LOCALAPPDATA%\DshNative\runtime\node_modules\@deepseek-ai\
3. 从 dsh-base 摘除 3 行、从 dsh-web-app 摘除 2 行
4. 改写桌面 overlay %LOCALAPPDATA%\DshNative\desktop.yml:清掉旧的插件标记块(幂等)、接管那条已失去目标的 64MiB knowledge-store 补丁行、追加插件注册块
5. 汇总打印包名 / 备份路径 / 回滚方式
重启 DeepSeek Harness 后生效。
卸载(回滚):
powershell -ExecutionPolicy Bypass -File uninstall.ps1
指定某次备份: powershell -ExecutionPolicy Bypass -File uninstall.ps1 -Backup
从最近一次备份还原两个上游 cordis.patch.yml 与六个运行时包,摘除桌面 overlay 的插件块,把 64MiB 补丁行原样放回。结果 = 本插件没装过。
幂等与覆盖安装
- install.ps1 可反复运行:会先备份当前状态,再去重写入。
- 应用覆盖安装后若上游那 5 行回来了(安装包会把 dsh-base / dsh-web-app 覆盖回原样),知识区块会消失或报重复注册——再跑一次 install.ps1 即可修复,不必先卸载。
六个包的分工
| 包 | 角色 |
| @deepseek-ai/dsh-knowledge | 抽象服务缝:定义 ctx.knowledge 接口(文档库的契约层) |
| @deepseek-ai/dsh-knowledge-store | 本地服务实现:持久化 JSON 文档库,PDF / Word / HTML 抽取,向量或词法检索 |
| @deepseek-ai/dsh-tool-knowledge | 模型侧工具:把 knowledge 工具暴露给模型(搜索文档库) |
| @deepseek-ai/dsh-knowledge-recall | 首步召回:每轮对话开始前自动检索并注入相关片段(firstStepOnly) |
| @deepseek-ai/dsh-api-knowledge-controller | 远程宿主:文档库 wire domain 的服务端(上传 / 列表 / 删除) |
| @deepseek-ai/dsh-client-ui-knowledge | 前端区块:设置面板「资料库」UI(声明 dsh.client,走 client.js bundle 路由) |
dsh-retrieval(检索原语)与 dsh-atomic-write(原子写)是共享原语,仍留在上游——它们被 memory 等其它能力共用,不属于本插件。插件只接管上面这六个。
零行为变化
pkg/ 里的六个包是从运行时已部署的包字节级复制的(79 个文件 md5 全一致),不是从仓库源码重新构建。这样保证:
- 插件启用后与「上游内置」在语义上完全等价,不改一行业务代码;
- 唯一的差异是注册位置(内置 → 插件),以及 ui-knowledge/client.js 与仓库 lib/ 版本的模块 import 顺序不同(语义等价,改用运行时字节正是为了避开这个差异)。
配置(desktop.yml)
插件注册块(install.ps1 写入 %LOCALAPPDATA%\DshNative\desktop.yml):
- insert:
- id: knowledge-store
name: '@deepseek-ai/dsh-knowledge-store'
config:
root: !!js dshHomePath('knowledge')
minScore: 0.35
chunkSize: 1200
maxUploadBytes: 67108864 # 单文件上传上限 64MiB(默认 32MiB)
- id: tool-knowledge
name: '@deepseek-ai/dsh-tool-knowledge'
config:
maxResults: 8 # 单次搜索返回条数
- id: knowledge-recall
name: '@deepseek-ai/dsh-knowledge-recall'
config:
topK: 5 # 首步召回条数 minScore: 0.35 firstStepOnly: true
- id: knowledge-controller
name: '@deepseek-ai/dsh-api-knowledge-controller'
- id: ui-knowledge
name: '@deepseek-ai/dsh-client-ui-knowledge'
root: !!js dshHomePath('knowledge') → 文档库落在 ~\.dsh\knowledge。
验证
test\ 下四个脚本,全部可直接运行、不需要 API key:
powershell -ExecutionPolicy Bypass -File test\verify-all.ps1
| 脚本 | 覆盖 | 断言数 |
| dry-run-strip.ps1 | 摘除算法离线单测:以 test\fixtures\ 里的上游原文快照为输入,跑与 install 相同的 Remove-PatchRows;断言目标 5 行消失、邻居行(memory-* / ui-)全留、重复执行是空操作、摘除处没吞掉邻居行的 config | 24 |
| verify-install.ps1 | 静态 + 配置层:六个包装进运行时且与 pkg/ 字节一致、上游 5 行确实摘除、桌面 overlay 有标记块且无孤立 knowledge-store 行、dsh --dump-config 里每个知识 id 恰好 1 次且无 patch 警告 | 28 |
| verify-runtime.ps1 | 冷启冒烟 + 客户端取件:45s 内出现 dsh web: http://127.0.0.1: 就绪行、stderr 为空、进程存活、模块清单列出 dsh-client-ui-knowledge/client.js、该 bundle 取到 HTTP 200 且含知识区块实现 | 6 |
verify-all.ps1 依次跑三个脚本各自子进程并汇总(共 58 项断言,另有 3 个脚本结果汇总项)。安装脚本会在复制或改写前检查宿主 runtime 的 22 项运行时依赖;缺依赖时直接拒绝安装,避免留下半安装状态。
为什么用夹具而不是运行时活文件:装完之后运行时的那 5 行已经被摘掉了,拿活文件当输入只会测出「已经摘过了」,测不到算法本身。夹具是安装前从备份复制的上游 rc.2 原文快照。
目录结构
dsh-knowledge-suite\
├─ install.ps1 # 安装(备份 → 复制 → 摘除 → 注册),幂等 ├─ uninstall.ps1 # 卸载(从备份还原上游 + 摘除插件块) ├─ README.md # 本文(英文) ├─ README.zh.md # 中文说明 ├─ README.i18n.yaml # 双语配对一致性记录
├─ docs\
│ ├─ knowledge-plugin-doc.html # 技术文档(三张图 + 摘除前后对比) │ └─ _shared\js\mermaid.min.js # 内置 Mermaid,供文档中两张图使用 ├─ pkg\ # 六个插件包(运行时字节级复制,79 文件 / 225 KB) │ ├─ dsh-knowledge\ (15 文件) │ ├─ dsh-knowledge-store\ (19) │ ├─ dsh-tool-knowledge\ (11) │ ├─ dsh-knowledge-recall\ (11) │ ├─ dsh-api-knowledge-controller\(11) │ └─ dsh-client-ui-knowledge\ (12)
├─ tools\
│ ├─ patch-rows.ps1 # 摘除/计数助手(按 id 摘整行含 config 子树与上方注释块) │ └─ copy-tree.mjs # 递归复制(绕开本机失效的 fs.cpSync)
└─ test\
├─ dry-run-strip.ps1 # 摘除算法离线单测 ├─ verify-install.ps1 # 静态 + 配置层验证 ├─ verify-runtime.ps1 # 冷启 + 客户端取件验证 ├─ verify-all.ps1 # 汇总跑三个 └─ fixtures\ # 上游 rc.2 cordis.patch.yml 原文快照
注意事项
- 仅 Windows + DshNative 桌面版(%LOCALAPPDATA%\DshNative)。安装前需先启动过一次应用,让运行时与 desktop.yml 生成出来。
- .ps1 必须带 UTF-8 BOM:Windows PowerShell 5.1 会把无 BOM 的脚本按 GBK 解析,中文注释变乱码直接语法错误。本插件所有脚本已带 BOM,改脚本时请保留。
- 不要手工删改 desktop.yml 里的 >>> dsh-knowledge-suite BEGIN/END 块——卸载依赖它定位。
- 卸载是从备份还原而非反向推导:如果备份目录被删掉,卸载会中止(fail-loud)而不是猜。
- 备份目录 backup-dsh-knowledge-suite- 确认无误后可自行删除;卸载后建议保留一份以防万一。
相关
- 技术文档(能力分布图 / 三条语义陷阱详解 / 摘除前后对比):docs/knowledge-plugin-doc.html预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
jiumengya/dsh-knowledge-suite
把资料库能力拆成可单独装卸的六个插件包
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,225未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,370已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13941 个插件含 PR 收录与…
★ 355已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这是你的仓库?认领条目