Sanmu-Skills: Scientific Literature Search, PDF to Markdown Conversion, and Intensive Reading Workflow

前言

在 DeepSeek Harness(DSH)里做科研相关智能体,常见需求是:从课题或一篇论文出发找文献、把 PDF 教材或论文转成可检索的 Markdown、精读时每个结论都能回到原文页码。这些步骤往往分散在不同脚本、MCP 和笔记工具之间,技能说明也不统一。社区插件 sanmu-skills(维护者 luffysolution-svg)把文档转换、文献精读和文献检索整理成一套可安装的 Agent Skills,并在 DSH 桌面端接入完整工作台;在 SkillHub 目录中归类为「工作流」。下文介绍它是什么、能做什么,以及在 DSH 中的安装与典型用法。

这是什么

sanmu-skills 是三木的科研 Agent Skills 合集。仓库简介为:学术 PDF、教材与 slides 转 Markdown(含 LaTeX 校验、高清图与 Zotero 工作流)。完整包(当前 README 写明版本 1.10.3)包含 3 个技能、统一 CLI scripts/sanmu.mjs 和 24 个 MCP 工具;许可证为 MIT。

三个技能可以单独使用,也可以串成一条链路:检索 → 拿到 PDF / SI → 转换 → 精读。缺其中一个时,其余两个仍可正常工作。

技能 一句话 适合的请求(来自 README)
sanmu-doc2md 论文、教材、课件转成保留公式、高清图表和页码来源的 Markdown 知识库 「把这本扫描教材按章转成 Markdown」「论文转 Obsidian 笔记,公式别乱」
sanmu-paper-reader 精读论文和 SI,结论可追回原文位置与实验条件 「精读这篇,解释 Fig. 4」「比较这三篇的产氢性能能不能直接比」
sanmu-paper-search 从课题、论文或作者出发找文献,如实记录查了哪里、漏了什么 「帮我找 FLP 光热产氢的论文」「这篇被撤稿了吗」「下载它的 SI 原图」

核心功能

sanmu-doc2md

按文档类型选路:教材按章拆分,课件按讲次整理,论文独立成篇并与 SI 双向链接。公式与图表方面,README 说明会做全量 KaTeX 预检,图表优先取源文件原图,多面板碎图可回源重裁。输出保留原页页码,修正写入带原值守卫的 repairs 文件,原始 OCR 不动。可与 Zotero 同步元数据、阅读笔记和 PDF 批注,经官方 MCP 执行并回读确认。

sanmu-paper-reader

覆盖单篇精读、跨文献比较、跨学科迁移、跨主题组织、知识库问答等场景。每个论断记录原文位置、单位和工况;作者结论、解读与待验证假设分开写。材料化学等方向可按论文内容选用合成表征、催化电化学、DFT 等检查项;可选图文对照、Mermaid 机理图、复现 SOP 草案等增强。

多源检索包括 OpenAlex、Semantic Scholar、Crossref,以及可选的 SciVerse、AI4Scholar、Serper、Exa 等(详见仓库 README)。支持期刊分区与科研辅助(如 easyScholar 分区、IF 等)、引文扩展与作者消歧、Europe PMC 全文与 SI 等。检索结果会区分成功、零结果、截断与失败,不把「没查到」说成「不存在」。

安装与启用

DSH 侧要求:DSH 0.2.1-rc.3 桌面端,兼容其 Electron 内置 Node.js 22.20.0;独立 Node 需 ≥22.20,文档解析另需 Python ≥3.10。从 GitHub 安装还需 Git。package.json 中 engines.dsh 为 >=0.2.1-rc.3 <0.3.0。

桌面端(推荐)

  1. 在 DSH 插件市场搜索「三木文献检索」或 sanmu-skills 一键安装并支持自动更新;或打开 插件(Plugins)→ 添加插件(Add Plugin)。
  2. 输入 GitHub 标识:
github:luffysolution-svg/sanmu-skills

也可使用 Release 中完整 TGZ 地址,例如 README 给出的:

https://github.com/luffysolution-svg/sanmu-skills/releases/download/v1.10.3/sanmu-skills-1.10.3.tgz
  1. 安装确认后启用 sanmu-skills,在对话头部或右侧栏打开完整工作台。README 说明桌面端保留的 desktop profile 通过该界面管理,普通 dsh CLI 不管理该 profile。

非 desktop 的 CLI profile

若你已有其他 profile,可在终端使用(将占位符换成实际 profile 名):

dsh plugin --profile <已有的非desktop-profile名> add luffysolution-svg/sanmu-skills

或:

dsh plugin --profile <已有的非desktop-profile名> add github:luffysolution-svg/sanmu-skills

环境与自检

完整包首次文档解析会在数据目录内准备私有 Python venv 和 KaTeX,不写系统全局环境。安装根目录下可运行:

node "<安装根>/scripts/sanmu.mjs" doctor
node "<安装根>/scripts/sanmu.mjs" setup

doctor 只检查状态;setup 可提前准备依赖。可选环境变量包括 SANMU_DATA_DIR、SANMU_PYTHON、SANMU_NO_AUTO_SETUP=1(见 README「完整包的运行环境与配置」)。免费检索可先不配 Key;付费 API、MinerU 的 MINERU_API_TOKEN 等在工作台设置或宿主 userenv 中填写。Zotero 写入需本机 Zotero 8+ 授权,不直接写数据库。

典型用法

装好后用自然语言描述任务,助手会选用对应技能。README 中的示例可直接复用:

把这份扫描教材整理成 Markdown 知识库,按章节组织,保留公式和高清图表,并完成全量校验。

精读这篇光催化论文,解释 Fig. 4 和 Fig. 5,区分实验观察和机理推断。

围绕 MatterGen 这篇论文分别找参考文献、施引文献和相似研究,看看哪些已经在我的 Zotero 里。

各技能的命令与边界见仓库内 skills/<技能名>/ 下的 README。

适用场景与注意

适合谁: 需要在 Agent 对话里完成文献检索、PDF/SI 转 Obsidian 式 Markdown、带证据链精读,并希望与 Zotero 联动的科研用户;DSH 桌面端用户可获得完整 MCP 与工作台 UI。

权限与安全: 插件在 当前 DSH 进程权限 下运行,可能访问本机文件、调用配置的 API 与 MCP。安装前应阅读 GitHub 源码 与 MIT 许可证,确认依赖来源与 Key 存放方式是否符合你的环境策略。README 亦说明:仓库自建 marketplace 不代表 DeepSeek、Anthropic 等官方商店审核;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

仅要技能脚本时: 可用 npx skills add luffysolution-svg/sanmu-skills --all -g --copy 等方式只装 SKILL 与脚本,不含完整 MCP/工作台;与 DSH 插件同时安装可能重复加载技能,同一宿主选一种完整安装方式即可。

结尾

sanmu-skills 把检索、文档解析和精读收成一条可复用的 Agent 工作流,并在 DSH 0.2.1-rc.3 桌面端提供与市场/GitHub 标识一致的安装路径。需要浏览分类与简介时可打开 SkillHub 目录页 luffysolution-svg/sanmu-skills;细节、Release 与贡献方式以 GitHub 仓库 为准。

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

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

Xiaoye