系统综述初筛助手
综述Agent高级
系统综述初筛助手
用 meta-catalog → meta-search → agentic-search 做 PRISMA-style 初筛
用户场景
医学、生命科学、材料等领域的研究者需要做系统综述,第一步是 PRISMA-style 初筛:从海量文献中筛选出符合纳入标准的候选论文。
预估调用量
~30–80 次 API 调用 / 一次初筛任务
适用工具
meta-catalogmeta-searchagentic-searchcontent调用链路
meta-catalog→ 确认可筛字段→ meta-search 广撒网→ agentic-search 精筛→ PRISMA 流程图
输入示例
系统综述主题:“CAR-T 细胞疗法在实体瘤中的临床试验” 纳入标准:2019–2024年、英文、临床试验类型 排除标准:综述文章、动物实验
输出示例
PRISMA Flow: - Identification: 2,847 records (meta-search) - Screening: 892 records (agentic-search relevance > 0.7) - Eligibility: 156 records (full-text review) - Included: 43 studies Export: CSV with title, DOI, year, relevance_score, inclusion_reason
Agent Prompt 示例
你是一个系统综述初筛 Agent。按 PRISMA 流程执行:
1. meta-catalog 确认可用筛选字段
2. meta-search 广撒网(年份+关键词)
3. agentic-search 语义精筛
4. content 读取摘要判断纳入/排除
5. 输出 PRISMA 流程图和纳入文献列表分步实现
Step 1: 环境准备
安装依赖并配置 API Token
!pip install httpx pandas
import os
os.environ["SCIVERSE_API_TOKEN"] = "sv-your-token-here" # 替换为你的真实值
Step 2: 查询可用筛选字段
用 meta-catalog 确认数据库支持哪些筛选条件
import os
import asyncio
import httpx
BASE = "https://api.sciverse.space"
TOKEN = os.environ["SCIVERSE_API_TOKEN"]
HEADERS = {"Authorization": f"Bearer {TOKEN}"}
async def get_catalog():
async with httpx.AsyncClient(timeout=30) as client:
resp = await client.get(f"{BASE}/meta-catalog", headers=HEADERS)
resp.raise_for_status()
return resp.json()["fields"]
fields = await get_catalog()
for f in fields:
print(f"{f['name']} ({f.get('type','')}): operators={f.get('operators', [])}")
Step 3: 广撒网检索
用 meta-search 按年份和关键词获取候选池
import pandas as pd
async def broad_search(query: str, year_from: int, year_to: int, page_size: int = 100):
"""\u5e7f\u6492\u7f51: \u6309\u5e74\u4efd\u8303\u56f4\u68c0\u7d22\u6240\u6709\u5019\u9009\u6587\u732e"""
all_results = []
page = 1
while True:
async with httpx.AsyncClient(timeout=30) as client:
resp = await client.post(
f"{BASE}/meta-search", headers=HEADERS,
json={
"query": query,
"filters": [
{"field": "publication_published_year", "operator": "FILTER_OP_GTE", "value": year_from},
{"field": "publication_published_year", "operator": "FILTER_OP_LTE", "value": year_to},
],
"page": page, "page_size": page_size
}
)
resp.raise_for_status()
data = resp.json()
all_results.extend((data.get("results") or []))
if len(all_results) >= data.get("total_count", 0) or len((data.get("results") or [])) < page_size:
break
page += 1
return all_results, data.get("total_count", 0)
INCLUSION_QUERY = "CAR-T cell therapy solid tumor clinical trial"
results, total = await broad_search(INCLUSION_QUERY, 2019, 2024)
print(f"Identification: {total} records found")
Step 4: 语义精筛与纳入判断
用 agentic-search 对候选文献做语义相关性评分,筛选符合纳入标准的论文
async def semantic_screen(candidates: list[dict], query: str, top_k: int = 100):
"""\u8bed\u4e49\u7cbe\u7b5b: \u7528 agentic-search \u5bf9\u5019\u9009\u6587\u732e\u8bc4\u5206"""
candidate_ids = {r["doc_id"] for r in candidates if r.get("doc_id")}
async with httpx.AsyncClient(timeout=30) as client:
resp = await client.post(
f"{BASE}/agentic-search", headers=HEADERS,
json={"query": query, "top_k": top_k}
)
resp.raise_for_status()
hits = (resp.json().get("hits") or [])
return [h for h in hits if h.get("doc_id") in candidate_ids]
hits = await semantic_screen(
results,
"CAR-T cell therapy clinical trial solid tumor patients outcomes"
)
# \u6309\u76f8\u5173\u6027\u5206\u6570\u7b5b\u9009
# screening 现在是 identification 候选池的子集
screened = [h for h in hits if h["score"] >= 0.7]
print(f"Screening: {len(screened)} records (score >= 0.7)")
# \u8f93\u51fa PRISMA \u6d41\u7a0b\u6570\u636e
prisma = {
"identification": total,
"screening": len(screened),
"included": len([h for h in screened if h["score"] >= 0.85])
}
print(f"\
PRISMA Flow: {prisma}")
# \u5bfc\u51fa CSV
df = pd.DataFrame(screened)
df.to_csv("screened_papers.csv", index=False)
print("Exported to screened_papers.csv")
注意事项
- 适合医学、生命科学、材料等高频系统综述场景
- meta-search 广撒网阶段可能需要分页拉取,注意 page_size 上限,建议设置 max_pages 防止无限循环
- agentic-search 的 score 阈值建议根据领域调整(0.7–0.85)
- 完整 PRISMA 流程还需人工全文审阅,本案例覆盖自动化初筛部分
- 建议将筛选结果导出为 CSV 便于团队协作审阅
FAQ
是否能替代人工系统综述?
不能,只适合自动化初筛和候选集整理,最终纳入仍需人工判断。
如何控制筛选条件?
用 meta-catalog 确认字段,再用 meta-search 和 agentic-search 逐步筛选。
输出应包含什么?
建议包含候选数量、纳入理由、排除理由、关键字段和可复核证据。
如何降低漏筛?
先用宽条件构建候选池,再逐步加入语义筛选和人工复核。
下一步
还没有 API Key?
登录控制台「密钥」即可创建。同一套 API Key 可用于已开通的 Sciverse、点石与 Skills 能力,提供基础试用额度,具体以账号权限为准。