DeepSeek Harness 插件 · MIT

把资料留在本地
让每个模型都读得懂

一个给 DSH 的本地知识库:纯 Markdown 就是数据本身, BM25 与向量混合检索,PDF / Office 自动抽取正文, 支持通过 MCP 把同一份资料交给任何客户端。

  • v1.2.5最新版本
  • ≥ Node 22运行环境
  • 0运行时依赖
  • AES-256GCM 静态加密
快速安装 dsh plugin --profile web add dsh-knowledge-base-local
设置 → 知识库 已连接
根目录
D:\Notes\Knowledge
规模
1,282 篇 · 33,773 块
向量
api

混合检索:BM25 字面 + 向量语义 + 标题加成

    6 条结果 · 平均 12 ms kb_search

    真实面板的交互示意:输入关键词,观察两路分数如何合成。

    01 / 设计目标

    三个目标,自由使用

    01

    位置完全自定义

    任何绝对路径,随时可改。配置写在用户目录,不在工作区里,换项目、换 profile 都不会丢。

    rootDir: D:\Notes\Knowledge
    02

    任何模型都能读

    每篇文档是 docs/<id>.md 加 frontmatter,外加一份生成的 CATALOG.md。用记事本也能打开。

    docs/k7f2a.md
    03

    什么都能存

    文本、代码、网页、任意二进制附件;自动切块并向量化,导入 PDF 与 Office 时正文一并抽出。

    pdf · docx · xlsx · pptx

    02 / 能力

    三条入口,一份数据

    Agent 工具、命令行、Web 面板互相独立,任何一条都能完成同样的工作。

    三个入口,同一套 src/

    • Agent 工具kb_search · kb_read · kb_list · kb_add · kb_import · kb_manage
    • 命令行node kb.mjs search "混合检索" --limit 5
    • Web 面板设置 → 知识库,六个标签页覆盖全部操作

    不需要启动 Harness,CLI 也能单独跑。

    混合检索,结果可引用

    score=
    0.55×向量余弦相似度
    +0.45×BM25 / (BM25 + 6)
    +标题 / 子串加成

    每条结果带文档 id、行号与片段,能直接引用到具体位置;同一文档最多取两块。

    docIdpathlineStart / lineEndsnippetscoresemanticlexical

    三种向量模式

    local离线 FNV-1a 特征哈希,确定性、可复现
    llm模型提炼摘要/关键词后再编码
    apiOpenAI 兼容 embeddings,失败退回 local

    默认 local:离线、确定性,但不算语义。切换模式或分块参数后,跑一次 reindex --full 重建。

    PDF / Office 正文抽取

    .pdf.docx.xlsx.pptx

    魔术字节优先、扩展名兜底。解析失败不会丢文件:保留附件,并记录 extract 原因。

    旧版 .doc/.xls/.ppt 不解析,会明确提示另存为新格式。

    MCP:交给别的客户端

    { "mcpServers": {
      "knowledge-base": {
        "command": "node",
        "args": ["…/mcp-stdio.mjs"]
      }
    } }

    stdio 与 Streamable HTTP 两种接法,工具名、参数、返回与 Agent 侧完全一致。

    加密与多用户

    owneradmineditorreader

    每篇文档 AES-256-GCM 另封;口令只通过 scrypt 派生的 KEK 包裹随机数据密钥。改口令只重包密钥,不必重写语料。

    默认关闭,单用户行为与未安装时完全一致。

    不怕手滑

    • 删除只是移入 trash/,可还原
    • 每次编辑保留版本,默认 20 份
    • 清空回收站与 wipe 需要二次确认
    • inbox/ 里丢文件即自动导入
    “Markdown 就是数据本身,
    没有锁定,也不需要一个账号。”
    — 插件的三个设计目标之一

    03 / 安装

    装好它,只要几步

    需要 Node.js ≥ 22 与运行中的 DeepSeek Harness;安装不需要编译。

    1. 在 GUI 点击「插件」→「添加插件」
    2. 输入包名 dsh-knowledge-base-local
    3. 点击「安装」,等待 Host 插件注入完成
    4. 打开「设置 → 知识库」,选一个目录
    !

    口令别交给 Agent。输入给 Agent 的口令会进入会话日志。优先在 Web 面板「设置 → 知识库 → 安全」里操作。

    04 / 安全与边界

    它保护什么,不保护什么

    保护

    • 所有写入都限制在根目录内,kb_read 只接受库内 id 与路径。
    • /kb-api 默认同源;跨源请求必须带 Bearer token,否则 403。
    • 口令与 API Key 不会出现在 CATALOG.md、kb.json 或索引里。
    • 令牌只保存 SHA-256 哈希,明文仅在签发时展示一次。
    • 加密库处于锁定状态时,读写会直接报错,而不是返回密文。

    不保护 / 做不到

    • 加密没有找回机制:口令丢失,语料永久不可读。
    • 元数据默认明文(标题、标签、摘要、文件名)。
    • RBAC 是同机身份层,不是租户隔离。
    • 扫描版 PDF 需要 OCR;旧版二进制 Office 不解析。
    • 版本只保留正文,不含附件历史。

    先在一个临时目录里试用

    建一个空文件夹当根目录,导入几篇笔记,确认检索符合直觉之后再迁入真实资料。