術(shù)文獻(xiàn)并返回可復(fù)現(xiàn)的出處信息)
如何用 paper-lookup 技能檢索學(xué)術(shù)文獻(xiàn)并返回可復(fù)現(xiàn)的出處信息【免費(fèi)下載鏈接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000 scientists worldwide. 165 ready-to-use validated skills plus 100 scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skillspaper-lookup 是 scientific-agent-skills 倉庫中的一個(gè)技能它把 11 個(gè)學(xué)術(shù)文獻(xiàn) APIPubMed、PMC、Europe PMC、bioRxiv、medRxiv、arXiv、OpenAlex、Crossref、Semantic Scholar、CORE、Unpaywall整理成帶文檔端點(diǎn)和已知故障模式的參考文件配套四個(gè)只用標(biāo)準(zhǔn)庫的 Python 腳本。它的目標(biāo)是把找一篇文獻(xiàn)變成一次可復(fù)現(xiàn)的檢索——回答里要帶足端點(diǎn)、參數(shù)、標(biāo)識(shí)符和訪問日期讓人或另一個(gè) agent 能夠原樣重放這次調(diào)用。適用前提來自技能 frontmatter 的 compatibility 說明需要網(wǎng)絡(luò)訪問和curl隨附腳本要求Python 3.11只用標(biāo)準(zhǔn)庫不需要任何憑據(jù)即可基本使用NCBI_API_KEY、S2_API_KEY、CORE_API_KEY、OPENALEX_API_KEY四個(gè)環(huán)境變量只用于提高速率上限或解鎖全文例如 NCBI 無 key 為 3 req/s有 key 為 10 req/sCORE 的全文檢索需要 key。準(zhǔn)備工作先讀參考文件再發(fā)請(qǐng)求技能的硬性要求是調(diào)用某個(gè)數(shù)據(jù)庫之前先讀它對(duì)應(yīng)的參考文件。每個(gè)數(shù)據(jù)庫在 skills/paper-lookup/references/ 下有一個(gè).md文件包含端點(diǎn)、參數(shù)表、示例調(diào)用、響應(yīng)結(jié)構(gòu)和該 API 具體會(huì)在哪里悄悄出錯(cuò)。技能文檔明確寫著故障章節(jié)不是可選背景錯(cuò)誤答案就是從那里來的見 skills/paper-lookup/SKILL.md。按意圖選庫這是文檔給出的選型規(guī)則節(jié)選自 SKILL.md 的 Database Selection Guide用戶意圖首選庫也可考慮生物醫(yī)學(xué)話題的論文PubMedEurope PMC、Semantic Scholar、OpenAlex在全文里做關(guān)鍵詞檢索Europe PMCCORE生物預(yù)印本按主題Europe PMCSRC:PPRSemantic Scholar、OpenAlex預(yù)印本按日期或 DOI 瀏覽bioRxiv / medRxivEurope PMC物理、數(shù)學(xué)、CS 預(yù)印本arXivSemantic Scholar、OpenAlex跨所有學(xué)科的論文OpenAlexSemantic Scholar、Crossref按 DOI 查特定論文CrossrefUnpaywall、Semantic Scholar論文的開放獲取 PDFUnpaywallCORE、PMC引用關(guān)系圖 / 某作者的發(fā)表Semantic ScholarOpenAlex注意兩點(diǎn)選型邊界bioRxiv 和 medRxiv 自己的 API沒有關(guān)鍵詞檢索只有日期瀏覽和 DOI 查詢所以按主題找預(yù)印本要路由到 Europe PMCPubMed 只有引文和摘要沒有全文全文要走 PMC 或 Europe PMC。如果約束影響正確性但缺失最近卻沒給年份、作者同名很多文檔的要求是先問清再查而不是猜。主路徑一次帶出處信息的主題檢索以檢索某個(gè)生物醫(yī)學(xué)話題的近期論文并核對(duì)其中哪些有開放獲取全文為例按下面順序執(zhí)行。所有命令都在 skills/paper-lookup/ 目錄下運(yùn)行腳本路徑是相對(duì)于該目錄的。第 1 步PubMed eSearch 拿 PMIDs 和總數(shù)curl -s --get https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi \ --data-urlencode dbpubmed \ --data-urlencode termCRISPR gene therapy \ --data-urlencode retmax5 \ --data-urlencode retmodejson \ --data-urlencode sortpub_date \ --data-urlencode toolyour_app_name \ --data-urlencode emailyouexample.com其中tool和email是 NCBI 要求帶上的參數(shù)替換成你自己的應(yīng)用名和郵箱。term支持 PubMed 字段標(biāo)簽[TI]標(biāo)題、[AU]作者、[MH]MeSH和布爾運(yùn)算參數(shù)表見 references/pubmed.md。響應(yīng)文檔示例數(shù)值會(huì)隨查詢變化{ esearchresult: { count: 224107, idlist: [39984857, 39984678, 39984543, 39984210, 39983901] } }count是預(yù)計(jì)總數(shù)先記下它最后要拿來做對(duì)賬。定向查找時(shí)首頁通常就夠窮盡式檢索某作者的全部論文才需要分頁。第 2 步eSummary 取書目字段curl -s https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?dbpubmedid39984857,39984678retmodejson返回字段包括uid、pubdate、source期刊、authors、title、elocationidDOI和articleidsDOI、PMC 等標(biāo)識(shí)符。摘要本身要用 eFetchrettypeabstractretmodetext或retmodexml單獨(dú)取。第 3 步可選分支逐 DOI 核對(duì)開放獲取狀態(tài)從 eSummary 拿到 DOI 后查 Unpaywall。它不接收占位郵箱——文檔明確寫了testexample.com這類值會(huì)被 HTTP 422 拒絕所以必須替換成你自己的真實(shí)郵箱curl -s https://api.unpaywall.org/v2/10.1038/nature12373?emailyouexample.com判斷依據(jù)is_oa為 true 時(shí)取best_oa_location.url_for_pdf作為免費(fèi) PDF 地址oa_status區(qū)分gold/hybrid/bronze/green/closed。注意 Unpaywall 的 search 端點(diǎn)自 2026 年 3 月起持續(xù)返回 HTTP 500文檔要求只走 DOI 查詢先用 PubMed/OpenAlex/Semantic Scholar 找到論文再逐 DOI 核對(duì) OA 狀態(tài)見 references/unpaywall.md。替代入口Europe PMC 一條命令跨庫檢索如果意圖是在全文里搜關(guān)鍵詞或按主題找 bioRxiv 預(yù)印本直接查 Europe PMC——它對(duì) PubMed、PMC 全文、預(yù)印本做統(tǒng)一索引且完全免 key、免郵箱。預(yù)印本主題檢索的文檔范例curl -s --get https://www.ebi.ac.uk/europepmc/webservices/rest/search \ --data-urlencode query(SRC:PPR AND PUBLISHER:bioRxiv AND organoid) \ --data-urlencode formatjsonpageSize10resultTypelite從結(jié)果的doi形如10.1101/...可以繼續(xù)到 bioRxiv API 取預(yù)印本專屬元數(shù)據(jù)如 published-version 鏈接。resultTypecore會(huì)增加摘要、全文鏈接、MeSH 和資助信息。arXiv 檢索用隨附腳本解析 Atom XMLarXiv 只返回 Atom XML沒有 JSON 選項(xiàng)且限流是1 次請(qǐng)求 / 3 秒。文檔要求把響應(yīng)交給解析腳本而不是手寫的解析邏輯curl -s https://export.arxiv.org/api/query?id_list1706.03762 | python3 scripts/arxiv_atom.py -腳本輸出每條記錄的 JSONarxiv_id、title、abstract、authors、pdf_url等并處理了版本后綴、命名空間等已知陷阱。完整參數(shù)用python3 scripts/arxiv_atom.py --help查看。窮盡式分頁paginate.py 與 --dry-run跨 bioRxiv、medRxiv、Europe PMC、OpenAlex、Crossref 的分頁行為各不相同絕對(duì)偏移、不透明游標(biāo)、continuation token、1-based 頁碼技能把這套邏輯固化在 scripts/paginate.py 里。花調(diào)用之前先用--dry-run只打印第一個(gè) URL 不實(shí)際請(qǐng)求確認(rèn)查詢無誤python3 scripts/paginate.py --api europepmc --query SRC:PPR AND organoid --max-records 200 --dry-run python3 scripts/paginate.py --api europepmc --query SRC:PPR AND organoid --max-records 200腳本按響應(yīng)實(shí)際報(bào)告的頁大小步進(jìn)不是假設(shè)的常數(shù)默認(rèn)上限約 1,000 條記錄 / 50 次調(diào)用超過會(huì)停下來要求確認(rèn)而不是靜默截?cái)唷?-list-apis打印各 API 的查詢格式。返回可復(fù)現(xiàn)的出處信息檢索做完后按 SKILL.md 規(guī)定的輸出結(jié)構(gòu)組織回答答案在前出處在后。## Retrieval Summary - Query: 用戶問了什么 - Scope: targeted lookup | exhaustive retrieval - Databases queried: PubMed (esearchesummary), Unpaywall (DOI lookup) - Access date: 日期 ## Results ### PubMed 論文標(biāo)題、作者、年份、期刊、DOI/PMID —— 用戶需要的字段 ### Unpaywall OA 狀態(tài)和最佳 PDF 鏈接 ## Provenance - Endpoints parameters: 足以重放這次調(diào)用的端點(diǎn)與參數(shù) - Identifier conversions: 如有標(biāo)識(shí)符轉(zhuǎn)換 - Count reconciliation: 窮盡式檢索時(shí)預(yù)期總數(shù) vs 實(shí)取數(shù)、抓了幾頁 - Warnings: 空結(jié)果、分頁不全、只有元數(shù)據(jù)無全文、缺 key、端點(diǎn)過期等三條硬性規(guī)則不要默認(rèn)輸出原始 JSON 堆。默認(rèn)給可讀的字段摘要只有用戶明確要原始 JSON 或載荷很小時(shí)才引用相關(guān)切片并標(biāo)注為不受信任的第三方數(shù)據(jù)。大型全文拉取PMC、Europe PMC、CORE應(yīng)存到本地文件并報(bào)告路徑而不是灌滿回答。不要把元數(shù)據(jù)冒充全文。如果jats_to_text.py退出碼為 2誠實(shí)的報(bào)告是該文章拿不到全文這里是摘要開放獲取副本可能在這里而不是用標(biāo)題和作者列表編一段總結(jié)??战Y(jié)果要明說。查不到就是查不到靜默的缺口會(huì)被誤讀成這篇文獻(xiàn)不存在。驗(yàn)證結(jié)果HTTP 200 不等于成功這是技能文檔反復(fù)強(qiáng)調(diào)的核心風(fēng)險(xiǎn)這 11 個(gè) API 會(huì)在 200 響應(yīng)體里報(bào)失敗。驗(yàn)證方式是檢查拿到的數(shù)據(jù)的形狀而不是狀態(tài)碼。逐項(xiàng)核對(duì)現(xiàn)象出現(xiàn)位置判斷方法條目titleError/titletotalResults: 1arXiv 參數(shù)寫錯(cuò)時(shí)把任何條目前先檢查標(biāo)題是否為Errorarxiv_atom.py遇到該 feed 會(huì)以退出碼 3 結(jié)束并回顯查詢200 響應(yīng)體內(nèi)含errCode、無resultListEurope PMC如pageSize1001返回errCode: 404解析結(jié)果前先檢查errCode或resultList缺失status: no articles found配空集合bioRxiv與真沒查到無法區(qū)分除非讀status字段JATS 有完整引文但沒有bodyNCBI eFetch出版商禁止再分發(fā)時(shí)jats_to_text.py以退出碼 2 報(bào)告只有元數(shù)據(jù)不是全文14 字節(jié)純文本Rate exceeded.arXiv 限流HTTP 429持續(xù)限流時(shí)直接斷連curl 報(bào)HTTP000檢查狀態(tài)碼和原始字節(jié)再下結(jié)論修復(fù)方式是等待而不是加力重試另外兩個(gè)查詢回顯檢查用于發(fā)現(xiàn)查詢本身被改寫Europe PMC 響應(yīng)的request.queryString是解析后的查詢——和你發(fā)出去的做 diff抓到被截?cái)嗷蜃冃蔚牟樵冊(cè)傩湃蝖itCountarXiv 的 feedtitle回顯實(shí)際執(zhí)行的查詢。拼錯(cuò)字段前綴author:而不是au:時(shí)arXiv 會(huì)靜默改寫成all:全文檢索并照常返回合理的結(jié)果。計(jì)數(shù)對(duì)賬是窮盡式檢索的驗(yàn)證方式第一響應(yīng)的hitCount/count是總數(shù)逐頁抓完后報(bào)告預(yù)期總數(shù) vs 實(shí)取數(shù)、抓了幾頁、做了哪些本地過濾。paginate.py把實(shí)取數(shù)少于總數(shù)時(shí)的退出碼定為4記錄丟了而不是你設(shè)了上限并區(qū)分你設(shè)了邊界和記錄真的缺失。這些腳本的非零退出碼被文檔定義為信息而不是障礙報(bào)告它說了什么不要繞過它自己重新解析。標(biāo)識(shí)符格式核對(duì)與已知限制檢索失敗時(shí)文檔要求先查標(biāo)識(shí)符格式——這是最常見的原因標(biāo)識(shí)符格式使用方DOI10.xxxx/xxxxx所有庫PMID整數(shù)PubMed、PMC、Europe PMC、Semantic ScholarPMCIDPMC 數(shù)字PMC、Europe PMCarXiv IDYYMM.NNNNNarXiv、Semantic ScholarOpenAlex IDW 數(shù)字OpenAlexEurope PMC ID{source}/{id}對(duì)如MED/32117569Europe PMC跨庫轉(zhuǎn)換有前綴約定Semantic Scholar 接受DOI:、PMID:、ARXIV:前綴OpenAlex 接受doi:、pmid:前綴PMID/PMCID/DOI 之間用 PMC ID Converter 互轉(zhuǎn)。兩個(gè)文檔點(diǎn)名的坑Europe PMC 的id單獨(dú)用不唯一必須連source一起帶構(gòu)造出來的 arXiv DOI10.48550/arXiv.{id}不是可移植鍵——它在 doi.org 可解析但 Crossref 會(huì) 404DataCite DOI未注冊(cè)到 CrossrefOpenAlex 對(duì)部分論文也查不到所以跨庫引用 arXiv 論文應(yīng)優(yōu)先用 arXiv ID 或標(biāo)題檢索詳見 references/arxiv.md。速率與規(guī)模的邊界NCBI 無 key 3 req/s、有 key 10 req/sarXiv 1 次 / 3 秒且被 arXiv 拒絕過的請(qǐng)求不要原樣重試文檔記錄到壞請(qǐng)求的限流懲罰遠(yuǎn)重于正常請(qǐng)求Crossref 公開池 5 req/s加mailto進(jìn)禮貌池 10 req/s。同一限流主機(jī)上的請(qǐng)求必須串行只有不同開放 APIOpenAlex、Crossref、Semantic Scholar、Europe PMC、Unpaywall之間才允許并行且在途請(qǐng)求保持個(gè)位數(shù)。單次檢索超過約 1,000 條記錄或約 50 次調(diào)用時(shí)先和用戶確認(rèn)計(jì)劃真正的大批量需求應(yīng)指向數(shù)據(jù)庫的快照/轉(zhuǎn)儲(chǔ)Unpaywall、OpenAlex、CORE 都提供。API key 的處理規(guī)則也屬于出處紀(jì)律的一部分兩個(gè) API 用查詢字符串認(rèn)證所以你請(qǐng)求的 URL 本身就是憑據(jù)。paginate.py在輸出的出處中自動(dòng)抹掉api_key、email、mailto、tool的值你手寫的任何 URL 記錄要做同樣處理key 永遠(yuǎn)不能出現(xiàn)在回答里?!久赓M(fèi)下載鏈接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000 scientists worldwide. 165 ready-to-use validated skills plus 100 scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考