| name | parallel-search |
| description | 使用多組關鍵字並行搜尋,提高文獻覆蓋率。觸發:並行搜尋、parallel search、批量搜尋、擴展搜尋、多組搜尋、同時搜、找更多、廣泛搜尋、comprehensive search。 |
並行文獻搜尋技能
概述
利用 Agent 的並行呼叫能力來加速文獻搜尋,提高覆蓋率。
核心概念:
- 預設搜尋策略(日期、排除詞、文章類型)
- 策略工具返回多組搜尋語法(自動整合策略設定)
- Agent 並行呼叫搜尋工具
- 合併工具整合結果
可用工具
🔍 pubmed-search MCP 搜尋工具
| 工具 | 用途 | 關鍵參數 |
|---|---|---|
generate_search_queries |
從主題生成 MeSH + 同義詞材料 | topic, strategy, check_spelling |
search_literature |
執行 PubMed 搜尋(可並行多次) | query, limit, min_year, article_type |
merge_search_results |
合併多組搜尋結果並去重 | results_json |
expand_search_queries |
結果不足時擴展搜尋 | topic, expansion_type |
parse_pico |
解析 PICO 臨床問題 | description 或 p, i, c, o |
📊 結果處理工具
| 工具 | 用途 | 關鍵參數 |
|---|---|---|
fetch_article_details |
取得完整文章資訊 | pmids (逗號分隔) |
get_citation_metrics |
取得 iCite 引用指標 (RCR) | pmids, sort_by, min_rcr |
find_related_articles |
找相似文章 | pmid |
find_citing_articles |
找引用此文章的研究 | pmid |
💾 Session 管理工具
| 工具 | 用途 | 說明 |
|---|---|---|
get_session_pmids |
取得 session 中的 PMID | search_index=-1 取最近搜尋 |
get_session_summary |
查看 session 狀態 | 確認快取和搜尋歷史 |
list_search_history |
列出搜尋歷史 | 回溯過往搜尋 |
📚 儲存文獻工具(⚠️ 注意優先級)
| 工具 | 資料來源 | 使用時機 |
|---|---|---|
save_reference_mcp |
pubmed-search HTTP API | 永遠優先使用 ✅ |
save_reference |
Agent 傳遞 | 僅當 API 不可用時 fallback ⚠️ |
工作流程
Step 0: (可選)設定搜尋策略
呼叫:configure_search_strategy(criteria_json={
"date_range": "2019-2024",
"exclusions": ["animal", "review"],
"article_types": ["Clinical Trial", "Randomized Controlled Trial"]
})
Step 1: 生成搜尋策略
呼叫:generate_search_queries(
topic="remimazolam ICU sedation",
strategy="comprehensive",
use_saved_strategy=True
)
返回 5 組 queries,策略已自動整合。
Step 2: Agent 並行執行搜尋
Agent 看到 instruction 後,會並行呼叫:
<parallel_tool_calls>
<tool_call id="1">
<name>search_literature</name>
<args>{"query": "...", "limit": 20}</args>
</tool_call>
<tool_call id="2">
<name>search_literature</name>
<args>{"query": "...", "limit": 20}</args>
</tool_call>
<!-- ... 更多並行呼叫 ... -->
</parallel_tool_calls>
Step 3: 合併結果
呼叫:merge_search_results(results_json='[
{"query_id": "q1_title", "pmids": ["123", "456"]},
{"query_id": "q2_tiab", "pmids": ["456", "012"]}
]')
返回去重後的結果,標記高相關性文獻(出現在多個搜尋中)。
迭代式搜尋擴展
當初始搜尋結果不夠時:
Phase 1: 初始搜尋
→ generate_search_queries(topic="...")
→ 並行執行 5 組查詢
→ merge_search_results → 只找到 15 篇,不夠!
Phase 2: 擴展搜尋
→ expand_search_queries(
topic="...",
existing_query_ids="q1,q2,q3,q4,q5",
expansion_type="synonyms"
)
→ 並行執行新查詢
→ merge_search_results → 共 32 篇
Phase 3: 如果還不夠
→ expand_search_queries(..., expansion_type="related")
→ 繼續...
擴展類型選擇指南
| 情況 | expansion_type | 預期效果 |
|---|---|---|
| 擔心遺漏不同術語 | synonyms |
sedation → conscious sedation |
| 想找類似比較研究 | related |
remimazolam → propofol |
| 結果太少 | broader |
使用 OR、移除限制 |
| 結果太多 | narrower |
限定 RCT、最近 2 年 |
流程圖
generate_search_queries(topic)
│ 5 組查詢
▼
並行執行 search_literature
│
▼
merge_search_results
│
▼
┌───────┴───────┐
│ 結果足夠嗎? │
└───────┬───────┘
│ No
▼
expand_search_queries(type=...)
│ 新查詢
▼
並行執行新查詢
│
▼
merge(含所有結果)
│
└──→ 重複直到足夠
優點
- 更快:多個搜尋同時執行
- 更全面:不同角度的關鍵字組合
- 可追蹤:知道每篇文獻來自哪個搜尋
- 可重現:策略被記錄下來
- 策略整合:日期/排除詞自動套用
搜尋後儲存文獻
完成搜尋和篩選後,儲存選中的文獻:
# ✅ PRIMARY:使用 MCP-to-MCP 驗證(永遠優先)
呼叫:save_reference_mcp(
pmid="12345678",
agent_notes="Key paper on parallel search methodology"
)
# ⚠️ FALLBACK:僅當 pubmed-search API 不可用時
呼叫:save_reference(article={完整 metadata dict})
為什麼 save_reference_mcp 優先?
save_reference_mcp:mdpaper 直接從 pubmed-search API 取得驗證資料,Agent 無法篡改save_reference:Agent 傳遞 metadata,可能被修改或幻覺
Session 工具使用技巧
搜尋結果自動暫存在 session 中,不需要記住所有 PMID:
# 取得最近搜尋的 PMID
呼叫:get_session_pmids(search_index=-1)
# 取得前一次搜尋的 PMID
呼叫:get_session_pmids(search_index=-2)
# 在其他工具中使用 "last" 快捷方式
呼叫:get_citation_metrics(pmids="last", sort_by="relative_citation_ratio")
呼叫:prepare_export(pmids="last", format="ris")
相關技能
literature-review- 完整的文獻回顧流程concept-development- 搜尋後發展概念