🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

资料库插件套件 jiumengya/dsh-knowledge-suite

DeepSeek Harness
jiumengya49 天前有提交已提供中文文档扫描:含敏感能力

把资料库能力拆成可单独装卸的六个插件包

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
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 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
预览分享卡片长什么样 ↓jiumengya/dsh-knowledge-suite
分享 · DeepSeek Harness Hub
jiumengya/dsh-knowledge-suite

把资料库能力拆成可单独装卸的六个插件包

这是你的仓库?认领条目

回到顶部