找论文 PDF,你一定经历过这些:DOI 粘到搜索引擎里翻好几页、付费墙挡住只能看到摘要、Sci-Hub 偶尔抽风打不开、批量下载几十篇要手动一篇篇点……
paper-fetch 这个小工具把这些麻烦一次性解决了——给它一个 DOI、或者干脆只给论文标题,它会自动遍历 7 个开放获取来源,命中即停,把 PDF 干净利落地放到你指定的地方。能下到的稳定下到,下不到的也明确告诉你为什么、接下来该怎么办。

一、什么时候你会用到它
凡是"我需要这篇论文的 PDF"的场景,都该想到它。下面这些情况,对号入座:
场景 1:手里只有 DOI,想拿到 PDF
你读综述时看到引用 10.1038/s41586-020-2649-2,想立刻看原文。原生 Agent 的做法是临时 Google 搜一圈,结果可能是 Sci-Hub 链接、可能是付费墙、可能根本找不到。paper-fetch 会按 7 源优先级逐个试,命中即停。
场景 2:只记得论文标题,连 DOI 都不知道
你在播客里听到一篇叫 Attention Is All You Need 的论文,想下载来读。直接把标题丢给它,它会先解析出 DOI,再走下载链。一步到位,不需要你先去查 DOI。
场景 3:批量下载几十篇论文
你在做文献综述,Zotero 里导出了一份 50 个 DOI 的列表。手动一篇篇下载是噩梦。用它一次跑完,失败的会单独标出来,成功的自动跳过——第二天重跑只补失败的,不重复下载。
场景 4:论文在付费墙后面,但可能有 OA 版本
很多期刊文章其实有合法的 OA 副本——作者自存档在机构知识库、预印本在 arXiv、或 embargo 期满后释放。你不知道有没有,paper-fetch 会替你查 Unpaywall / Semantic Scholar / PMC 等所有可能藏 OA 副本的地方。
场景 5:让 Agent 自动化整个文献工作流
你在 Claude Code / Cursor 里搭一个"读论文→总结→建知识库"的流水线。你需要的是可机读的输出——成功/失败、文件路径、失败原因、何时该重试。paper-fetch 的结构化输出就是为这种场景设计的,Agent 不用解析自然语言。
场景 6:你在校园网/VPN 内,有机构订阅
你的大学订了 Nature、Science、Wiley 等出版商。开启机构模式后,它会用出版商直链回退,靠你的 IP 完成授权,自动加限速避免触发"系统性下载"封禁。
二、用了之后得到什么
跑一次 paper-fetch,你会拿到三类东西:
1. 一份命中的 PDF 文件
文件名是确定性的:作者_年份_期刊_标题.pdf。同一篇论文永远落同一个文件名,所以重跑不会重复下载——天然幂等。
2. 一份结构化的结果说明
不是含糊的"成功/失败",而是清晰告诉你:
• 从哪个源命中的(Unpaywall / Semantic Scholar / arXiv…) • 实际下载的 URL 是什么 • 本地文件路径 在哪 • 试过哪些源(全链路透明) • 论文元数据(标题、年份、作者)
Agent 直接读这些字段即可决策:成功了拿路径,失败了看原因决定是否重试、何时重试。
3. 一个分类清晰的退出码(决定下一步动作)
关键产出差异:原生 Agent 下载失败只会说"下不到",你不知道是论文本来就没有 OA 版(白等),还是网络抖动(该立刻重试)。paper-fetch 的退出码把这两类失败彻底分开——1 别急着重试,4 赶紧重试。

失败时你也会得到明确的补救建议
如果论文真的没有 OA 版本,结果里会告诉你:
• 一周后可以重试(也许 embargo 期满) • 你有机构订阅就开机构模式 • 或者走馆际互借(ILL)
不会让你对着一个"failed"干瞪眼。
三、它是怎么做到的:7 源回退链
给定 DOI(或标题解析出的 DOI),按优先级依次尝试,命中即停:
| Unpaywall | |||
| Semantic Scholar | |||
| arXiv | |||
| PubMed Central OA | |||
| bioRxiv / medRxiv | 10.1101 时 | ||
| 出版商直链 | |||
| Sci-Hub 镜像 |
全链失败 → 报告失败并附 title/authors,提示走 ILL(馆际互借)。

学科无关性:仅 Unpaywall + Semantic Scholar 两个源,就足以覆盖化学、材料、经济、心理学、人文社科等任何领域的 OA 论文——它们会自动命中机构知识库、SSRN、RePEc 以及出版商自托管的 OA 版本。
标题 → DOI 解析
只有论文标题时,它会:
1. 先用 Crossref 查(覆盖所有主流期刊/会议的 DOI) 2. Crossref 不理想时回退到 Semantic Scholar——关键价值:覆盖 arXiv-only 预印本(Crossref 无 DOI),并合成规范 DOI 让下载链统一 3. 两个解析器都不理想时,标记为"低置信度",让你决定放弃还是先预览确认
四、为什么用 Agent 调用它更顺手
这是 paper-fetch 区别于普通下载脚本的核心——它专门为 Agent 编排场景设计:
• 稳定结构化输出:结果永远是结构化数据,Agent 不用解析自然语言 • 实时进度:逐行输出"正在试哪个源 / 命中了 / 下载完成"等事件,orchestrator 能追踪进度 • 自描述能力:Agent 可以查询它的完整契约(参数、退出码、错误码),缓存后检测版本漂移 • 错误码 + 重试时机提示:每个可重试错误都标注何时该重试,Agent 不用猜 • 幂等与批量:批量下载、重试零网络开销、流式输出、失败项自动给出重试建议 • 输出格式自动识别:管道里输出机器可读格式,终端里输出彩色人类可读文本
五、两个可选模式(按需开启)
这两个模式都仅能由人类操作者启用,Agent 无法自启——这是明确的信任边界。
1. 机构访问模式
适用场景:你有高校或研究机构的出版商订阅(校园网/VPN)。
启用后:
• 激活第 6 源(出版商直链回退)——按 DOI 前缀映射到 Nature/Science/Wiley 等的 PDF URL • 加 限速——防止触发出版商的"系统性下载"封禁 • 授权由你的 IP/cookies/EZproxy 完成,skill 本身不做登录
⚠️ ToS 警告:几乎所有出版商订阅都禁止"系统性下载"。开多进程并行或绕过限速可能触发 IP 全机构封禁。
2. CloakBrowser 回退
适用场景:出版商在 Cloudflare 后面(如 science.org),普通 HTTP 客户端拿到 403 或 "Just a moment…" JS 挑战页。
工作方式:被 Cloudflare 拦截时,用隐身 Chromium 加载 PDF 主机、通过 JS 挑战,再用页面内 fetch 拿 PDF。返回字节仍过 PDF 魔数 + 50 MB 校验,成功结果带 via: "cloak" 标记。
关键约束:
• 位于下载层(不是新源),对所有源解析出的 URL 都生效 • 同源 only:跨源重定向会失败回退 • 不解交互式 CAPTCHA:能过自动化 JS 挑战,过不了 Turnstile • 失败静默回退:绝不告诉 Agent "下载成功" • 强挑战(如 science.org)需用可见窗口模式
六、怎么触发它
自然语言触发(在支持的 Agent 里)
直接对 Agent 说人话就行:
> 把 AlphaFold2 论文的 PDF 下载到 ~/papers> 帮我下 DOI 10.1038/s41586-020-2649-2> 把 dois.txt 里的全部 DOI 批量下载> 找 "Attention Is All You Need" 这篇论文的 PDF> 不下载,只预览 10.1126/science.abj8754 解析出的 PDF 链接也可以预览(不下载)——先看解析出的 DOI 和 PDF 链接对不对,再决定要不要真下。
七、实测发现(边界比文档更清晰)
我用 paper-fetch 实测了两篇论文,发现了它的能力边界:
案例 1:Neurology 期刊社论《Sleep and Stroke: A Hate Affair》
• 标题解析 ✅ Semantic Scholar 命中,DOI 10.1212/WNL.0000000000209908• 下载 ❌ 所有源都失败: • Unpaywall 未启用(缺联系邮箱) • Semantic Scholar 显示 isOpenAccess: false• 无 PMCID(未被 PMC 收录) • Neurology 官方 403(订阅墙) • Sci-Hub 网络不可达 • 结论:订阅制社论且无任何 OA 版本时,技能无能为力。但它诚实地报告失败并提示走机构模式或 ILL,而不是假装成功。
案例 2:Research Square 预印本《Scalp Acupuncture Combined with Mouse Nerve Growth Factor...》
• 标题解析 ✅ Crossref 命中,但标记为"模糊匹配"——预印本和正式版分数极接近 • 下载 ❌:Semantic Scholar 404(未索引此预印本)+ Sci-Hub 不可达 • 绕过技能手动下载 ✅:Research Square 预印本的 PDF URL 模式 https://www.researchsquare.com/article/rs-XXXXXXX/v1.pdf直接可用,OA 天然可得• 结论:预印本平台(Research Square 等)不在源链内,是个可改进点。遇到这类情况需要手动构造 URL。
实测总结
paper-fetch 的能力边界很清晰:
• ✅ 能下到的:主流 OA 期刊、arXiv 预印本、PMC 全文、bioRxiv/medRxiv、有 OA 副本的订阅制论文 • ❌ 下不到的:纯订阅制且无任何 OA 版本的论文(如新发表的 Neurology 社论)、不在源链内的预印本平台(如 Research Square) • 💡 关键价值:即使下不到,它也会告诉你为什么下不到和接下来该怎么办,而不是给一个含糊的"失败"

八、已知局限
1. 出版商重定向陷阱:部分出版商返回 HTML 落地页,PDF 魔数校验会拒绝 2. 默认不解 CAPTCHA:浏览器自动化是独立的可选模式(CloakBrowser) 3. SSRF 防护可能误伤:私网 IP、非标准端口会被拒 4. 50 MB 体积上限:超大论文(含高清图)可能被拒 5. 预印本平台覆盖不全:如 Research Square( 10.21203/rs.3.rs-XXXXXXX/v1)不在源链内,需手动构造 PDF URL
九、相关 Skills(学术研究工具链)
paper-fetch 是 Agents365-ai 学术研究 skill 系列的一员,按需搭配:
| paper-fetch | ||
一句话总结
paper-fetch 是论文 PDF 的"确定性获取层"——它不试图破解任何付费墙,而是把分散在 7 个源的开放获取副本,编排成一条有退出码分类、有幂等重试、有安全防护的可靠流水线。对于 OA 论文,它几乎总能命中;对于订阅制且无 OA 版本的论文,它会诚实地报告失败并给出补救建议(机构模式 / ILL),而不是假装成功。
它的价值不在"能下到难下的论文",而在"把能下到的论文下得稳定、可预测、可编排"。
夜雨聆风