前言¶
做智能体开发的人手头通常都攒了不少材料:本地文档、抓下来的网页、随手粘贴的片段。想用它们做问答和整理,常见做法是上传到某个在线笔记服务,再靠它的 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:来源收集与去重¶
支持四类来源入口:
- 本地文件
- URL(抓取并提取正文)
- 粘贴文本
- 网页搜索发现
来源按内容 hash 去重,去重策略分 update 和 anyway 两种。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 对含空格的路径会拆断。如果碰到,可以这样做:
- 进入
~/.dsh/profiles/web目录,直接执行pnpm add "<绝对路径>" - 把包名
dsh-notebook-knowledge-studio追加进该目录 package.json 的dsh.profile.bundles数组
数据根目录由仓库内 cordis.patch.yml 的 root 配置指定,改成你的工作区路径即可。
运行环境依赖¶
插件对环境的依赖是逐级降级的,缺失某项时行为明确:
| 依赖 | 用途 | 缺失时的行为 |
|---|---|---|
| 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 且不在意数据出境,这个插件对你没有额外收益。
使用前有两点务必留意:
- 插件以当前 dsh 进程的权限运行,它能访问你的进程能访问的一切。安装前先读一遍源码和许可证(MIT),确认没有问题再装。
- 检查上面那张依赖表,尤其是 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