# Search API Playbook > v0.9 起,本文件作为搜索 API 选择攻略本。搜索返回本身多为发现入口,结论支撑仍以 AGENTS.md 的 Tier 1-2 信源为准。 ## Default Pattern v0.12 起,默认搜索路径收敛到项目内 Python 网关: ```bash uv run python scripts/search.py "" --route scholar --num-results 10 --year-low 2023 uv run python scripts/search.py "" --route evidence --num-results 10 --json --trace uv run python scripts/search.py "" --route patents --num-results 10 uv run python scripts/search.py "" --route news --num-results 10 --time-range m uv run python scripts/search.py "" --route general --num-results 10 uv run python scripts/ground.py "" --json ``` 其中 `scholar / patents / news` 默认走严格模式(Serper 失败不静默降级);需要容错时显式加 `--no-strict-specialized`。`evidence` 是 v0.20.1 之后新增的受控证据发现路由,优先用 Exa highlights/text 为 evidence packet 提供候选来源。 MCP server 只作为交互式补漏和特殊工具能力,不作为文献、专利、新闻检索主路径。这样 OpenCode、Codex、Gemini CLI、Claude Code 都能复用同一套路由,减少每个平台单独配置 Tavily/Exa/Brave MCP 的依赖。 ## Search Sources ### Tavily - 优点:LLM 友好,摘要质量稳定,适合快速发现方向。 - 用法:初扫、普通网页、报告线索、交叉补漏;`research()` 更适合 Phase 1 初步扫描、薄弱章节补证据、Phase 3 回炉。 - 风险:不能把普通网页当结论支撑,必须追溯原始来源。 - 规则:Tavily Research 输出必须保存为过程文件,并经过 source-quality 评分、去重和 source_id 归一化;不要直接把 Tavily 的综合报告当作章节正文或最终证据。 ### Exa - 优点:neural/agent search,对官网、公司页、长尾专业内容召回好;highlights/text 适合喂给 agent 做证据筛选。 - 用法:`scripts/search.py --route evidence`、术语核查、公司/产品名纠错、专业网页发现、章节证据补强。 - 风险:macOS 代理环境容易 TLS EOF,项目内 `SearchClient` 已使用 `trust_env=False` 绕开系统代理。 ### Brave - 优点:独立搜索引擎,适合与 Tavily/Exa 交叉验证。 - 用法:Phase 1 初扫、反方证据、中文/英文混合搜索。 - 风险:结果质量波动,需要人工筛 Tier。 ### Serper - 优点:Google Search / Scholar / News 代理,免费额度较高。 - 用法:Google Scholar、Google Patents、新闻时效检索。 - 风险:专利是 `site:patents.google.com` 技巧,不等同官方专利库。 - 项目内调用:`scripts/search.py --route scholar|patents|news`。 ### PubMed / NCBI - 优点:生物医药论文的一手入口。 - 用法:机制、临床、系统综述、meta 分析。 - 风险:无 API key 限流较低;摘要不足以替代全文判断。 ### ClinicalTrials.gov / ChiCTR - 优点:临床试验注册的一手来源。 - 用法:管线、适应症、试验阶段、终点设计、入组状态。 - 风险:注册信息不等于结果;需要结合论文、公司披露、监管文件。 ### openFDA / FDA / EMA / NMPA - 优点:监管公告与标签信息,Tier 1。 - 用法:批准状态、安全性、适应症、审评文件。 - 风险:不同监管地区口径不同,必须注明地区与日期。 ### Patents - 优点:IP 与工艺路线研究的核心证据。 - 用法:Google Patents、USPTO、EPO、CNIPA。 - 风险:专利文本难读,权利要求和实施例要分开判断。 ## Recommended Profiles ## v0.20 Routing Decision - Phase 1 初步扫描:Tavily Research + Exa evidence,目标是形成假设、反证方向、章节任务切分。 - Phase 2 evidence packet:优先 `fda/scholar/patents/news` 等专用路由;需要补充候选证据时用 `evidence`,不要只用 `general`。 - Phase 3 回炉:按 critique 中的证据缺口定向调用 Tavily Research 或 Exa evidence,输出仍需进入 packet/schema。 - General route:只做宽泛发现和兜底,不作为“默认最佳搜索”。 ## Recommended Profiles ### biomed_literature PubMed / NCBI → ClinicalTrials → FDA/EMA/NMPA → `scripts/search.py --route scholar` → `scripts/search.py --route evidence` → Tavily/Brave 补漏。 ### patent_heavy `scripts/search.py --route patents` → USPTO/EPO/CNIPA → 公司年报/招股书 → Exa/Tavily 补同族专利线索。 ### china_market NMPA/CDE → 港交所/上交所/深交所披露 → 中文专业数据库/媒体 → Brave/Serper 中文搜索。 ### investment SEC/交易所披露 → Evaluate/IQVIA/咨询报告 → 公司公告 → 新闻仅作时效入口。 ## Failure Handling - 大量 SSL/TLS 错误:先把 workers 降到 3,再重跑。 - API 限流:保留缓存结果,断点续跑,不要强制 `--force`。 - 搜索返回普通网页:只做线索,继续追原始论文、监管、专利或公司披露。 - 中英文译名冲突:写入 glossary,标 medium/low confidence,交人工复核。