跨源检索全球临床试验注册库并归一化聚合。可自动化直连:ClinicalTrials.gov v2、PubChem(公开 REST API,零保密数据或信息输入)。中国 CDE 因 WAF 拦截自动化浏览器,改为外部工作流自动化检索(第三方端点,仅公开查询词出域,需 Bearer token,已实测无 token 返回 401);ChiCTR 经统一端点(source=chictr,第三方,共享 Bearer)检索,用户粘贴页面仅作本地解析兜底;EU CTIS 仅支持按号 retrieve(无搜索);ISRCTN 公开 API 已失效,但可经统一端点(source=isrctn)取。聚合分期/状态/申办方/时间线/竞品格局,产出 JSON / Markdown(可选 PNG;可选经 download_docs.py 拉取 EU-CTR 文档 PDF 到本地 --out-dir)。CDE 亦支持可选商业 API key(--cde-api-key,仅发往官方 CDE API)。零保密数据或信息输入,B 档(普通数据输入 + 对外检索),可快速推广技能。 / Cross-source search of global clinical-trial registries, normalized and aggregated. Auto-direct sources: ClinicalTrials.gov v2, PubChem (public REST, ordinary input + public retrieval). China CDE blocks automated browsers via WAF → external workflow for automatable retrieval (third-party endpoint, public query terms only egress, Bearer token REQUIRED — verified: HTTP 401 without it); ChiCTR retrieved via unified endpoint (source=chictr, third-party, shared Bearer), with user-pasted page as a local-parse fallbac
文档
Clinical Trial Literature Search / 临床试验文献检索专家
试用检索公开学术文献(OpenAlex 主源 + Europe PMC/MeSH 生物医学精准[默认开启] + bioRxiv/medRxiv 预印本 + arXiv 方法学广度),归一化合并去重,可产出 CSM 安全性定性子集,协助提供OA文献PDF下载。
它能做什么
检索公开学术文献(OpenAlex 主源 + Europe PMC/MeSH 生物医学精准[默认开启] + bioRxiv/medRxiv 预印本 + arXiv 方法学广度),归一化合并去重,可产出 CSM 安全性定性子集,协助提供OA文献PDF下载。
技能文档
Language
- English guide → README.md · 中文指南 → README_zh-CN.md
- Responds in the user's input language (auto locale detect). SKILL.md body /
references/*.md/AGENTS.mdare English-only (agent-facing). Walkthroughs & troubleshooting → README.
Purpose
Retrieve published scholarly literature (peer-reviewed papers, systematic reviews, conference abstracts, preprints) about a drug / disease / method, normalize heterogeneous records from multiple public bibliographic sources into one de-duplicated evidence base, and surface the evidence landscape plus a CSM (cumulative safety monitoring) qualitative subset. Supports trial-planning background, protocol / CSR introductions, and published-safety literature checks.
Positioning within the ct- library
The four B-tier public-intel skills are complementary:
| Skill | Answers | Object retrieved | Source family |
|---|---|---|---|
ct-registry | What trials are registered / ongoing / completed? | Trial-registry metadata | Registry libraries |
ct-literature | What evidence has been published? | Publications | Literature libraries |
ct-safety | Is a drug–event over-reported (signal)? | FAERS cases | Adverse-event databases |
ct-pipeline | Aggregate the above into a strategic intel brief | Consumes the three JSONs | Public-intel layer |
Boundaries: ct-registry never fetches paper full-text/abstracts; ct-literature never fetches registry structured metadata. ct-literature --safety surfaces published safety literature — qualitative, must NOT replace ct-safety's FAERS disproportionality. Not sure which skill? Route via ct-advisor; full competitive-intel picture → ct-pipeline directly (ct-base/BASE.md §15).
Data Sources
| Source | Access | Status | Role |
|---|---|---|---|
| OpenAlex | Public REST; free key recommended (100k/day via .env auto-load) — keyless capped 100/day since 2026-02-13 | Required (primary) | Broad coverage + citation counts |
| Europe PMC | Public REST (MEDLINE / PubMed Central), no key, MeSH-indexed | Default ON (--no-with-europepmc) | Biomedical precision + MeSH |
| Semantic Scholar | Public Graph API, no key, rate-limited (429) | Optional --with-semantic-scholar | Citation-aware ranking; degrades gracefully on 429 |
| bioRxiv / medRxiv | Via Europe PMC SRC:PPR + publisher filter | Optional --with-biorxiv / --with-medrxiv | Preprints (Tier P) |
| arXiv | Public Atom API, no key | Optional --with-arxiv | Methodology breadth |
| PROSPERO | Public REST (CRD York); auth header undocumented | Optional --with-prospero (key-gated, reserved source) | Duplication-avoidance / protocol discovery |
All are public bibliographic APIs — no WAF. OpenAlex keyless = 100 credits/day since 2026-02-13; a free key lifts to 100k/day (
--openalex-key/ envOPENALEX_API_KEY/ skill.envauto-load; key never printed). Semantic Scholar skips outright when no key is configured (manual application review).PROSPERO is a reserved source (2026-08-12): its public REST auth header is undocumented; unauthenticated probes return
{"status":"error",...}.--with-prosperois a dormant interface: without a token it degrades to a graceful no-op skip (returnsNone, no file written) and is not claimed functional. Supply--prospero-token(+--prospero-header) to exercise it; parser is schema-tolerant (JSON + XML) but must be re-validated against a real 200 before declared done. No token application planned.
Clinical guideline sources (--with-guidelines, opt-in · LOCAL corpus)
Guidelines are version-pinned reference standards — at analysis time we read a pre-built LOCAL corpus, never "fetch latest" per run.
🔒 Data-protection split. The skill tree ships pointer-only (
references/guidelines/guidelines_index.json: org/title/URL/version — publish-safe). Full-text documents are NEVER written into the skill — they live in the author's self-controlled Coze KB (or an EXTERNAL local cache~/.workbuddy/ct-guideline-docs, opt-in via--download, off by default); ct-advisor consults that KB for native guideline Q&A.
- Author / build-time (network):
python adapters/build_guidelines.py --topic --runaggregates 12+ sources →guidelines_index.json(96 curated entries, schema v1). SAFE PREVIEW: omit--run(dry-run, no network/write). - Analysis-time (zero network):
--with-guidelineson the main pipeline →adapters/guideline_corpus.load()reads the local index →guidelines.json+guidelinesblock in.merged.json.
| Tier | Sources | How it got into the corpus |
|---|---|---|
api | OpenAlex, Europe PMC, GIN, WHO IRIS | fetched by the builder (OA-PDF download attempted) |
api (key-gated) | NICE¹, MAGICapp, TRIP² | fetched if a key configured; else skipped |
portal→api | CPIC | genuine fetch via free keyless PostgREST API (api.cpicpgx.org/v1) |
portal pointer | NCCN, ADA, AHA, SIGN, CMA | best-effort public-portal scrape → graceful fallback to honest pointer (retrieved:false), never fabricated |
Build-time portal fetch (adapters/portal_fetch.py): every fetcher is wrapped so it never raises — failed fetch degrades to the honest pointer, so the corpus is always honest (build once, read many). Each record carries access (api/portal) + retrieved; guideline_corpus.load() filters by topic/org and returns corpus_missing (with the builder command) if the index is absent. ¹ NICE REST auth undocumented (like PROSPERO) — skip until a token works. ² TRIP requires a commercial key.
Features
| Capability | Source | Typical scenario |
|---|---|---|
| Topic / drug / disease search | All | Build the published-evidence base |
| Review-type filter | All | systematic-review / meta-analysis / rct / case-report |
| Year-range filter | All | Focus on recent evidence |
| Safety / CSM bias | All | Surface published AE / PV literature |
| Multi-source merge + dedupe | normalize | One unified list, DOI/title de-duped, provenance kept |
| Citation ranking | OpenAlex / S2 | Most influential works |
| MeSH terms | Europe PMC | Biomedical concept indexing |
| Concepts / Keywords / Funders | OpenAlex | Topic classification + COI signals |
| PubMed/PMC ID, OA full-text URL, complete abstract | All | Direct links + full evidence preservation |
| Structured output | — | JSON + Markdown + Excel workbook (ct-base excel_style) |
| Chained invocation | — | → ct-pipeline / ct-protocol / ct-csr |
| Resilient fetch (retry + backoff) | All | Honors Retry-After; OpenAlex Bearer via key |
| Safe link rendering | All | _normalize_link() sanitises every hyperlink |
| Citations + BibTeX/RIS | All | --citation-style (apa/nature/vancouver/ieee/gb7714) + --export-bib |
| PRISMA screening funnel | All | --prisma deterministic rule screen → SVG funnel in HTML |
| Relevance scoring | All | --rank relevance → relevance_score (title .6 + abstract .4) |
| Obsidian / Zotero integration | All | --obsidian notes + MOC; --zotero CSV/RIS |
| P0 · Citation verification | All | Anti-hallucination (ct-base §17.1). --verify {all|top|none}; source-aware skip; DOI cross-checked via doi.org; title/author consistency vs Crossref/Europe PMC/OpenAlex; flags verified/bot_blocked/mismatch/unresolved/... |
| P0 · Evidence provenance log | All | evidence_log.json/.md + workbook sheet + HTML block: query→source→hits→retrieved_at→verification rate |
| P1 · PROSPERO registry | Review register | --with-prospero (opt-in, key-gated, reserved) — dormant no-op skip without token; never claimed functional |
| G · Guideline corpus | Guideline orgs | --with-guidelines → local pointer corpus (see above) |
Unified work schema
{ source, id, title, authors, year, publication_date, publication, journal_iso,
type, study_type, cited_by_count, url, open_access_url,
pmid, pmcid, doi, abstract_snippet, mesh, concepts, keywords, funders,
language, is_retracted, is_safety, is_preprint, volume, issue, page,
affiliations, sources }
Output
- Per-source payloads:
openalex.json/europepmc.json/semantic_scholar.json/biorxiv.json/medrxiv.json/arxiv.json(enabled only) lit_report.xlsx— Excel delivery (ct-baseexcel_style;--no-xlsxto skip): Overview → Literature master → Safety-related, KPI cards, charts,is_safetyamber highlightinglit_report.html— self-contained HTML report (inline CSS, offline;--no-htmlto skip); inline-SVG PRISMA funnel when--prismareferences.bib/references.ris/references_.md— formatted citations;--no-export-bibto skipobsidian/(--obsidian) — per-paper notes +Literature MOC.md;zotero.csv/zotero.ris(--zotero).merged.jsongains additiveprisma+ per-workrelevance_score/prisma_includedblocks
See references/sop.md for the full command catalogue.
Requirements
- Python 3.10+ (Anaconda
C:\Tools\anaconda3\python.exerecommended). requestsoptional (fetch scripts use stdliburllib);matplotliboptional (future trend charts).- Network: read-only public bibliographic APIs.
⚠️ Safety
- Default SAFE PREVIEW: scripts only generate / display; network requests run only with explicit
--run. - Reads public publications ONLY, zero confidential research / subject data input (B-tier; API keys are local config, never research data).
--safetyliterature is qualitative — never feed it into FAERS disproportionality; it only corroboratesct-safetyqualitatively.- Output is for reference / background only, not a regulatory submission.
Implementation
# Primary: OpenAlex only (no key)
python scripts/ct_literature.py --topic "osimertinib" --review-type systematic-review --year-from 2018 --safety --run --out-dir ./out
# Add Europe PMC (default ON) + Semantic Scholar (may 429 -> skipped)
python scripts/ct_literature.py --topic "osimertinib" --with-europepmc --with-semantic-scholar --run --out-dir ./out
# Clinical guidelines: build once (network), read many (zero network)
python adapters/build_guidelines.py --topic "diabetes" --run # author/build-time; omit --run = SAFE PREVIEW
python scripts/ct_literature.py --topic "2型糖尿病" --with-guidelines --run --out-dir ./out
OpenAlex API key (recommended since 2026-02-13)
Keyless is capped at 100 credits/day; a free key lifts to 100k/day. Zero-friction: drop the key into the skill's .env (copy from .env.example) — no extra flag needed. http_utils.load_openalex_key() auto-resolves: env OPENALEX_API_KEY → skill-root .env → scripts/.env (key value never printed). Explicit provision also works (--openalex-key). Application steps, quota, troubleshooting → references/openalex_key.md.
Errors
See references/errors.md for the full error catalogue (network / 429 / 401 / empty results / DOI dedupe).
Pipeline
ct-registry→ct-literature: landscape hypothesis seeds the literature search topic.ct-literature→ct-pipeline(intel evidence dimension), →ct-protocol/ct-csr(background),--safety→ct-safety(qualitative corroboration).
Cross-Database Search Mode
A cross-database planning layer (Embase / Cochrane / Web of Science + preprint Tier P, adapted from multi-database-literature-collector, AIPOCH MIT) builds search strategy; live fetch still runs the six sources. See references/multi-db-search.md.
Natural language dialogue
Follow references/search_menu.md: parse topic / review_type / year / safety; ≥2 params → preview; otherwise ≤2 rounds then default; preview → confirm → --run → present summary. Atomic-task units: references/units.md.
Before the fetch begins, warn the user it may take several minutes (the pipeline prints a localized time estimate at run start; mirror it in chat). --verify all 1–4 min on large result sets; --verify top ~1–3 min; --verify none ~1 min.
Bug Reporting (ct-base §20.3, adapter: adapters/bug_report.py)
- Trigger: (A) explicit user request ("report a bug" / "反馈问题" / "提交错误报告") → straight to two-stage confirmation, unlimited per session; (B) strong signal (unexpected non-zero exit / engine or compute error / user explicitly questions the result) and the same operation was retried ≥1 → at most 1 unsolicited proposal/session.
- Two-stage confirmation (2026-08-21): ① propose-with-preview — bilingual
confirm_prompttogether with the full sanitized report (invite a problem description; re-render before consent) → ② on explicit consent,send_to_endpoint(auto action=report, endpointhttps://ct-bugreport.coze.site/run, token = §5 public credential). Decline → never re-propose this session. - Sanitization is hard: 11-key whitelist only (skill / version / error_type / error_code / engine_status / description / locale / query_origin / session_hash / attempts / test) — never raw data or subject records;
descriptionis the single user-reviewed free-text field. No cloud call →save_local_report()(local md + author email). - Client-only: sends
reportonly; governance actions belong toct-update(author side). Post-send (2026-08-22): endpoint returnshistory→ reply viaconfirm_thanks+build_followup(bilingual, locale-switched).
Invoke: python adapters/bug_report.py --error-type --description "" [--send] (add --send only after the user confirms).
相关技能
literature retrieval and single-pdf analysis for academic research. use when the user asks to find papers by topic, author, keyword, or latest papers in the...
智能学术文献检索,覆盖中英文。支持 arXiv / Semantic Scholar / PubMed / CrossRef / 百度学术 五大数据源并发搜索、引用链追踪、作者检索、DOI 查询、BibTeX 导出、AI 智能摘要。中文关键词自动路由百度学术,英文全源并发。
中文医学文献开放获取(OA)检索下载与引用验证套件。通过维普OA平台(oa.cqvip.com)免登录、 免费检索中文医学期刊并下载 PDF 全文;输出完整 Vancouver/GB-T7714 元数据(标题/作者/期刊/ 年/卷/期/页/DOI/ISSN/CN刊号/摘要/关键词/基金/分类号),可直拼参考文献行;内置相关性守门 (防平台OR匹配捞回无关结果)与五态引用验证器 verify_cn_refs(防AI幻觉引用,判定语义与 pubmed-verifier 一致)。SQLite缓存/重试退避/日配额/控频,零依赖纯标准库。 触发词:"下中文文献"、"找中文文献"、"中文医学文献下载"、"找OA版"、"开放获取"、"免费下载论文"、 "国内指南共识解读"、"找参考文献"、"中文文献支撑"、"补中文引文"、"验证中文引用"、"核查中文文献"、 "下载维普文献"、"找几篇中文的"、"写文献综述要中文参考"。 英文:"download chinese paper"、"find OA chinese literature"、"verify chinese citations"。 即使用户只说"帮我下载这篇中文文献"或"找几篇类风湿的中文论文"也应触发。
Catalysis literature search skill. Given a user-provided catalyst topic, reaction type, or material system, retrieve and organize relevant catalysis research papers from the open web (ScienceDirect, arXiv, OpenAlex, Google Scholar, etc.) and output structured literature-review information (literatur
面向临床研发全生命周期的 ct 系列「总入口」,云端辅助的临床试验总顾问。方法学/设计/合规/QC/语气类问题在内部走 A–J 工作流并转发远程 Coze 引擎精校;统计计算转交 ct-samplesize;原始数据/竞品情报类需求路由到 ct-registry / ct-safety / ct-literature 并在代码内缝合三源产出。本技能会在本机运行兄弟技能、保留语言偏好/上下文缓存/长期记忆等本地状态,并支持可选的脱敏错误报告。 / The ct-series TOTAL ENTRY POINT across the full clinical-development lifecycle — a cloud-assisted clinical-trial advisor. Methodology / design / compliance / QC / tone questions run in-house through workflows A–J and are forwarded to the remote Coze engine for refinement; sample-size computation is handed to ct-samplesize; raw-data and competitive-intel needs route to the three sibling data skills (ct-registry / ct-safety / ct-literature) and are stitched in code. The skill runs sibling skills locally, keeps local state (language preference / context cache / long-term memory), and supports an optional de-identified bug report.