Introduction¶
DeepSeek Harness (DSH) adopts a plugin-based architecture and supports extending functionality through plugins. When building agents or developing locally, literature retrieval is a common requirement. This plugin aims to address the issues of inconsistent interfaces and different data structures when calling different literature databases (PubMed and Google Scholar) in the DSH environment.
Plugin Overview¶
The plugin is named astervolans/dsh-literature-search, maintained by Astervolans. It performs searches through the official PubMed NCBI E-utilities API and Google Scholar (supporting SerpApi or HTML parsing), and normalizes the results returned by both into a standard paper data structure. The plugin depends only on Node.js built-in fetch and AbortSignal, with no additional runtime dependencies.
Installation and Enabling¶
Install it using the DSH plugin manager. After installation, restart the DSH process to load the new tools.
dsh plugin --profile desktop add @astervolans/dsh-literature-search
Core Features¶
The plugin provides the following key capabilities:
- PubMed Search
- Supports the ESearch, ESummary, EFetch, and ELink workflows.
- Supports field-tagged queries, sorting, date windows, and pagination.
- Returns PMID, title, authors, journal, volume/issue/pages, DOI, PMC ID, abstract, MeSH, and keywords.
- Single PubMed Paper
- Retrieves the complete record for a specified PMCID, including abstract, MeSH, keywords, publication types, and comments/references.
- Related PubMed Papers
- Searches and ranks articles related to a given paper using NCBI’s related articles algorithm.
- Google Scholar Search
- Supports year windows and pagination.
- Supports both SerpApi and HTML parsing backends.
- Google Scholar Citations
- Generates citations in MLA, APA, Chicago, Harvard, Vancouver, and BibTeX formats.
- Unified Output
- Searches from PubMed and Google Scholar both return the unified
papershape.
- Searches from PubMed and Google Scholar both return the unified
- Zero Runtime Dependencies
- Depends only on Node.js built-in
fetchandAbortSignal.
- Depends only on Node.js built-in
Configuration and Usage¶
The plugin supports configuration on the DSH plugin configuration page. In the “Plugins” panel in the sidebar, expand @astervolans/dsh-literature-search; the top is the configuration page. Configuration items include NCBI and SerpApi API keys, rate limits, result limits, and connectivity tests.
Typical Usage Examples:
# 搜索 PubMed
node cli.mjs pubmed "CRISPR base editing" --max 3
# 获取单篇论文详情
node cli.mjs paper 33301246
# 搜索 Google Scholar
node cli.mjs scholar "base editing" --max 5
Notes¶
- Google Scholar Backend
- HTML parsing is used by default. Due to Google’s anti-scraping mechanisms, this method may be blocked. It is recommended to configure
SERPAPI_API_KEYto use the SerpApi backend for stable results and citation formats.
- HTML parsing is used by default. Due to Google’s anti-scraping mechanisms, this method may be blocked. It is recommended to configure
- PubMed Rate Limits
- The official PubMed API has default rate limits. When
NCBI_API_KEYis not set, the plugin automatically throttles (350ms interval per request). ConfiguringNCBI_API_KEYincreases the quota from 3 to 10 requests/second.
- The official PubMed API has default rate limits. When
- SerpApi Dependency
- To obtain stable Google Scholar search results and citation formats,
SERPAPI_API_KEYmust be configured.
- To obtain stable Google Scholar search results and citation formats,
References¶
- Plugin directory page: https://www.skillhub.cn/plugins/Astervolans/dsh-literature-search
- GitHub repository: https://github.com/Astervolans/dsh-literature-search