Use for systematic literature search, paper retrieval, citation mining, and evidence synthesis across academic databases (Semantic Scholar, OpenAlex, IEEE, Unpaywall). Covers both exploratory discovery and structured systematic review.
| Source | Tool | Best for |
|---|---|---|
| Semantic Scholar | s2_search, s2_get_paper | General CS/ML, citation counts, abstracts, open access PDFs |
| OpenAlex | openalex_search | Broad cross-discipline, funding info, institution affiliates |
| IEEE Xplore | ieee_search | Engineering, electronics, applied CS (requires API key) |
| Unpaywall | unpaywall_resolve | Finding legal open-access PDF for a known DOI |
All four API keys are configured in agent_config.json → env.
Start with a broad Semantic Scholar search:
s2_search(
query="time series anomaly detection transformer 2023",
limit=20,
fields=["title", "year", "citationCount", "abstract", "isOpenAccess"]
)
Sort by citationCount descending to surface seminal work first. Skim abstracts for relevance.
For each paper worth reading:
s2_get_paper(
paper_id="<S2PaperId or DOI>",
fields=["title", "abstract", "references", "tldr", "openAccessPdf"]
)
If openAccessPdf is null → try Unpaywall:
unpaywall_resolve(doi="10.xxxx/xxxxx")
Trace backwards from a focal paper:
s2_get_paper(
paper_id="<id>",
fields=["references", "citations"]
)
For a structured literature review:
See academic/systematic/ for the full systematic review workflow skill.
After collecting full-text PDFs:
docling_context skill (layout-aware PDF extraction)rag skillWhen synthesizing findings, distinguish:
| Anti-pattern | Correct behavior |
|---|---|
| Reporting paper titles without checking abstracts | Always verify relevance before citing |
| Using S2 only — missing IEEE for applied engineering | Cross-search at least two databases |
| Treating citation count as quality signal | High citations ≠ correct; read the methodology |
| Dumping 20 abstracts into context | Summarize and select; max 5–8 for deep read |
| Missing open-access version | Always try Unpaywall before saying full text is unavailable |
| Citing papers you have not read | Either read the abstract + methods or flag as "not verified" |