位置完全自定义
任何绝对路径,随时可改。配置写在用户目录,不在工作区里,换项目、换 profile 都不会丢。
rootDir: D:\Notes\Knowledge
DeepSeek Harness 插件 · MIT
一个给 DSH 的本地知识库:纯 Markdown 就是数据本身, BM25 与向量混合检索,PDF / Office 自动抽取正文, 支持通过 MCP 把同一份资料交给任何客户端。
dsh plugin --profile web add dsh-knowledge-base-local
混合检索:BM25 字面 + 向量语义 + 标题加成
真实面板的交互示意:输入关键词,观察两路分数如何合成。
01 / 设计目标
任何绝对路径,随时可改。配置写在用户目录,不在工作区里,换项目、换 profile 都不会丢。
rootDir: D:\Notes\Knowledge
每篇文档是 docs/<id>.md 加 frontmatter,外加一份生成的 CATALOG.md。用记事本也能打开。
docs/k7f2a.md
文本、代码、网页、任意二进制附件;自动切块并向量化,导入 PDF 与 Office 时正文一并抽出。
pdf · docx · xlsx · pptx
02 / 能力
Agent 工具、命令行、Web 面板互相独立,任何一条都能完成同样的工作。
src/不需要启动 Harness,CLI 也能单独跑。
每条结果带文档 id、行号与片段,能直接引用到具体位置;同一文档最多取两块。
默认 local:离线、确定性,但不算语义。切换模式或分块参数后,跑一次 reindex --full 重建。
魔术字节优先、扩展名兜底。解析失败不会丢文件:保留附件,并记录 extract 原因。
旧版 .doc/.xls/.ppt 不解析,会明确提示另存为新格式。
{ "mcpServers": {
"knowledge-base": {
"command": "node",
"args": ["…/mcp-stdio.mjs"]
}
} }
stdio 与 Streamable HTTP 两种接法,工具名、参数、返回与 Agent 侧完全一致。
每篇文档 AES-256-GCM 另封;口令只通过 scrypt 派生的 KEK 包裹随机数据密钥。改口令只重包密钥,不必重写语料。
默认关闭,单用户行为与未安装时完全一致。
trash/,可还原wipe 需要二次确认inbox/ 里丢文件即自动导入“Markdown 就是数据本身,— 插件的三个设计目标之一
没有锁定,也不需要一个账号。”
03 / 安装
需要 Node.js ≥ 22 与运行中的 DeepSeek Harness;安装不需要编译。
dsh-knowledge-base-local$ dsh plugin --profile web add dsh-knowledge-base-local
从本地目录或 tarball 安装时,把包名换成绝对路径即可;install_bundle 会读取 cordis.patch.yml 并写入当前 profile。
口令别交给 Agent。输入给 Agent 的口令会进入会话日志。优先在 Web 面板「设置 → 知识库 → 安全」里操作。
04 / 安全与边界
kb_read 只接受库内 id 与路径。/kb-api 默认同源;跨源请求必须带 Bearer token,否则 403。CATALOG.md、kb.json 或索引里。