用 AI Agent 自動查找 PubMed 文獻並下載 PDF:給醫藥職場人的低成本工作流

身為藥廠的行銷人員,無論是在業務端、行銷端,或是醫藥學術部門,我們時常會接到外部客戶或內部同仁對於醫學期刊、電子文獻查找的需求,而且很多時候會需要 PDF 檔。

有趣的是,醫學文獻搜尋的大宗平台 PubMed 明明是公開且免費的,而且也有一定比例的文章可以免費下載全文 PDF。那為什麼我們還是常常收到這種 request?

我用 NCBI ESearch 在 2026-05-28 即時計算了一下。PubMed 約有 40,624,611 筆紀錄,其中 free full text [sb] 約有 14,230,055 筆,換算大約是 35.0%。也就是說,粗略來看,PubMed 上約三分之一左右的文獻,可以透過 free full text 路線找到免費全文。這個比例其實不低。

可是實務上,request 還是照樣來。

原因主要有兩個:意願能力。但很多時候,其實是人性,也就是「」。

不管是外部客戶或內部同仁,很多時候大家不是完全不會查,也不是完全不知道 PubMed 在哪裡。只是自己花時間打開電腦、查關鍵字、點進網頁、找 PDF、下載、再存檔,這一串動作很煩。如果發一個 request 給藥廠的 medical MSL 或 marketing PM,下一個 prompt 或訊息,對方就會乖乖開電腦幫忙找。何樂而不為?

當然,這時候通常要稍微包裝一下,讓這件事情看起來比較合理。

為什麼藥廠同仁需要無條件協助查找文獻 paper 呢?這件事其實不見得是我們 JD 上面的主要工作範疇。不過,一旦想找的 paper 可以跟公司的產品扯上一點點毛邊,這件事情就會很自然地變成藥廠員工的份內任務。

包裝方式也很簡單。

如果這個 paper 是 off-label 的,就可以立馬丟給 Medical 去找。如果是 on-label 的,只要跟產品扯上邊,就可以叫 PM 去找。即使下載文獻這件事情,其實完全沒有什麼技術難度可言。

講得直接一點,這就是一種職場裡很常見的「把低階操作丟給看起來應該要負責的人」。

所以,很多時候站在人性的角度來看,很多人明明知道有免費全文電子檔,也不願意自己下載。身為藥廠員工,如果我們時常收到這種 request,傳統做法就是自己守在電腦前面,打開網頁,搜尋關鍵字,點進原始期刊,點選全文下載,然後再轉寄出去,或用通訊軟體傳送。

這個過程快的話 3 到 5 分鐘,慢的話可能 10 分鐘以上。

如果人在辦公室還好。但很多時候收到 request 的人自己可能正在開會,或人在外面出差、拜訪客戶,不見得能隨時開電腦。

所以問題就來了。

面對這種其實很 low-end,但又常常出現的 request,有沒有更有效率的方式?

答案當然是有。

在這個 AI agent 充斥的時代,下載電子文獻全文 PDF 這件事情,其實很適合自動化。於是我這幾天索性用 AI agent 打造了一個自動化工作流,讓我們可以用自然語言,直接透過通訊軟體搭配自己的 OpenClaw,或是利用本地 AI agent,例如 Codex、Claude Code、Antigravity,去呼叫同一套本機工具,自動查找文獻、整理 citation,甚至下載 PDF

你可以用關鍵字請 AI agent 幫你優化搜尋方式,找出高度相關的 PubMed 文獻。你也可以用文獻標題反查 PMID、DOI、PubMed-style citation 或其他 metadata。搜尋完成後,AI agent 也可以進一步利用 Open Access 的 PDF 資源,幫你下載到指定位置。

如果你的服務單位有電子資源權限,也可以另外設定讓 AI agent 透過你所在機構的授權 session 存取全文。這樣一來,即使人在外部通勤移動中,或正在忙其他聽起來比較 high-end 的任務時,也可以把找全文 PDF 這種低級需求快速處理掉,不需要每次都把人綁在電腦前面。

我相信在醫藥領域工作的人,應該都很容易理解這個需求。

所以我把這個自動化 workflow 和腳本整理成公開專案,有興趣的人可以自己體驗看看,感受一下自動化的威力。(當然前提是你要知道怎麼部屬.....🤣)


這個工具在做什麼?

這個專案叫做 PubMed Literature Agent

它的核心想法很簡單:

自然語言需求 -> AI agent -> 本機 CLI -> PubMed / Open Access / 機構授權 session

也就是說,我們不是要每次都讓 AI agent 去網頁上亂點 PubMed。比較穩定的方式,是把 PubMed metadata 查詢、citation 整理、Open Access PDF candidate 探測、PDF 下載這些工作,包成一個本機 CLI。

AI agent 負責理解你的需求,優化搜尋關鍵字,決定要呼叫哪個指令。CLI 負責跟 PubMed、NCBI E-utilities、Unpaywall、Europe PMC 等資料來源溝通。

這樣做有幾個好處。

第一,流程比較穩。網頁 UI 常常會變,但 API 和 CLI 的行為比較可控。

第二,資料比較乾淨。PMID、DOI、PMCID、期刊、日期、citation 都能用結構化資料輸出。

第三,不同 AI agent 可以共用同一套工具。不管你用 Codex、OpenClaw、Claude Code,或是其他本地 agent,都可以走同一套 workflow。


它可以做哪些事?

目前這個工具可以做幾類事情。

第一,用自然語言搜尋 PubMed,而不限制只能用關鍵字搭配搜尋語法。

你可以直接下自然語言指令,請 AI agent 先把中文需求轉成比較適合 PubMed 的英文 search query,再呼叫 CLI 去搜尋。

例如:

請用 PubMed 幫我查找「癌症免疫治療合併自體免疫疾病」相關文獻。
請先幫我優化英文 PubMed 關鍵字,再列出 10 篇最相關文獻,
每篇包含 PMID、DOI、期刊、年份、標題與 PubMed-style citation。

第二,用 PMID、DOI、PMCID 或文章標題取得 metadata

如果你已經知道 PMID,agent 可以直接抓 metadata。如果你只有 DOI 或標題,也可以先反查 PMID,再整理 citation。

第三,下載 Open Access PDF

Open Access,簡稱 OA,指的是可以公開取用的全文資源。這個工具會先找 OA PDF candidate,然後只下載真正 PDF 檔案。若來源回傳的是 HTML、登入頁、錯誤頁或 challenge page,就不會把它硬存成 PDF。

第四,選配機構授權下載

如果你的公司、醫院、學校或研究單位有電子資源授權,你可以在本機設定自己的 proxy/session。這時 AI agent 可以先用 CLI 嘗試 direct proxy path。只有需要登入、CAPTCHA、2FA、裝置驗證或 publisher 頁面觀察時,才開代理瀏覽器。

這裡要講清楚:這不是繞過權限。它只是把你原本有權限做的事情,自動化處理。


部署方式

這個工具目前是 Python CLI。需求很單純:

  • Python 3.10+
  • Git
  • 一個可以執行本機命令的 AI agent

Linux / macOS / WSL 可以這樣安裝:

git clone https://github.com/taoyutsun/pubmed-literature-agent.git
cd pubmed-literature-agent
cp CONFIG.example.env pubmed-agent.env
chmod 600 pubmed-agent.env
python3 -m py_compile pubmed_agent.py

Windows PowerShell 可以這樣安裝:

git clone https://github.com/taoyutsun/pubmed-literature-agent.git
cd pubmed-literature-agent
copy CONFIG.example.env pubmed-agent.env
python -m py_compile pubmed_agent.py

接著打開 pubmed-agent.env,至少建議填這幾個欄位:

NCBI_TOOL=pubmed_literature_agent
NCBI_EMAIL=your-email@example.com
UNPAYWALL_EMAIL=your-email@example.com
PUBMED_AGENT_DOWNLOAD_DIR=AUTO

PUBMED_AGENT_DOWNLOAD_DIR=AUTO 代表下載到目前使用者的 Downloads。Windows / WSL 環境會對應到 Windows 使用者的 Downloads,其他環境則會用 ~/Downloads


NCBI API key 要不要申請?

少量查詢可以先不申請。

NCBI E-utilities 預設限制是 3 requests/second。如果使用 My NCBI API key,通常可以提高到 10 requests/second。對一般個人使用來說,不一定馬上需要。但如果你會讓 AI agent 一次搜尋很多文獻、批次整理 citation,建議還是申請。何況 NCBI 提供的是免費的 API key,這麼香,不拿嗎?

申請方式很簡單:

  1. 登入 NCBI 帳號管理
  2. 點右上角使用者名稱,進入 Account settings
  3. 找到 API Key Management
  4. Create an API Key
  5. 把 key 填到 pubmed-agent.envNCBI_API_KEY= 後方。

官方說明可以看這裡:

NLM: What is an API Key and how can I get it?

另外,Unpaywall email 不需要特別註冊帳號。你只要填一個一般聯絡 email,讓 API request 有 contact email 即可。




快速測試:下載一篇 Open Access paper

公開版 README 內建一篇 PLOS ONE 的測試文獻:

  • PMID:38625861
  • DOI:10.1371/journal.pone.0300789

你可以先請 AI agent 用自然語言操作:

請使用這個 repo 的 PubMed Literature Agent,
下載 PMID 38625861 的 Open Access PDF。
請先確認 metadata 與 OA PDF 下載連結,
再下載真正 PDF 檔案到 Downloads,
最後回報檔名、PMID、DOI、來源與檔案大小。

如果你想自己用 CLI 跑,也可以這樣:

./pubmed-agent fetch 38625861 --output json
./pubmed-agent citation 38625861
./pubmed-agent oa-links 38625861
./pubmed-agent download 38625861 --mode oa

Windows PowerShell 則是:

.\pubmed-agent.cmd fetch 38625861 --output json
.\pubmed-agent.cmd citation 38625861
.\pubmed-agent.cmd oa-links 38625861
.\pubmed-agent.cmd download 38625861 --mode oa

這篇 paper 本身只是測試材料。這裡要確認的是整個 pipeline:

  1. PMID 能不能解析。
  2. metadata 能不能抓到。
  3. citation 能不能整理。
  4. OA PDF candidate 能不能找到。
  5. PDF 能不能真正下載。
  6. 下載位置是否正確。


如果需要機構電子資源呢?

如果你所在單位有電子資源授權,可以再設定 institution route。

常見 EZproxy-like 設定大概像這樣:

INSTITUTION_PROXY_HOST_SUFFIX=library.example.edu
INSTITUTION_PROXY_REWRITE_MODE=hyphen-host
INSTITUTION_PROXY_SCHEME=https
INSTITUTION_COOKIE_FILE=institution-storage-state.json

如果你的機構不是 host rewrite,而是入口網站或 portal session,就可以改成:

INSTITUTION_PORTAL_URL=https://your-institution.example.edu/login
INSTITUTION_PROXY_REWRITE_MODE=portal
INSTITUTION_COOKIE_FILE=institution-storage-state.json

INSTITUTION_COOKIE_FILE 是登入後由 browser automation 匯出的 Playwright storage state。它可能包含有效登入 session,所以不要公開。

機構下載可以用這種方式測試:

./pubmed-agent institution-links 39874977
./pubmed-agent download 39874977 --mode institution

但這裡要提醒一下,不是每個讀者都能跑成功。機構下載會受三件事影響:

  1. 你的機構是否真的有訂閱該期刊。
  2. 你的 session / cookie 是否仍有效。
  3. publisher_pdf_rules.json 是否支援該出版社的 PDF endpoint。

所以這個功能比較像進階選配。沒有機構權限的人,還是可以先用 Open Access 免錢的路線。


為什麼不要全部交給瀏覽器點網頁?

很多人一開始會想,既然 AI agent 可以開瀏覽器,那讓它自己打開 PubMed、搜尋、點 PDF,不就好了嗎?

可以,但不一定穩,而且速度慢。

網頁 UI 會變,按鈕位置會變,登入狀態會失效,publisher 頁面也可能導向不同版本。更麻煩的是,有時候 AI agent 會把登入頁或錯誤頁當成下載成功。

所以我會把流程拆成兩個層次。

第一層是 CLI。只要可以走 API 或已知 PDF endpoint,就用 CLI。這層最穩,也最適合自動化。

第二層才是 browser automation。只有遇到登入、CAPTCHA、2FA、裝置驗證、或需要觀察 publisher HTML / network request 時,才開瀏覽器。

講白話,CLI 是日常主流程,瀏覽器是例外處理。


這個工具適合誰?

我覺得最適合這幾類人。

  • 藥廠 marketing PM
  • Medical affairs
  • 業務端需要支援客戶文獻需求的人
  • 常常要整理醫學 citation 的人
  • 研究助理或研究生
  • 想把 PubMed 查詢流程交給 AI agent 的人
  • 各類醫療人員 (醫師、藥師、護理師....)

這個工具不是要取代專業文獻評讀。它處理的是很前段、很機械、也很常被低估的工作:把文獻找出來,把 metadata 整理好,把 PDF 下載好。

真正的價值判讀,還是要靠人。

但如果只是找 paper、整理 citation、下載 OA PDF,老實說,這種工作真的不值得每次都人工做。

而且當你習慣了 AI agent 自動化的操作流程,你會發現根本不需要把這種 low-end 的事情丟給其他人(消耗自己的PR),因為 AI 速度更快。

拜託別人幫忙的 PR 應該要保留在真正非人不可的事情上。


安全與合規邊界

最後還是要講一下邊界。

這個工具的預設路線是 PubMed / NCBI E-utilities、Open Access、Unpaywall、Europe PMC,以及你自己有權限的機構電子資源。

它不內建私人帳密。

它不內建任何特定機構的 proxy。

它不公開 cookie 或 session。

它也不把第三方 mirror 或規避型來源放成預設能力。

如果你要使用機構電子資源,請自己確認所在單位與出版社的使用規範。尤其不要拿這種工具做大量批次下載。那不是自動化,那是在替自己找麻煩。

而且抓了這麼多你也不會看,不要自欺欺人😂


結語

我一直覺得,AI agent 最適合處理的,不一定是那些看起來很酷炫還是高大尚的事情。

很多時候,真正有感的是這種低階、重複、煩人、但又常常跑不掉的小工作。

找 paper、整理 citation、下載 PDF,就是這種典型任務。

它不難,但很耗人。

如果可以把這件事變成一句自然語言 request,然後讓 AI agent 自己去查、去抓、去下載、去回報,這對醫藥職場的人來說,省下來的除了每一次的 3 分鐘或 10 分鐘,更重要的是少一次被低價值任務打斷的成本

我把這套 workflow 開源分享出來,希望可以造福有緣的讀者。

如果你是動不動就需要發 request 請別人提供全文的人,以後可以學習讓這種 request 歸零,用 AI agent 自己搞定,要 paper 不求人。

如果你是動不動就會接到這種 request 的苦命人,恭喜你看到這篇,你可以解脫了。


📌 您可能也會有興趣的其他文章:


參考資料

留言