前言¶
在 DeepSeek Harness(DSH)里做智能体或写代码时,论文常常散落在工作区 PDF 里:用系统阅读器打开要来回切窗口,把段落贴进对话又难保留页码和引用。若在 Web UI 内直接渲染 PDF、可选中文本,并把翻译、解释和笔记接到当前 Profile 配置的模型上,阅读和追问会连贯得多。
下面介绍社区插件 dsh-pdf-paper-reader(GitHub:liuchang0812/dsh-pdf-paper-reader):在 Harness Web UI 中提供论文库、带文本层的 PDF 查看器,以及结构化阅读笔记与对话侧 Agent 工具。
这是什么¶
dsh-pdf-paper-reader 是面向 DeepSeek Harness Web UI 的客户端插件,bundle 包名为 @local/pdf-paper-reader。维护者为 liuchang0812,在 SkillHub 目录中归类为客户端;仓库采用 MIT 许可证,当前 bundle 版本 1.0.0。
插件在应用内以真实页面呈现(非 iframe),跟随主题、语言与布局;AI 相关调用走 Profile 中配置的默认模型(ctx.llm)。PDF 渲染基于 vendored 的 PDF.js 3.11.174(Apache-2.0)。资料记载在 @deepseek-ai/dsh 0.2.2-rc.1、Node.js 20+ 环境下做过验证。
Host 为纯 ESM,Client 为纯浏览器 JS,无需构建步骤即可从仓库目录安装 bundle。
核心功能¶
论文库与上传¶
- 扫描当前 session 工作区中的 PDF,后台补全标题与摘要,并显示阅读进度。
- 可将 PDF 拖到页面,或使用 Upload PDF;上传文件会复制到
<workspace>/papers/。 - 工作区根目录下已有的 PDF 会自动出现在列表中。
PDF 阅读体验¶
- 分页渲染、可选中文本层,支持缩放/适应宽度、懒加载、记住阅读位置。
- Contents rail:合并 PDF 书签与标题检测生成目录,支持双栏版面,并跳过纯目录页。
- 文内搜索返回带页码的片段,点击可跳转。
- 键盘:
←/→翻页,Shift+←/→按节跳转,Esc关闭选区工具栏。
选区与侧栏 AI¶
选中段落后可使用 Translate、Explain、Terms 或 Quote(将带引用的 blockquote 写入笔记);结果流式输出到侧栏,语言可为中文或英文。
另提供快速概览、单页摘要、Ask AI 等能力;提示词要求模型不编造数字,并在摘录中找不到内容时明确说明。
结构化阅读笔记¶
一键生成 Markdown 笔记框架(问题、方法、贡献、实验、局限、术语表等),可编辑、预览、复制或保存到工作区 paper-notes/。已有笔记会自动加载;Agent 可向同一文件追加内容。
Agent 工具¶
安装后,每个 session 的对话 Agent 可使用以下 Host 工具:
| 工具 | 作用 |
|---|---|
paper_list |
列出工作区 PDF 及检测到的标题、页数 |
paper_read |
读取论文:概览、指定节(如 section: "method")或页范围(如 pages: "4-6") |
paper_search |
按词/短语搜索,返回带页码片段 |
paper_save_note |
在 paper-notes/ 下保存或追加 Markdown 笔记 |
环境与依赖¶
- Harness Web UI Profile 中已启用 plugin_manager(标准
dsh-base/dsh-web-app捆绑包内包含)。 - 在 Settings → Models 中配置默认模型(阅读器依赖该选择)。
- 仅运行插件自带开发检查时需要 Node.js 20+;插件本身在 Host 进程内运行。
安装与启用¶
官方说明:仓库根目录即 plugin bundle,package.json 内含 dsh.bundle.patch 与 dsh.client 声明,可从该目录直接安装。
在 Web UI 中让 Agent 通过 plugin_manager 从本地目录安装 bundle,例如:
Install the plugin bundle at /absolute/path/to/dsh-pdf-paper-reader.
也可自行调用 plugin_manager,参数为 action: install_bundle,target: "/absolute/path/to/dsh-pdf-paper-reader"(路径须为克隆或解压后的仓库绝对路径)。
安装会将目录链入 Profile 并插入一条 Loader 行,重启后仍有效,可在 Settings → Plugins 中开关。刷新 Web UI 后,侧栏面板列表会出现 PDF papers 图标,点击即可在中央面板打开阅读器。
卸载:在 Settings → Plugins 移除 @local/pdf-paper-reader bundle,或使用 plugin_manager 的 action: remove_bundle。paper-notes/ 下的笔记会保留在工作区。
可选配置¶
在 Settings → Plugins 中编辑该 bundle 对应 Loader 行的 config,或在 Profile 的 cordis.patch.yml 中设置:
- id: pdf-paper-reader
name: '@local/pdf-paper-reader'
config:
rootDir: '/absolute/path/to/papers' # 默认:当前 session 工作区
notesDir: 'paper-notes' # 相对 rootDir
默认论文库跟随各 session 的工作目录;切换工作区即切换库。超出 rootDir 的路径会被拒绝(含通过符号链接访问)。
典型用法¶
- 打开 PDF papers 面板。
- 拖拽或使用 Upload PDF 添加论文;文件落在
<workspace>/papers/。 - 打开一篇论文,用目录或搜索框定位。
- 选中句子做翻译/解释,或使用 Summarize this page。
- 在笔记页签按 Generate notes,编辑 Markdown 后 Save。
- 在 Ask AI 页签追问,或在对话中让 Agent 调用
paper_*工具。
对话示例(摘自 README):
List the papers in my workspace and give me a 5-line summary of the BERT paper.
Search the Transformer paper for the BLEU scores and quote them with page numbers.
Append a "limitations" section to the notes of `papers/resnet.pdf`.
隐私与架构要点¶
- PDF 解析、搜索、笔记与上传在本地完成,插件本身不上传文件。
- AI 操作仅将选段或大小受限的论文摘录发往 Profile 配置的模型(经 Harness
llm服务)。 - 提示词将正文视为不可信数据,要求模型忽略文档内嵌指令。
Host 通过认证路由 /api/pdf.reader.* 提供库、文件、上传、解释、摘要、问答、笔记等接口;lib/store.js 负责工作区扫描与路径 containment;lib/pdf.js 与 lib/text.js 处理 PDF 与版面文本;Client 的 client.js 注册侧栏入口与主面板阅读页。
适用场景与注意¶
适合在 DSH Web UI 内系统阅读英文学术 PDF(尤其计算机类)、需要页码可追溯的翻译/解释/笔记,或希望 Agent 在工作区论文上执行 list/read/search/note 的开发者。
安装前建议自行审阅仓库源码与 MIT 许可证。插件以当前 DSH Host 进程权限访问工作区文件;配置 rootDir 时请明确论文与笔记实际落盘位置。SkillHub 上的插件目录为社区站点,与 DeepSeek / 幻方无官方从属关系;生态上 DSH 奉行「一切皆插件」,本阅读器是其中一条客户端扩展路径。
资料中的开发自检(可选):
cd dev
npm install
npm run check
链接¶
- 目录页:https://www.skillhub.cn/plugins/liuchang0812/dsh-pdf-paper-reader
- GitHub:https://github.com/liuchang0812/dsh-pdf-paper-reader
在 Harness 里把论文阅读、笔记与对话工具接到同一工作区,可减少上下文切换;按上文步骤启用 bundle 后,即可从侧栏 PDF papers 开始使用。