dsh-paper-reader:在 DeepSeek Harness 里读本地论文

前言

在 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. 左侧边栏应出现「论文阅读」入口。
  2. 在 设置 → 插件 中查看启用状态与开关。

典型用法

1. 在面板里建立论文库

  1. 打开侧边栏「论文阅读」。
  2. 粘贴本地 PDF / Markdown / 文本的绝对路径,或用「浏览…」「扫描文件夹」导入。
  3. 在面板中阅读目录与正文,必要时用篇内搜索定位段落。
  4. 需要助手参与时,使用「交给助手」复制带论文 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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye