DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Paper Reader — DeepSeek Harness 插件(DSH Plugin)
← Plugins
P

dsh-paper-reader

Paper Reader

DSHA 论文阅读器:输入框点「论文」进入三栏界面 —— 左:工作区文稿目录树;中:黑底论文(PDF 走 pdf.js);右:随时可聊的实时 Agent 对话(总结只是开场白)

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:iasmndjxjz/dsh-paper-reader#a3d32a58dd07d135ce0d1698234c3b033d751845
README兼容性版本

兼容性与来源证明

Paper Reader 以 dsh-paper-reader 发布,当前版本为 0.2.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/17

版本

0.2.0stable
2026/9/17

相关插件

正在加载相关插件…

最新版
0.2.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 1
周下载
0
最近提交
2026/9/18
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

继续浏览 search-research 分类下经过校验的插件。

Browser Skill Dsh Plugin@wxg-prc-cpg/browser-skill-dsh-plugin向模型提供 BrowserSkill 浏览器自动化(browser_* 工具)的 DeepSeek Harness 工具插件Weknora@wxg-prc-cpg/dsh-weknora适用于 DeepSeek Harness (dsh) 的 WeKnora 知识检索工具:通过自有知识库进行语义搜索、文档阅读以及 RAG/代理回答。Free Searchdsh-free-searchDeepSeek Harness 的免费网页搜索:13 个引擎(Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl 无需密钥;Parallel/Perplexity/SerpBase/DeepSeek 需要密钥),支持时间筛选、平台搜索和 web_fetch,并提供网页设置界面。Find Plugindsh-find-plugin在代理中查找 DeepSeek Harness 插件——实时搜索 GitHub 上的 dsh-plugin 主题,并按星标数排序。

README

dsh-paper-reader

DSHA(DeepSeek Harness)插件:论文阅读器。两种形态,随时切换,中间的聊天永远可用。

三栏形态(输入框右侧点「论文」):

┌──────────┬────────────────────────┬─────────────────────┐
│ 目录     │  论文正文(黑底)       │  实时对话            │
│ 工作区树  │  Markdown / PDF(pdf.js)│  真 Agent · 流式 · 随时可聊 │
└──────────┴────────────────────────┴─────────────────────┘

停靠形态(三栏里点「停靠」,或从右侧栏打开):论文+目录挂在右侧栏,中间的原生聊天一动不动,点「三栏阅读」切回来。

关键点

  • 右栏是「随时能聊」的真对话,不是需要先点「总结」才能用的面板:
    • 宿主半为每篇论文维护一个真正的 DSH 会话(ctx.agents 创建/恢复,挂上 Agent 预设 → 工具齐备), 面板只是把它流式增量画成气泡;会话会落盘,重启后接着聊,也会出现在会话列表里。
    • 它自己会读文件、查目录、跑命令(工具调用会显示成气泡上的小标签)。
    • 「精读总结」只是往对话里发一条指令(开场白),不是聊天的前置开关。
    • 「新对话」清空这篇论文的会话;「停止」中断正在跑的一轮;「问 Agent」把论文写进原生输入框并回到主对话。
  • PDF 用 pdf.js:中栏真渲染(翻页/缩放/反色/下载),并且宿主侧抽取文字——所以 PDF 也能被总结、被追问。
  • 只读:对用户文件不写不改不删;路径必须落在允许根目录内。
  • 窄屏(<900px)三栏自动变成「目录 / 论文 / 对话」三个页签。

安装

dsha-plugin import /tmp/dsh-paper-reader.zip   # 打包方式见下
# 插件行是 patchReload: startup → 在 App 里重启一次 DSHA Web 生效

打包(zip 里必须有一层 dsh-paper-reader/,且不要带 node_modules):

python3 - <<'PY'
import zipfile, os
root, out = '/root/dsh-paper-reader', '/tmp/dsh-paper-reader.zip'
with zipfile.ZipFile(out, 'w', zipfile.ZIP_DEFLATED) as z:
    for base, dirs, files in os.walk(root):
        dirs[:] = [d for d in dirs if d not in ('node_modules', '.git')]
        for f in files:
            full = os.path.join(base, f)
            z.write(full, os.path.relpath(full, '/root'))
PY

卸载:dsha-plugin delete dsh-paper-reader(同样需重启)。

使用

  1. 任意会话 → 输入框右侧 「论文」 → 三栏。
  2. 左栏选文稿(首屏自动打开第一篇 Markdown);中栏阅读;右栏直接打字提问。
  3. 想让 Agent 先通读:点右栏「精读总结」。
  4. 想用原生聊天读论文:点 「停靠」(或右栏打开「论文」标签)→ 中间聊天照常,「三栏阅读」切回。
  5. Esc / 「返回对话」回到原聊天。

配置

环境变量说明
DSHA_PAPER_ROOTS追加可读根目录(: 分隔)。默认只有 dsh 进程工作目录(本机 = /root)。例:DSHA_PAPER_ROOTS=/sdcard/Download:/sdcard/Documents
DSHA_PAPER_PDFJS_DIR覆盖 pdfjs-dist 所在目录(默认插件内 node_modules/pdfjs-dist)

HTTP 接口(宿主半)

全部挂在 prefix /api/paper-reader,复用浏览器鉴权(未鉴权 401、非信任域 403):

方法路径说明
GET/health{ok, roots, version, chat:{available, model}}
GET/tree?root=&all=1工作区文稿目录树
GET/file?path=单篇:{kind, text, rawUrl, size, mtime}
GET/raw?path=&download=1原始字节(PDF/图片,正确 MIME + CSP sandbox)
GET/text?path=pdf.js 抽取的文字(PDF / 文本;带缓存)
GET/pdfjs/*转发 pdfjs-dist 静态资源(主模块/worker/cmaps/standard_fonts/wasm)
GET/chat?path=这篇论文的对话历史 {sessionId, messages, chat}
POST/chat驱动真 Agent,NDJSON 流:start / delta / tool / done / error / cancelled
POST/chat/cancel停止正在跑的一轮
POST/chat/reset清空这篇论文的对话(下次开新会话)
POST/summary旧的一次性总结接口(走 ctx.llm,保留备用)

安全边界:路径先 realpath 再按路径边界校验必须落在允许根目录内(防 .. 与同前缀逃逸),不跟随软链接,目录树跳过隐藏目录/node_modules/dist,节点上限 1500。

已知限制

  • 论文对话是真会话,因此也会走模型的正常计费;无凭据/无模型时右栏会直接显示原因,不会假装成功。
  • 需要「点允许」的审批交互不会在右栏弹出(本部署为 danger-full-access,通常不触发);需要时请回到原生对话处理。
  • LaTeX 公式按源码显示(不内置 KaTeX);DOCX 之类不可渲染格式只给下载。
  • 手机存储 /sdcard 默认不在可读范围,需用 DSHA_PAPER_ROOTS 显式开启。
  • 插件行 patchReload: startup:安装/更新/卸载后都要重启 DSHA Web。

开发与测试

cd /root/dsh-paper-reader
pnpm install --ignore-scripts   # devDependencies:react / react-dom / jsdom(pdfjs-dist 是运行时依赖)
pnpm test
  • test/test-host.mjs:文件接口、越界/穿越防护、鉴权 401/403。
  • test/test-chat.mjs:真 http 服务 + 假 agents 服务,覆盖会话创建/恢复、预设挂载、上下文注入、 流式事件、工具名、取消、重置、模型失败要暴露、PDF 抽取(真 pdf.js)、pdfjs 资源转发。
  • test/test-client.mjs:jsdom + react-dom 真挂载,覆盖三栏、目录树、Markdown、实时对话 (历史/发送/流式/工具标签/停止/新对话)、PDF 走 pdf.js 并自动退回 iframe、停靠模式与两种形态互切。

文件

文件作用
lib/index.js宿主半:路由层(文件/PDF 抽取/对话/总结)与路径安全
lib/chat.js论文对话引擎:会话映射落盘、真 Agent 创建/恢复、Agent 预设挂载、流式转发
lib/pdf-text.jspdf.js:宿主侧文字抽取 + 浏览器侧资源定位
lib/client.js浏览器半:输入框按钮、三栏面板、停靠标签、自带 Markdown 渲染与样式
test/*.mjs三套集成测试

MIT。