Token导航 LogoToken导航TokenDH.com
研究检索需要联网clawhub未标认证来源可访问clear审计通过

semanticscholar-skill语义学术技能

Agent Skill

semanticscholar-skill 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

2,637

周安装

111

GitHub Stars

公开资料未说明

下载量

924
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:semanticscholar-skill(语义学术技能)
来源仓库:https://github.com/agents365-ai/semanticscholar-skill
安装命令:
openclaw skills install semanticscholar-skill
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install semanticscholar-skill

简介

调用 Semantic Scholar API 获取论文推荐与引文网络。

  • 适用于文献调研与研究方向探索。
  • 自动关联相关论文与热点话题。semanticscholar-skill 属于研究检索类 Skill,可作为该场景下的辅助能力补充。
  • 安装命令:openclaw skills install semanticscholar-skill。
  • 输出结果仅供参考,需人工判断相关性。

SKILL.md

name
semanticscholar-skill
description
Use when searching academic papers, looking up citations, finding authors, or getting paper recommendations using the Semantic Scholar API. Triggers on queries about research papers, academic search, citation analysis, or literature discovery.
license
MIT
homepage
https://github.com/Agents365-ai/semanticscholar-skill
compatibility
Requires python3 and the requests package. Set S2_API_KEY for higher rate limits (request at https://www.semanticscholar.org/product/api#api-key). Works unauthenticated with strict rate limits.
platforms
[macos, linux, windows]
metadata
{"openclaw":{"requires":{"bins":["python3"],"env":["S2_API_KEY"]},"emoji":"📚"},"hermes":{"tags":["semantic-scholar","academic","paper-search","citation","literature","research"],"category":"research","requires_tools":["python3"],"related_skills":["asta-skill","zotero-research-assistant","literature-review","paper-reader"]},"author":"Agents365-ai","version":"0.3.0"}

Semantic Scholar Search Workflow

Search academic papers via the Semantic Scholar API using a structured 4-phase workflow.

Critical rule: NEVER make multiple sequential Bash calls for API requests. Always write ONE Python script that runs all searches, then execute it once. All rate limiting is handled inside s2.py automatically.

Phase 1: Understand & Plan

Parse the user's intent and choose a search strategy:

Decision Tree

User wants...StrategyFunction
Broad topic explorationRelevance searchsearch_relevance()
Precise technical terms, exact phrasesBulk search with boolean operatorssearch_bulk() with build_bool_query()
Specific passages or methodsSnippet searchsearch_snippets()
Known paper by titleTitle matchmatch_title()
Known paper by DOI/PMID/ArXivDirect lookupget_paper()
Papers citing a known workCitation traversalget_citations()
Related to one paperSingle-seed recommendationsfind_similar()
Related to multiple papersMulti-seed recommendationsrecommend()
Find a researcherAuthor searchsearch_authors()
Researcher's profileAuthor detailsget_author()
Researcher's publicationsAuthor papersget_author_papers()

Query Construction Rules

  • Ambiguous terms (e.g., "stem cells" could mean mesenchymal or stem-like T cells): Use build_bool_query() with exact phrases and exclusions

- Example: build_bool_query(phrases=["stem-like T cells"], required=["CD4", "TCF7"], excluded=["mesenchymal", "hematopoietic stem cell"])

  • Multi-context queries (e.g., "topic X in cancer AND autoimmunity"): Plan separate searches, deduplicate with deduplicate()
  • Broad topics: Use search_relevance() with filters (year, venue, fieldsOfStudy, minCitationCount)

Plan Filters

FilterUse when
year="2020-"Recent work only
publication_date="2024-01-01:2024-06-30"Precise date range (YYYY-MM-DD)
fields_of_study="Medicine"Restrict to domain
min_citations=10Only established papers
pub_types="Review"Find reviews/meta-analyses
pub_types="ClinicalTrial"Clinical trials only
open_access=TrueOnly open access papers

Checkpoint: Before proceeding, verify: (1) search strategy matches user intent, (2) filters are appropriate, (3) query is specific enough to avoid irrelevant results.

Phase 2: Execute Search

Write ONE Python script. Example:

import sys, os
SKILL_DIR = next((p for p in [
    os.path.expanduser("~/.claude/skills/semanticscholar-skill"),
    os.path.expanduser("~/.openclaw/skills/semanticscholar-skill"),
] if os.path.isdir(p)), ".")
sys.path.insert(0, SKILL_DIR)
from s2 import *

# Build precise query
q = build_bool_query(
    phrases=["stem-like T cells"],
    required=["CD4", "IBD"],
    excluded=["mesenchymal"]
)
papers = search_bulk(q, max_results=30, year="2018-", fields_of_study="Medicine")
papers = deduplicate(papers)

print(format_results(papers, "Stem-like CD4 T cells in IBD"))

Execute with: python3 /tmp/s2_search.py

Rules:

  • Import everything from s2: from s2 import *
  • Write script to /tmp/s2_search.py (or similar temp path)
  • One Bash call to execute. Never chain multiple API calls via separate Bash invocations.
  • Rate limiting, retries, and backoff are automatic inside s2.py

Checkpoint: Verify the script ran successfully (no exceptions) and returned results. If 0 results, broaden the query or relax filters before presenting.

Worked Examples

Example 1: Author workflow — "Find papers by Yann LeCun on self-supervised learning"

import sys, os
SKILL_DIR = next((p for p in [
    os.path.expanduser("~/.claude/skills/semanticscholar-skill"),
    os.path.expanduser("~/.openclaw/skills/semanticscholar-skill"),
] if os.path.isdir(p)), ".")
sys.path.insert(0, SKILL_DIR)
from s2 import *

authors = search_authors("Yann LeCun", max_results=5)
print(format_authors(authors))

# Use the first match's ID to get their papers
author_id = authors[0]["authorId"]
papers = get_author_papers(author_id, max_results=50)
# Filter locally for topic
ssl_papers = [p for p in papers if "self-supervised" in (p.get("title") or "").lower()]
print(format_results(ssl_papers, "Yann LeCun - Self-Supervised Learning"))

Example 2: Citation chain — "Who cited the Transformer paper and what did they build on?"

import sys, os
SKILL_DIR = next((p for p in [
    os.path.expanduser("~/.claude/skills/semanticscholar-skill"),
    os.path.expanduser("~/.openclaw/skills/semanticscholar-skill"),
] if os.path.isdir(p)), ".")
sys.path.insert(0, SKILL_DIR)
from s2 import *

paper = get_paper("DOI:10.48550/arXiv.1706.03762")
print(f"Title: {paper['title']}, Citations: {paper['citationCount']}")

# Get top-cited papers that cite this one
citing = get_citations(paper["paperId"], max_results=50)
citing_papers = [c["citingPaper"] for c in citing if c.get("citingPaper")]
citing_papers.sort(key=lambda p: p.get("citationCount", 0), reverse=True)
print(format_results(citing_papers, "Most-cited papers citing Attention Is All You Need"))

Example 3: Multi-seed recommendations with BibTeX export — "Find papers like these two but not about NLP"

import sys, os
SKILL_DIR = next((p for p in [
    os.path.expanduser("~/.claude/skills/semanticscholar-skill"),
    os.path.expanduser("~/.openclaw/skills/semanticscholar-skill"),
] if os.path.isdir(p)), ".")
sys.path.insert(0, SKILL_DIR)
from s2 import *

recs = recommend(
    positive_ids=["DOI:10.1038/nature14539", "ARXIV:2010.11929"],
    negative_ids=["ARXIV:1706.03762"],
    limit=20
)
print(format_results(recs, "Vision papers like Deep Learning & ViT, excluding NLP"))

# Export BibTeX for top results
bib_data = batch_papers([r["paperId"] for r in recs[:10]], fields="title,citationStyles")
print(export_bibtex(bib_data))

Phase 3: Summarize & Present

  • Use format_results() for consistent output (summary table + top-10 details)
  • If user's language is Chinese, present summaries in Chinese
  • Always note total results count and search strategy used
  • Highlight most relevant papers based on the user's specific question

Phase 4: User Interaction Loop

After presenting results, always offer these options:

  1. Translate — titles/summaries to Chinese (or other language)
  2. Details — full abstract for specific paper numbers
  3. Refine — narrow or expand search with different terms/filters
  4. Similar — find papers similar to a specific result (find_similar())
  5. Citations — who cited a specific paper (get_citations())
  6. Export — save results via export_bibtex(), export_markdown(), or export_json()
  7. Done — end search session

Loop until user says done. Each follow-up uses the same single-script pattern.


API Quick Reference

Helper Module (s2.py)

import sys, os
SKILL_DIR = next((p for p in [
    os.path.expanduser("~/.claude/skills/semanticscholar-skill"),
    os.path.expanduser("~/.openclaw/skills/semanticscholar-skill"),
] if os.path.isdir(p)), ".")
sys.path.insert(0, SKILL_DIR)
from s2 import *

Paper Search Functions

FunctionPurposeMax Results
search_relevance(query, **filters)Simple broad search1,000
search_bulk(query, sort=..., **filters)Boolean precise search10,000,000
search_snippets(query, **filters)Full-text passage search1,000
match_title(title)Exact title match1
get_paper(paper_id)Single paper details
get_citations(paper_id, max_results)Who cited this10,000
get_references(paper_id, max_results)What this cites10,000
find_similar(paper_id, limit, pool)Single-seed recommendations500
recommend(positive_ids, negative_ids, limit)Multi-seed recommendations500
batch_papers(ids, fields)Batch lookup (≤500)

Author Functions

FunctionPurposeMax Results
search_authors(query, max_results)Find researchers by name1,000
get_author(author_id)Author profile (affiliations, h-index)
get_author_papers(author_id, max_results)Author's publications10,000
get_paper_authors(paper_id, max_results)Paper's author list1,000
batch_authors(ids, fields)Batch author lookup (≤1000)

Filter Parameters (kwargs)

year, publication_date, venue, fields_of_study, min_citations, pub_types, open_access

  • year: "2020-", "-2019", "2016-2020"
  • publication_date: "2024-01-01:2024-06-30" (YYYY-MM-DD range, open-ended OK)
  • pub_types: Review, JournalArticle, Conference, ClinicalTrial, MetaAnalysis, Dataset, Book, CaseReport, Editorial, LettersAndComments, News, Study, BookSection

Boolean Query Syntax (bulk search only)

SyntaxExampleMeaning
"...""deep learning"Exact phrase
++transformerMust include
--surveyExclude
`\``CNN \RNN`OR
*neuro*Prefix wildcard
()`(CNN \RNN) +attention`Grouping

Use build_bool_query(phrases, required, excluded, or_terms) to construct safely.

Output Functions

FunctionPurpose
format_table(papers, max_rows=30)Markdown summary table
format_details(papers, max_papers=10)Detailed entries with TLDR/abstract
format_results(papers, query_desc)Combined: summary + table + details
format_authors(authors, max_rows=20)Author table (name, affiliations, h-index)
export_bibtex(papers)BibTeX entries (requires citationStyles field)
export_markdown(papers, query_desc)Full markdown report saved to file
export_json(papers, path)JSON export saved to file
deduplicate(papers)Remove duplicates by paperId

Supported ID Formats

DOI:10.1038/..., ARXIV:2106.15928, PMID:19872477, PMCID:PMC2323569, CorpusId:215416146, ACL:2020.acl-main.447, DBLP:conf/acl/..., MAG:3015453090, URL:https://...

Paper Fields

Default: title,year,citationCount,authors,venue,externalIds,tldr

Additional: abstract, references, citations, openAccessPdf, publicationDate, publicationVenue, fieldsOfStudy, s2FieldsOfStudy, journal, isOpenAccess, referenceCount, influentialCitationCount, citationStyles, embedding, textAvailability

Author fields: name, affiliations, paperCount, citationCount, hIndex, homepage, externalIds, papers

Rate Limiting

Handled automatically by s2.py: 1.1s gap between requests, exponential backoff (2s→4s→8s→16s→32s, max 60s) on 429/504 errors, up to 5 retries.

Troubleshooting

ErrorCauseFix
HTTPError 403Missing or invalid API keyVerify S2_API_KEY is set: echo $S2_API_KEY
HTTPError 429 after 5 retriesSustained rate limit exceededWait 60s, reduce max_results, or split into smaller batches
ModuleNotFoundError: s2Skill directory not on pathVerify skill is installed at ~/.claude/skills/ or ~/.openclaw/skills/
ModuleNotFoundError: requestsrequests not installedpip install requests or uv pip install requests
0 results returnedQuery too specific or filters too narrowBroaden query, remove filters, try search_relevance() instead of search_bulk()
KeyError: 'data'Endpoint returned error objectCheck r.get("message") for API error details
tldr field is emptyNot all papers have TLDRFall back to abstract field; bulk search never returns tldr

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

72.09%
按下载量换算666

安全审计

VirusTotal

未展示

ClawScan

通过

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills