dsh-notebook-knowledge-studio:在 DSH Web UI 里跑一个 NotebookLM 式本地知识工作台

前言

做智能体开发的人手头通常都攒了不少材料:本地文档、抓下来的网页、随手粘贴的片段。想用它们做问答和整理,常见做法是上传到某个在线笔记服务,再靠它的 AI 功能——代价是数据要离开本机。

如果你已经在用 DeepSeek Harness(dsh),并且认同它「一切皆插件」的思路,其实可以在 Web UI 里直接挂一个本地优先的知识工作台。下面介绍的 iZY3/dsh-notebook-knowledge-studio 就是这样一个插件:流程对标 NotebookLM,数据存在本地 Markdown 里。

这是什么

dsh-notebook-knowledge-studio 由 iZY3 维护,MIT 协议,当前版本 0.1.1。它以双层 Cordis 插件的形式运行于 dsh 的 Web UI,提供 Notebook → Sources → Chat → Studio 四段式流程:建笔记本、收集来源、带引用地问答、产出结构化成品。

按插件自己的说法,它是一个「NotebookLM 式本地知识工作台」——对标的是 NotebookLM 的工作流,但存储和检索都留在本地。

核心功能

Sources:来源收集与去重

支持四类来源入口:

  1. 本地文件
  2. URL(抓取并提取正文)
  3. 粘贴文本
  4. 网页搜索发现

来源按内容 hash 去重,去重策略分 updateanyway 两种。Web 来源支持 Refresh,重新抓取即可更新。

Chat:带引用的检索问答

检索用 BM25,中文走二元分词;生成由 LLM 完成。回答中带 [n] 形式的引用标记,点击引用会打开来源抽屉并高亮对应引文,可以逐条核对。证据不足时插件会明确说明,而不是编一段出来。

Studio:结构化产出

Studio 负责把笔记本内容加工成成品,包括:思维导图、报告(BLUF、学习指南、FAQ、时间线等)、闪卡、测验、信息图、幻灯、数据表格(MD+CSV)。产物按量化规范产出,并带 provenance,可追溯到来源。

存储与多模态

知识以 OKF v0.2 Markdown 存储,local-first,可以整体迁移;检索索引只是可重建的缓存,丢了不影响数据本身。

多模态方面,图片、音视频、PDF 来源会被自动标记为待转写,由已挂载的 Qwen-MM-Plugins MCP 处理后写回。没有检测到 MCP 时如实降级,停在待转写状态,不会伪造内容。

UI

主界面以 conversation.view 视图标签的形式接入。三栏布局可拖宽,键盘 ←/→ 可调,宽度会被记住;窄容器下自动堆叠。

安装与启用

标准安装命令:

dsh plugin --profile web add <本仓库路径或 github:用户名/仓库名>

安装需要一个已知问题的绕过方案:Windows 下 dsh plugin add 对含空格的路径会拆断。如果碰到,可以这样做:

  1. 进入 ~/.dsh/profiles/web 目录,直接执行 pnpm add "<绝对路径>"
  2. 把包名 dsh-notebook-knowledge-studio 追加进该目录 package.json 的 dsh.profile.bundles 数组

数据根目录由仓库内 cordis.patch.ymlroot 配置指定,改成你的工作区路径即可。

运行环境依赖

插件对环境的依赖是逐级降级的,缺失某项时行为明确:

依赖 用途 缺失时的行为
dsh web profile 宿主:tools/webServer/llm/web 服务 无法运行
LLM 路由(如 deepseek-official) 问答与 Studio 生成质量 自动降级:抽取式回答/模板产物
dsh web 服务(ctx.web) URL 导入、网页搜索 相关操作报错,其余正常
Qwen-MM-Plugins MCP 多模态来源转写 停在待转写状态,不影响其他功能
pnpm 插件安装(dsh plugin add 转发) 无法安装;已装插件不受影响

也就是说,最小可用条件是 dsh web profile;LLM 路由缺失时功能不会死,只是回答和产物质量降级为抽取式或模板形式。

典型用法

装好之后,先在 Web UI 打开插件的视图标签,建 Notebook、添加 Sources,然后在 Chat 里提问、在 Studio 里产出。两条开发侧的验收命令:

npm test              # 23 个单元/集成测试(node --test)
node scripts/e2e.mjs  # API 端到端验收(需 dsh web 已启动)

第一条跑单元与集成测试,第二条做端到端验收,前提是 dsh web 已经启动。

代码结构上值得一提:host 半(lib/*.mjs + lib/index.js)零外部包导入,承担 tools 和 HTTP API;client 半(lib/client.js)是纯 DOM 实现,走 __ModuleLoader__ 工厂格式,没有构建链。package.json 标记为 private: true,不是一个发布到 npm 的库,而是随 dsh profile 分发的插件。

适用场景与注意

适合的人群很明确:已经在跑 dsh、希望把问答和资料整理留在本地、不想把文档传给第三方服务的开发者。如果你主要在网页端用 NotebookLM 且不在意数据出境,这个插件对你没有额外收益。

使用前有两点务必留意:

  1. 插件以当前 dsh 进程的权限运行,它能访问你的进程能访问的一切。安装前先读一遍源码和许可证(MIT),确认没有问题再装。
  2. 检查上面那张依赖表,尤其是 LLM 路由和 Qwen-MM-Plugins MCP 是否已挂载——它们决定了问答质量和多模态来源能不能真正转写。

小结

dsh-notebook-knowledge-studio 把 NotebookLM 式的「来源—引用问答—结构化产出」流程搬进了 dsh 的 Web UI,数据以 OKF v0.2 Markdown 存在本地,索引可重建、产物带 provenance。对想在自己环境里做本地知识工作的 DSH 用户来说,是一个值得试的插件。

  • 目录页:https://www.skillhub.cn/plugins/iZY3/dsh-notebook-knowledge-studio
  • GitHub:https://github.com/iZY3/dsh-notebook-knowledge-studio
羽毛球分组比赛记分
小程序二维码

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

小夜