前言¶
在 DeepSeek Harness(DSH)里做研究或读论文,常见做法是:浏览器里搜 arXiv、PDF 丢进某个文件夹、笔记另开 Markdown 或 Notion。Agent 能帮你搜链接,但题录、PDF、全文和笔记往往不在同一份数据里,对话里说的「精读某篇」也很难和本地状态对齐。
dsh-paperdesk 是社区维护者 shiyan688 发布的 工作流 类插件(SkillHub 分类:工作流)。它把「收集 → 读 → 记住」三段接在一套本地文库上:arXiv 检索入库、题录 / PDF / 全文落盘,并用 L1 / L2 / L3 固定结构写精读笔记。宿主半区与浏览器 UI 同包分发,lib/ 即运行时,无需构建步骤。
这是什么¶
插件 npm 包名 dsh-paperdesk,仓库 shiyan688/dsh-paperdesk,许可证 MIT。简介与 README 一致:DSH 论文工作台 —— arXiv 检索 → 本地文库(metadata / PDF / full text)→ L1-L2-L3 三层阅读笔记;Host + browser 在同一 package 里,无 build step。
读论文在 README 里被拆成三段,多数工具只覆盖「收集」。本插件额外用表格约束第三段「记住」:
| 层 | 回答什么 | 为什么单独一层 |
|---|---|---|
| L1 速览 | 这篇说了什么?一句话贡献? | 筛掉不值得往下读的 |
| L2 理解 | 方法、关键设计、哪张表撑住结论? | 区分「看懂摘要」和「看懂工作」 |
| L3 批判 | 假设成立吗?哪里可疑?能搬回自己课题什么? | 很多「读了但没读进去」缺的是这一层 |
界面与 Agent 工具读写同一份文库,可手点侧栏,也可直接对模型说「精读 1706.03762」。
核心功能¶
侧栏「论文」界面¶
装妥并在 web profile 重启后,侧栏底部出现 论文 入口(README 描述为 📚 论文)。主要能力包括:
- 文库:按未读 / 在读 / 已读、标题、作者、标签筛选;右侧详情与三层笔记编辑。
- arXiv 检索:关键词或 arXiv 语法(例如
ti:"world model" AND cat:cs.LG);可「入库 + 下载全文」或「仅题录」。 - 导入 PDF:系统目录选择器或手工填绝对路径扫描;多 PDF 可批量导入;会抽取全文并用首页正文推断标题。
详情里还可改状态、打星、改标签、面板内分段读全文、打开文件所在目录、移出文库。
Agent 工具(7 个)¶
与界面互通的同一文库:
| 工具 | 用途 |
|---|---|
paper_search |
arXiv 检索,返回编号 / 标题 / 作者 / 分类 / 摘要片段 |
paper_add |
入库(默认下载 PDF 并抽取全文) |
paper_list |
列文库,可按状态 / 关键词 / 标签筛 |
paper_read |
读全文(缺 PDF 会下载、缺全文会抽取,分页返回) |
paper_note |
写 L1 / L2 / L3 笔记,或改状态、评级、标签 |
paper_pdf |
单独下载 PDF 并抽取全文 |
paper_import |
本地已有 PDF 收入文库 |
README 中的自然语言示例:
找 5 篇 diffusion policy 的论文收进来
精读 1706.03762,写完三层笔记
我读过但没写笔记的有哪些?
数据目录¶
文库根目录由配置 root 决定;留空时为 <dsh 进程工作目录>/.dsh-paperdesk。典型布局:
<root>/
state/index.json 题录 + 状态 + 标签 + 三层笔记(唯一事实来源)
pdf/<id>.pdf
text/<id>.txt
notes/<id>.md 人类可读三层笔记
.tools/extract_pdf.py
arXiv 的 <id> 为不带版本号的编号(如 1706.03762),索引内为相对路径,整目录可拷贝到其他机器。
安装与启用¶
官方安装命令(README 原文):
dsh plugin --profile web add dsh-paperdesk
dsh plugin 会把包装进 profile 的 node_modules,并在 package.json 的 dsh.profile.bundles 登记;包内 cordis.patch.yml 作为 patch 插入插件行。配置项示例:
- insert:
- id: dsh-paperdesk
name: 'dsh-paperdesk'
config:
root: '' # 文库根;留空 = <cwd>/.dsh-paperdesk
pdfCommand: '' # pdftotext 兼容 CLI;留空自动探测
pythonCommand: '' # 留空自动探测 python/python3/py
装完后必须核对 bundles¶
若包只进了 dependencies 而未进入 dsh.profile.bundles,插件会静默不加载。请运行:
node node_modules/dsh-paperdesk/scripts/check-dsh-compat.mjs --profile web
若提示不在 dsh.profile.bundles 里,可手工把 dsh-paperdesk 追加到 $DSH_HOME/profiles/web/package.json 的 bundles 数组,例如:
"dsh": { "profile": { "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "dsh-paperdesk"] } }
然后重启 profile(dsh web)。启动日志中应出现类似:
[paperdesk] 0.1.0 就绪 · 文库 <root> · 抽取器 <抽取器> · 工具 7 个 · 界面接口 已挂载
(日志里的版本号以你实际安装的包为准;当前仓库 package.json 为 0.1.3。)
健康检查:GET http://127.0.0.1:<端口>/paperdesk/api/health(需带浏览器用的 token)。
卸载:
dsh plugin --profile web remove dsh-paperdesk
典型用法¶
- 在 arXiv 检索 里用语法搜题,选「入库 + 下载全文」。
- 在 文库 里把状态改为「在读」,边读面板内全文边填 L1 → L2 → L3。
- 对 Agent 说「列出在读且没写 L3 的论文」,再用
paper_note或界面补笔记。
本地已有 PDF 时:侧栏 导入 PDF 或工具 paper_import;路径须为绝对路径(插件设计如此,相对路径会被拒绝)。
依赖、兼容与注意¶
- Node ≥ 20;宿主半区无第三方运行时依赖(除 peer 的
@deepseek-ai/schemastery等组合配置 schema)。 - PDF 全文抽取在需要时才依赖外部工具,顺序:
pdfCommand→ Python + PyMuPDF / pypdf → PATH 上的pdftotext。都没有时题录、检索、笔记、导入仍可用,抽取失败会在/paperdesk/api/health说明。 - 兼容性策略:软版本门仅提示、能力探测优先、只用
ctx.tools.register/ctx.webServer.register/ctx.get等稳定面;细节见仓库COMPATIBILITY.md。 - 已知限制:UI 为浮层面板而非中央主面板;「打开所在目录」仅宿主与浏览器同机有意义;arXiv 版与会议版不去重;抽取质量受 PDF 排版影响。
- 安全:API 校验请求来源为本机回环;导入读你显式给出的绝对路径;子进程用
spawn数组形式,不经 shell。
插件在当前 DSH 进程权限下读写磁盘与调用外部抽取命令。安装前请自行查看 GitHub 源码 与 MIT 许可证;DSH 社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
若你希望 DSH 里论文流程从「搜到 PDF」延伸到「Structured 笔记且 Agent 能接着读同一份库」,dsh-paperdesk 把检索、文库与 L1-L2-L3 笔记绑在一处,并给出侧栏与 7 个工具两套入口。更多说明见 GitHub README,提 issue 时 README 建议附上 /paperdesk/api/health 输出。