关于 paper-lookup
面向学术检索的技能,可根据查询意图从 10 个论文数据库中选择并调用 REST API。适用于查找论文、作者成果、引用关系、开放获取 PDF 或全文,并要求列出查询数据库及原始结果。
主要功能
- 01按查询目标选择论文数据库
- 02组合多个数据库开展检索
- 03支持 DOI、PMID、arXiv ID 等标识符
- 04查询论文元数据、引用与开放获取全文
- 05整理数据库、端点及响应结果
适用场景
- 01按主题查找跨学科论文
- 02通过 DOI 查询论文并寻找开放获取版本
- 03检索作者成果或论文引用关系
- 04查找预印本或获取可用全文
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ crazymsn/ academic-skills --skill paper-lookup安装后在 Claude Code 中输入/paper-lookup确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/arxiv.mdbiorxiv.mdcore.mdcrossref.mdmedrxiv.mdopenalex.mdpmc.mdpubmed.mdsemantic-scholar.mdunpaywall.md详细介绍
论文检索
你可以通过 REST API 访问 10 个学术论文数据库。你的任务是判断哪些数据库最适合用户的查询,调用它们,并返回结果。
核心工作流程
-
理解查询——用户想查找什么?是通过 DOI 查找特定论文、查找某个主题的论文、某位作者的出版物、开放获取 PDF,还是全文?这将决定要查询哪些数据库。
-
选择数据库——使用下方的数据库选择指南。很多查询适合同时查询多个数据库,例如先在 PubMed 中搜索论文,再通过 Unpaywall 查找开放获取版本。
-
阅读参考文件——每个数据库在
references/中都有一个参考文件,其中包含端点详情、查询格式和调用示例。在进行 API 调用前,请阅读相关文件。 -
进行 API 调用——请参阅下方的进行 API 调用部分,了解在你的平台上应使用哪个 HTTP 获取工具。
-
返回结果——务必返回:
- 每个数据库的原始 JSON 响应(arXiv 则返回解析后的 XML)
- 已查询的数据库列表,并注明使用的具体端点
- 如果查询没有返回结果,请明确说明,而不要省略
数据库选择指南
根据用户意图匹配合适的数据库。
按使用场景
| 用户询问的内容…… | 主要数据库 | 也可考虑 |
|---|---|---|
| 生物医学主题相关论文 | PubMed | Semantic Scholar、OpenAlex |
| 生物医学文章全文 | PMC | CORE |
| 生物学预印本 | bioRxiv | Semantic Scholar、OpenAlex |
| 健康/医学预印本 | medRxiv | Semantic Scholar、OpenAlex |
| 物理、数学或计算机科学预印本 | arXiv | Semantic Scholar、OpenAlex |
| 跨所有领域的论文 | OpenAlex | Semantic Scholar、Crossref |
| 通过 DOI 查找特定论文 | Crossref | Unpaywall、Semantic Scholar |
| 论文的开放获取 PDF | Unpaywall | CORE、PMC |
| 引文关系图(谁引用了谁) | Semantic Scholar | OpenAlex |
| 作者的出版物 | Semantic Scholar | OpenAlex |
| 论文推荐 | Semantic Scholar | -- |
| 全文(任何领域) | CORE | PMC(仅限生物医学) |
| 期刊/出版商元数据 | Crossref | OpenAlex |
| 资助方信息 | Crossref | OpenAlex |
| 在 PMID/PMCID/DOI 之间转换 | PMC(ID Converter) | Crossref |
| 按日期查找最新预印本 | bioRxiv、medRxiv | arXiv |
跨数据库查询
| 用户询问的内容…… | 要查询的数据库 |
|---|---|
| 了解论文的所有信息(元数据 + 引用 + OA) | Crossref + Semantic Scholar + Unpaywall |
| 全面的文献检索 | PubMed + OpenAlex + Semantic Scholar |
| 查找并阅读论文 | PubMed(查找)+ Unpaywall(OA 链接)+ PMC 或 CORE(全文) |
| 预印本及其已发表版本 | bioRxiv/medRxiv + Crossref |
| 作者概览及引文指标 | Semantic Scholar + OpenAlex |
如果查询涉及多种需求(例如,“查找有关 CRISPR 的论文并获取 PDF”),请并行查询相关数据库。
常见标识符格式
不同数据库使用不同的标识符系统。如果查询失败,可能是标识符格式不正确。
| 标识符 | 格式 | 示例 | 使用方 |
|---|---|---|---|
| DOI | 10.xxxx/xxxxx | 10.1038/nature12373 | 所有数据库 |
| PMID | 整数 | 34567890 | PubMed、PMC、Semantic Scholar |
| PMCID | PMC + 数字 | PMC7029759 | PMC、Europe PMC |
| arXiv ID | YYMM.NNNNN | 2103.15348 | arXiv、Semantic Scholar |
| OpenAlex ID | W + 数字 | W2741809807 | OpenAlex |
| Semantic Scholar ID | 40 位十六进制数 | 649def34f8be... | Semantic Scholar |
| ORCID | 0000-XXXX-XXXX-XXXX | 0000-0001-6187-6610 | OpenAlex、Crossref |
| ISSN | XXXX-XXXX | 0028-0836 | Crossref、OpenAlex |
**交叉引用 ID:**Semantic Scholar 可通过前缀接受 DOI、PMID、PMCID 和 arXiv ID(例如,DOI:10.1038/nature12373、PMID:34567890、ARXIV:2103.15348)。OpenAlex 可通过前缀接受 DOI 和 PMID(doi:10.1038/...、pmid:34567890)。使用 PMC ID Converter 在 PMID、PMCID 和 DOI 之间进行转换。
API 密钥和访问权限
这些数据库大多完全开放。部分数据库使用 API 密钥可提高速率限制。
需要 API 密钥或使用密钥更有优势的数据库
| 数据库 | 环境变量 | 是否必需? | 注册 |
|---|---|---|---|
| NCBI(PubMed、PMC) | NCBI_API_KEY | 否(不使用时为 3 req/s,使用时为 10 req/s) | https://www.ncbi.nlm.nih.gov/account/settings/ |
| CORE | CORE_API_KEY | 获取全文时必需 | https://core.ac.uk/services/api |
| Semantic Scholar | S2_API_KEY | 否(不使用时共享请求池) | https://www.semanticscholar.org/product/api#api-key-form |
| OpenAlex | OPENALEX_API_KEY | 建议使用 | https://openalex.org/settings/api |
完全开放的数据库(无需密钥)
| 数据库 | 备注 |
|---|---|
| bioRxiv / medRxiv | 无需身份验证,无已公布的速率限制 |
| arXiv | 无需身份验证,最多每 3 秒 1 次请求 |
| Crossref | 无需身份验证;添加 mailto 参数即可使用礼貌请求池(速率限制提高 2 倍) |
| Unpaywall | 无需身份验证;需要 email 参数 |
加载 API 密钥
- 先检查环境——密钥可能已经导出(例如,
$NCBI_API_KEY)。 - 再检查
.env——查看当前工作目录中的.env。 - 不使用密钥继续——大多数 API 仍可使用,但速率限制较低。告知用户缺少哪个密钥以及如何获取。
发起 API 调用
使用环境中的 HTTP 获取工具调用 REST 端点:
| 平台 | HTTP 获取工具 | 备用方案 |
|---|---|---|
| Claude Code | WebFetch | 通过 Bash 使用 curl |
| Gemini CLI | web_fetch | 通过 shell 使用 curl |
| Windsurf | read_url_content | 通过终端使用 curl |
| Cursor | 无专用获取工具 | 通过 run_terminal_cmd 使用 curl |
| Codex CLI | 无专用获取工具 | 通过 shell 使用 curl |
| Cline | 无专用获取工具 | 通过 execute_command 使用 curl |
如果获取工具失败,请改用任何可用 shell 工具通过 curl 发起请求。
特殊情况
- arXiv 返回的是 Atom XML,而不是 JSON。解析该格式,或使用
curl提取相关字段。如果可用,可考虑通过简单的解析器处理数据。 - PMC eFetch 在获取全文时返回 JATS XML。这是预期行为——全文文章采用 XML 格式。
- Crossref 和 Unpaywall 添加
mailto参数或电子邮件地址后,可使用礼貌/快速请求池。
请求指南
- 对于 NCBI API(PubMed、PMC):不使用密钥时最多 3 req/sec,使用密钥时最多 10 req/sec。请按顺序发起请求。
- 对于 arXiv:最多每 3 秒 1 次请求。请耐心等待。
- 对于 Crossref:5 req/sec(公共请求池),10 req/sec(使用
mailto的礼貌请求池)。 - 对于其他没有严格限制的 API,可以并行查询多个数据库。
- 如果收到 HTTP 429(速率限制),请稍等片刻后重试一次。
错误恢复
- 检查标识符格式 -- 使用“常见标识符格式”表。PMID 无法用于 arXiv,arXiv ID 也无法直接用于 PubMed。
- 尝试其他标识符 -- 如果 DOI 在某个数据库中无法使用,请改用标题或 PMID。
- 尝试其他数据库 -- 如果 PubMed 搜不到一篇计算机科学论文,请尝试 Semantic Scholar 或 OpenAlex。
- 报告失败情况 -- 告知用户哪个数据库失败、出现了什么错误,以及你尝试了哪些替代方法。
输出格式
按以下格式组织你的回复:
## Databases Queried
- **PubMed** -- esearch + esummary for "CRISPR gene therapy"
- **Unpaywall** -- DOI lookup for 10.1038/...
## Results
### PubMed
[raw JSON response or formatted results]
### Unpaywall
[raw JSON response]
如果结果非常多,请展示最相关的部分,并说明还有更多数据可用。但默认情况下应展示完整的原始 JSON——用户要求查看原始数据。
可用数据库
进行任何 API 调用前,请先阅读相关参考文件。
生物医学文献
| 数据库 | 参考文件 | 涵盖内容 |
|---|---|---|
| PubMed | references/pubmed.md | 3700 多万条生物医学引文、摘要和 MeSH 主题词 |
| PMC | references/pmc.md | 1000 多万篇生物医学全文文章(JATS XML)和 ID 转换 |
预印本服务器
| 数据库 | 参考文件 | 涵盖内容 |
|---|---|---|
| bioRxiv | references/biorxiv.md | 生物学预印本(按日期/DOI 浏览,不支持关键词搜索) |
| medRxiv | references/medrxiv.md | 健康科学预印本(按日期/DOI 浏览,不支持关键词搜索) |
| arXiv | references/arxiv.md | 物理、数学、计算机科学、生物学和经济学预印本(关键词搜索、Atom XML) |
多学科索引
| 数据库 | 参考文件 | 涵盖内容 |
|---|---|---|
| OpenAlex | references/openalex.md | 2.5 亿多篇作品、作者、机构、主题和引文数据 |
| Crossref | references/crossref.md | 1.5 亿多条 DOI 元数据、期刊、资助方和参考文献 |
| Semantic Scholar | references/semantic-scholar.md | 2 亿多篇论文、引文图谱、AI 生成的 TLDR 和推荐 |
开放获取与全文
| 数据库 | 参考文件 | 涵盖内容 |
|---|---|---|
| CORE | references/core.md | 全球开放获取知识库中的 3700 多万篇全文 |
| Unpaywall | references/unpaywall.md | 任意 DOI 的开放获取状态和 PDF 链接 |