前言¶
在 DeepSeek Harness(DSH)里做研究或写综述时,助手往往只能看到你粘贴的片段,或依赖工作区里的零散文件;本地 PDF 论文通常还要切到外部阅读器,再手动把摘要、章节拷回对话。社区插件 dsh-paper-reader(维护者 siluwr,分类:客户端)把「论文库 + 侧边栏阅读 + 助手工具」收进 Harness:只处理本机 PDF / Markdown / 纯文本,不做在线抓取,PDF 文本抽取用纯 Node 自研实现,不依赖第三方 PDF 库、也不发起网络请求。
下面介绍它是什么、能做什么、如何安装,以及面板与 paper_read / paper_list / paper_scan 的典型用法。
这是什么¶
dsh-paper-reader 是一个 DSH bundle 插件(Host 半注册工具与本地 HTTP,Client 半提供侧边栏面板)。解析结果缓存在 $DSH_HOME/paper-reader/,跨会话、跨工作区保留;助手通过工具按章节读取与面板同一批论文。
设计取舍在 README 里写得很清楚:本插件不做 arXiv 等在线抓取;那需要 ctx.web.fetch 的 provider 与网络,超出本插件范围。
- 目录页:https://www.skillhub.cn/plugins/siluwr/dsh-paper-reader
- 源码:https://github.com/siluwr/dsh-paper-reader
- 许可证:MIT(
package.json中版本为 1.0.0)
核心功能¶
论文库与缓存¶
| 能力 | 说明 |
|---|---|
| 持久化 | 索引与结构化正文写在 $DSH_HOME/paper-reader/;可通过环境变量 DSH_PAPER_READER_DIR 把整个库挪到其他目录 |
| 管理 | 支持收藏、移除、筛选;源文件只读,不会被修改或删除 |
库内主要文件:library.json(索引)、papers/<key>.json(结构化正文)、papers/<key>.md(可读导出,也可配合 Harness 的 read 工具使用)。
侧边栏「论文阅读」面板¶
安装后,左侧边栏底部会出现「论文阅读」图标(插件显示名:论文阅读)。面板提供:
- 标题、作者、元信息、摘要
- 可点击目录、正文分节渲染
- 字号调节、篇内搜索(命中高亮与上/下一处)
导入方式:粘贴文件路径添加单个文件;「浏览…」在面板内浏览目录;「扫描文件夹」批量导入一个目录。
「交给助手」通过剪贴板:一键复制「总结全文 / 翻译摘要 / 讲解选中段落」等提示词(附带论文 key),粘贴到对话框后助手会用 paper_read 读同一篇。插件不能写入其他插件的输入框,这是 DSH 对 DOM 隔离的既定要求。
助手工具¶
| 工具 | 作用 |
|---|---|
paper_read |
按章节或字符预算返回正文 |
paper_list |
浏览论文库 |
paper_scan |
批量导入目录 |
Host 侧还在本机注册了仅回环、仅本插件前缀的 HTTP 路由,供面板调用(例如 GET /paper-reader/api/{status,library,paper,browse,markdown,search},POST /paper-reader/api/{ingest,scan,favorite,remove})。路由本身不带认证;插件只应答 Host 为回环地址的请求,且只接受文档列出的端点。
PDF 抽取实现(简要)¶
lib/pdf.js 为纯 Node 的 PDF 文本抽取(对象流、ToUnicode、双栏阅读顺序等),无第三方 PDF 依赖。lib/document.js 将 PDF / Markdown / 文本转为带章节、摘要、标题作者启发式的结构化文档。维护者在 README 中给出的本机实测示例(环境:RTX 4070 SUPER / i5-14600KF):8 页 IEEE 双栏约 43,222 字符、14 章节、208 ms;30 页 Elsevier 约 89,647 字符、30 章节、13 s(含跳过大量图片流)。
安装与启用¶
插件以 bundle 形式安装。在 Harness 会话里让 Agent 执行,或通过 Plugins 页面安装同一目录,使用 README 中的命令(将占位符换成该插件目录的绝对路径):
plugin_manager install_bundle <本目录绝对路径>
安装完成后:
- 左侧边栏应出现「论文阅读」入口。
- 在 设置 → 插件 中查看启用状态与开关。
典型用法¶
1. 在面板里建立论文库¶
- 打开侧边栏「论文阅读」。
- 粘贴本地 PDF / Markdown / 文本的绝对路径,或用「浏览…」「扫描文件夹」导入。
- 在面板中阅读目录与正文,必要时用篇内搜索定位段落。
- 需要助手参与时,使用「交给助手」复制带论文 key 的提示词,粘贴到对话。
2. 让助手按章节读同一篇¶
在对话中说明任务(总结、翻译摘要、讲解某段等);提示词中的 key 与库内一致时,助手可调用 paper_read 分段取文,paper_list 查看已有条目,paper_scan 对目录做批量导入(与面板「扫描文件夹」同一服务层)。
3. 开发与回归测试(可选)¶
README 提供 Node ESM 测试脚本(要求 Node ≥ 22;开发环境使用 DSH 自带 Node 24),例如:
node test/layout.test.mjs
node test/host-offline.test.mjs
node test/pipeline.test.mjs <a.pdf>
node test/live-http.test.mjs [a.pdf ...]
离线测试可将 DSH_PAPER_READER_DIR 指到临时目录,避免改动真实论文库。
适用场景与注意¶
适合:本机已有 PDF / Markdown / 论文文本,希望在 Harness 内统一建库、侧边栏精读,并让助手按章节读取同一索引,而不是反复手动复制全文。
已知限制(来自 README):
- 带文本层的 PDF 通常能较好抽出标题、摘要与章节;扫描件、部分嵌入字体或复杂公式可能导致文本少或较乱,面板与工具输出会提示。
- 双栏排版按 x 聚类重排,极端版式下阅读顺序可能不理想。
- 论文库位于
$DSH_HOME(工作区沙箱外),插件用node:fs直接读写并自行保证原子写。
安全与权限:插件以当前 DSH 进程权限运行,会读取你指定的本地路径并写入 $DSH_HOME/paper-reader/(或 DSH_PAPER_READER_DIR)。安装前请阅读 GitHub 仓库 源码与 MIT 许可证,确认路径与数据落盘位置符合你的环境策略。SkillHub 上的插件目录为社区生态站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-paper-reader 把本地论文阅读、库管理与助手侧 paper_read / paper_list / paper_scan 绑在同一套缓存与结构化文档上,并明确不做在线抓取。若你主要在 Harness 里消化本机文献,可从目录页或仓库 README 获取 bundle 安装方式,再在设置中确认插件已启用。
- 插件目录:https://www.skillhub.cn/plugins/siluwr/dsh-paper-reader
- GitHub:https://github.com/siluwr/dsh-paper-reader