前言¶
在 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)。