dsh-knowledge-base-local:本地 Markdown 知识库与混合检索

前言

在 DSH 里做长期记忆,常见做法是往对话里塞文件路径、或依赖外部向量库。路径会随项目切换而变,专有格式也不利于人工核对。若希望知识库落在自己选的目录、以 Markdown 为真源、又能被智能体工具、CLI 和 Web 面板统一读写,可以看一下社区插件 dsh-knowledge-base-local(维护者 CodfishYao,社区目录分类为「记忆」)。

这是什么

dsh-knowledge-base-local 是面向 DeepSeek Harness(DSH) 的本地知识库插件:数据以纯 Markdown 存储,支持混合检索(BM25 + 向量)、PDF/Office 文本抽取、可选静态加密与多用户权限,并可通过 MCP 供外部客户端访问。设计强调三点:存储路径由用户指定、任意模型可直接读 Markdown、文本与附件均可入库并自动分块与向量化。运行时仅依赖 Node 内置模块,安装时无需编译。

核心功能

下面按 README 已列能力归纳,不展开未在资料中出现的细节。

存储与目录

  • 每篇文档为 docs/<id>.md(含 frontmatter),并生成 CATALOG.md 供模型与人类浏览。
  • 根目录与偏好写在 DSH 用户数据目录(默认 ~/.dsh)下的 knowledge-base/settings.json,与工作区、profile 解耦,换项目不丢配置。

检索与向量模式

  • 混合检索:BM25、向量余弦相似度,以及标题/子串加分;结果带文档 id、行号与片段。
  • 三种向量模式:local(离线 TF-IDF 特征哈希)、llm(模型增强 + 本地向量)、api(OpenAI 兼容嵌入,失败时回退 local)。

智能体与入口

  • 六个工具:kb_search、kb_read、kb_list、kb_add、kb_import、kb_manage(含集合、回收站、重索引、加密与 RBAC、MCP 信息等子操作)。
  • 库变更后,系统提示中会附带根路径、规模、集合等摘要,无需每次手动粘贴路径。

导入与监听

  • 支持文本、Markdown、代码、网页 URL、二进制附件;inbox/ 目录可自动导入并监听变更(含 PDF/Office)。
  • PDF:.pdf;Office:.docx、.xlsx、.pptx(旧版 .doc/.xls/.ppt 不解析,需另存为新格式)。单文件默认上限 import.maxFileBytes(8 MiB)。

安全与协作

  • 静态加密:AES-256-GCM;口令经 scrypt 派生 KEK 包裹数据密钥。
  • 多用户 RBAC 默认关闭:owner > admin > editor > reader,可按集合收窄权限;API token 为 SHA-256 哈希存储。
  • 口令经智能体参数传入会进入会话日志;更稳妥的方式是 Web 面板 Settings → Knowledge base → Security。

其他

  • 软删除与版本(默认保留 20 版)、集合与标签、MCP(stdio / Streamable HTTP / Harness 内 POST …/kb-mcp)。
  • 已知限制以仓库 README「Known limitations」为准;当前 package 版本为 1.2.5,许可证 MIT。

安装与启用

环境要求:Node.js ≥ 22,且本机已运行 DeepSeek Harness。

官方安装命令(资料原文):

dsh plugin --profile web add dsh-knowledge-base-local

安装后可在 Web 侧使用 Settings → Knowledge base 配置;CLI 可通过包内 kb.mjs 或全局 dsh-kb 调用(与插件共用 src/,不强制 Harness 进程常驻)。

典型用法

1. 指定知识库根目录

在 Web 中选择文件夹,或对智能体说明将知识库设为某路径;也可用 CLI:

node kb.mjs config --root /path/to/knowledge

2. 日常检索与写入

node kb.mjs status
node kb.mjs search "hybrid retrieval" --limit 5
node kb.mjs add --title "Title" --text "Body" --collection notes --tags a,b
node kb.mjs import /path/Notes --collection notes
node kb.mjs import /path/Papers/report.pdf --collection papers

导入 PDF 时正文会带 extracted from … 类来源说明;解析失败会保留附件并记录原因,不会静默丢弃。

3. 加密库解锁

库处于锁定状态时 CLI 会明确报错;先解锁:

node kb.mjs unlock

也可通过环境变量 DSH_KB_PASSPHRASE 或 --passphrase(注意安全场景优先 Web 面板)。

4. 外部 MCP 客户端(示例)

stdio 方式(资料示例,无需 Harness 运行):

node mcp-stdio.mjs
node mcp-stdio.mjs --root /path/to/knowledge --readonly

适用场景与注意

适合谁

  • 需要在 DSH 智能体对话中稳定检索个人/团队笔记、文档与导入资料的用户。
  • 希望数据以 Markdown 落地、可离线 local 向量、或按需接 llm / api 嵌入的场景。
  • 要把同一知识库接到 Cursor、Claude Desktop 等 MCP 客户端的开发者。

务必注意

  • 插件在 当前 DSH 进程权限 下运行,可读写你配置的知识库路径及导入的文件;安装前应阅读 GitHub 仓库 源码与 MIT 许可证,确认路径与加密策略符合你的安全要求。
  • 社区目录 skillhub.cn 插件页 与 GitHub 由社区维护,并非 DeepSeek / 幻方官方应用商店;DSH 生态遵循「一切皆插件」,以仓库 README 为权威用法说明。

结尾

dsh-knowledge-base-local 把「可编辑的 Markdown 目录 + 混合检索 + 多入口(Agent / CLI / Web / MCP)」收在一个插件里,适合作为 DSH 下的本地长期记忆层。进一步了解功能与配置字段,请查阅仓库 README(含中文版 README.zh.md)。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜