dsh-pdf-paper-reader:在 Harness Web UI 里读 CS 英文论文

前言

在 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 笔记

环境与依赖

  1. Harness Web UI Profile 中已启用 plugin_manager(标准 dsh-base / dsh-web-app 捆绑包内包含)。
  2. 在 Settings → Models 中配置默认模型(阅读器依赖该选择)。
  3. 仅运行插件自带开发检查时需要 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 的路径会被拒绝(含通过符号链接访问)。

典型用法

  1. 打开 PDF papers 面板。
  2. 拖拽或使用 Upload PDF 添加论文;文件落在 <workspace>/papers/。
  3. 打开一篇论文,用目录或搜索框定位。
  4. 选中句子做翻译/解释,或使用 Summarize this page。
  5. 在笔记页签按 Generate notes,编辑 Markdown 后 Save。
  6. 在 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 开始使用。

羽毛球分组比赛记分
小程序二维码

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

小夜