with one click
sn-search-academic
用于学术调研、论文精读、相关工作梳理、百科知识查询和引用链追溯。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
用于学术调研、论文精读、相关工作梳理、百科知识查询和引用链追溯。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | sn-search-academic |
| description | 用于学术调研、论文精读、相关工作梳理、百科知识查询和引用链追溯。 |
API key、token 与 cookie 统一建议写在仓库根目录 .env(参考 .env.example),并由 runtime 或用户在执行前加载为同名环境变量。脚本仍只从环境变量或显式 CLI 参数读取凭证;不要把真实密钥写入 skill payload、报告、日志或提交。
使用三个统一入口完成学术调研:
search.py:搜索论文和百科条目paper.py:列出论文章节,读取论文全文或指定章节refTree.py:查询论文的 references 和 citations不要直接调用历史 provider 脚本;它们只是统一入口的内部实现细节。
需要 provider 回退链、参数分发或完整输出字段时,按需读取 references/search.md、references/paper.md、references/refTree.md。
| 脚本 | 用途 | 主要输入 | 主要输出 |
|---|---|---|---|
scripts/search.py | 搜索论文/百科 | query,可选 --source、--limit、--category、--lang | 按 source 分组的论文/百科条目,位于 source_results[*].items |
scripts/paper.py | 列出章节,读取论文全文或章节 | 论文 ID,可选 --source、--list_section、--section | 章节列表位于 sections;全文或章节正文位于 content |
scripts/refTree.py | 查询引用树 | --paper_id、--title,可选 --direction | 参考文献与被引论文,位于 source_results[*].references / source_results[*].citations |
本技能的 scripts/...、requirements.txt、references/... 路径均相对本 skill 目录;若当前工作目录不同,先解析为绝对路径,不要依赖 ${SKILL_DIR} 运行时变量。
调用约定:
search.py 和 refTree.py 内部已经处理并发、超时和 provider 回退链。--output <path> 写入文件,再读取必要字段,避免终端输出过长。--provider-timeout 表示单个 provider 超时;默认使用脚本内置超时。首次运行或脚本提示缺库时,使用本技能的依赖清单安装到当前 Python 环境:
python3 -m pip install -r requirements.txt
不要在脚本内部自动安装依赖。若安装失败、网络不可用或包不可用,停止使用对应脚本并改用 WebSearch/browser-use,说明缺少依赖。
Crawler 回退还需要额外运行时环境:
python3 -m playwright install firefox
arxiv_crawler_search.py 和 semantic_scholar_crawler_refTree.py 还需要 Node.js,以及某个当前目录或祖先目录中已安装 camoufox-js 的 node_modules。缺少这些环境时,不要尝试绕过;改用非 crawler provider 或网页搜索。
统一搜索入口。默认搜索所有支持的 source,并按 source 分组返回结果。
python3 scripts/search.py <query> [选项]
| 参数 | 说明 | 默认值 |
|---|---|---|
query | 搜索关键词,必填位置参数 | - |
--source, --sources, -s | 搜索源;支持重复传参或逗号分隔 | all |
--limit, -n | 每个 source 返回数量 | 10 |
--category, -c | ArXiv 分类过滤,只传给支持分类的 source | - |
--lang, -l | 语言提示,只传给支持语言参数的 source | - |
--output, -o | 将最终 JSON 写入文件 | - |
--provider-timeout | 每个 provider 的超时时间,单位秒;0 表示不限制 | 60 |
支持的 --source:
allarxivsemanticgoogle_scholarpubmedwikipedia示例:
python3 scripts/search.py "retrieval augmented generation" --limit 5
python3 scripts/search.py "diffusion model" --source arxiv,semantic --category cs.CV --limit 5
python3 scripts/search.py "阿尔茨海默病 多模态诊断" --source pubmed,wikipedia --lang zh --limit 5
python3 scripts/search.py "agentic memory" --source all --limit 8 --output results/search.json
统一论文阅读入口。默认按 arXiv 论文读取;读取 PMC 论文时显式传 --source pmc。不确定章节名时先用 --list_section 列出可用章节,再用 --section 精读。
python3 scripts/paper.py <id> [选项]
| 参数 | 说明 | 默认值 |
|---|---|---|
id | 论文 ID。arXiv 支持原始 ID、arXiv: 前缀、abs/pdf URL;PMC 支持 PMC11119143、11119143、PMC URL | - |
--source | 论文来源:arxiv 或 pmc | arxiv |
--section, -s | 读取指定章节;不填则读取全文 | - |
--list_section, --list-section | 列出论文可用章节,不返回正文;不能和 --section 同时使用 | false |
--output, -o | 将最终 JSON 写入文件 | - |
示例:
python3 scripts/paper.py 2603.00729
python3 scripts/paper.py 2603.00729 --list_section
python3 scripts/paper.py arXiv:2603.00729 --section introduction
python3 scripts/paper.py 2603.00729 --section method --output results/paper-method.json
python3 scripts/paper.py PMC11119143 --source pmc
python3 scripts/paper.py PMC11119143 --source pmc --list-section
python3 scripts/paper.py PMC11119143 --source pmc --section results
统一引用树入口。--paper_id 和 --title 都必填;标题用于回退时精确匹配。
python3 scripts/refTree.py --paper_id <paper_id> --title <title> [选项]
| 参数 | 说明 | 默认值 |
|---|---|---|
--paper_id | 论文 ID:Semantic Scholar ID、DOI、ArXiv ID、PMID 等 | - |
--title | 论文标题,必填 | - |
--direction | 查询方向:references 或 citations;不填则两者都查 | - |
--source, --sources, -s | 引用树 source;当前支持 all、semantic | all |
--limit, -n | 每个 source、每个 direction 返回数量 | 10 |
--api-key | Semantic Scholar API 密钥,可选 | - |
--provider-timeout | 每个 provider 的超时时间,单位秒;0 表示不限制 | 60 |
--output, -o | 将最终 JSON 写入文件 | - |
注意:参数名是 --paper_id,不是 --paper-id;paper_id 不支持位置参数。
示例:
python3 scripts/refTree.py --paper_id "2309.16609" --title "Qwen Technical Report"
python3 scripts/refTree.py --paper_id "2309.16609" --title "Qwen Technical Report" --direction references --limit 20
python3 scripts/refTree.py --paper_id "10.1038/s41586-024-07487-w" --title "AlphaFold 3" --direction citations
python3 scripts/refTree.py --paper_id "2309.16609" --title "Qwen Technical Report" --output results/refTree.json
所有脚本都输出 JSON。先看顶层 success;失败时读取 error、errors 和 attempts 判断是无结果、超时还是 provider 失败。
CLI 输出的顶层不包含 items,论文条目在 source_results[*].items 中:
{
"success": true,
"query": "retrieval augmented generation",
"provider": "search.py",
"sources": ["arxiv", "semantic"],
"source_results": [
{
"source": "arxiv",
"success": true,
"provider": "arxiv_official",
"items": [
{
"source": "arxiv",
"provider": "arxiv_official",
"title": "Example title",
"abstract": "Example abstract",
"citation_count": null,
"arxiv_id": "2301.00001",
"url": "https://arxiv.org/abs/2301.00001"
}
],
"attempts": [],
"error": null
}
],
"errors": [],
"error": null
}
常用 item 字段:
title、abstract、snippet、url、citation_count、doiarxiv_id、pdf_url、categoriespaper_id、venue、yearpmid、pmc_id、journal、pub_datepage_id、word_count、section_title默认读取全文;指定 --section 时读取章节。正文在顶层 content:
{
"success": true,
"source": "arxiv",
"provider": "arxiv_html",
"arxiv_id": "2603.00729",
"section": "introduction",
"content": "<全文或章节正文>",
"char_count": 12345,
"attempts": [],
"error": null
}
指定 --list_section 时只返回章节结构,不返回 content:
{
"success": true,
"source": "arxiv",
"provider": "arxiv_html",
"arxiv_id": "2603.00729",
"section_count": 2,
"sections": [
{"name": "Abstract", "level": 0},
{"name": "1 Introduction", "level": 1}
],
"attempts": [],
"error": null
}
常用字段:
arxiv_id、title、abs_url、html_url、pdf_url、section_count、sectionspmc_id、pmid、title、pmc_url、section_count、sections--list_section 时返回 sections 和 section_count,不包含 content--section 时会包含 section;不指定 --list_section / --section 时读取全文引用树结果在 source_results[*].references 和 source_results[*].citations:
{
"success": true,
"id": "2309.16609",
"title": "Qwen Technical Report",
"provider": "refTree.py",
"direction": "all",
"source_results": [
{
"source": "semantic",
"success": true,
"provider": "semantic_official",
"references": [
{
"title": "Example reference",
"abstract": "Example abstract",
"citation_count": 128,
"paper_id": "example-reference-id",
"arxiv_id": "2301.00001"
}
],
"citations": [
{
"title": "Example citing paper",
"abstract": "Example abstract",
"citation_count": 42,
"paper_id": "example-citing-id",
"doi": "10.1234/example"
}
],
"attempts": [],
"error": null
}
],
"errors": [],
"error": null
}
如果使用 --output,三个脚本都会在 JSON 中额外加入 output_path。
这些脚本会访问外部学术服务,必须控制请求频率。 执行本技能脚本时:
python3 scripts/... 命令。--limit、--id-list 等参数,而不是启动多个进程。搜索结果只有摘要时,用 paper.py 先列章节,再补充全文或关键章节。
search.py 搜索,优先从 source_results[*].items 里记录 title、arxiv_id、pmc_id、paper_id、doi、citation_count。arxiv_id,先用 python3 scripts/paper.py <arxiv_id> --source arxiv --list_section 查看章节;再用 --section <section> 精读。pmc_id,先用 python3 scripts/paper.py <pmc_id> --source pmc --list_section 查看章节;再按需读 --section <section> 。--section / --list_section 读取全文。--output results/paper.json,再读取 content、sections、char_count 等字段。通过论文的引用关系发现关键词搜索覆盖不到的相关工作。
通过 references 找奠基工作,通过 citations 找后续进展。refTree.py 需要同时传论文 ID 和标题。
后向追溯(找奠基工作):
paper_id 或 arxiv_id 和 titlerefTree.py --paper_id "<id>" --title "<title>" --direction references --limit 20 → 找到高引参考文献paper.py深入阅读前向追踪(找后续进展):
refTree.py --paper_id "<id>" --title "<title>" --direction citations --limit 20 → 找到近期高引跟进工作paper.py深入阅读引用链:构建演化路径
严格遵循本工作流去执行学术搜索的全流程
顶层领域可直接用(如 --category cs),子分类更精确(如 --category cs.AI)。
| 领域 | 分类代码 | 说明 |
|---|---|---|
| 计算机科学 | cs.AI | 人工智能 |
cs.LG | 机器学习 | |
cs.CL | 计算语言学 / NLP | |
cs.CV | 计算机视觉 | |
cs.IR | 信息检索 | |
cs.RO | 机器人 | |
cs.SE | 软件工程 | |
cs.DC | 分布式/并行计算 | |
cs.NI | 网络与互联网 | |
cs.CR | 密码学与安全 | |
cs.DB | 数据库 | |
cs.HC | 人机交互 | |
| 统计 | stat.ML | 统计机器学习 |
stat.AP | 应用统计 | |
stat.ME | 统计方法论 | |
| 数学 | math.OC | 优化与控制 |
math.ST | 统计理论 | |
math.CO | 组合数学 | |
| 物理 | physics | 物理(全类) |
cond-mat | 凝聚态物理 | |
quant-ph | 量子物理 | |
hep-th | 高能理论物理 | |
| 经济/金融 | econ.GN | 经济学综合 |
q-fin.CP | 计算金融 | |
q-fin.ST | 统计金融 | |
| 生物/医学 | q-bio.NC | 神经科学 |
q-bio.GN | 基因组学 | |
q-bio.QM | 定量方法 |
Base-layer skill for the SenseNova-Skills project, providing low-level APIs for image generation, recognition (VLM), and text optimization (LLM). This skill does not preprocess inputs; it only calls backend services and returns results. This skill is not user-facing and is intended for upper-layer skills only.
用于用户请求深度研究、系统性研究、竞品分析、方案对比、趋势分析或事实核查时。**遇到以下任一情况就主动使用本 skill,不要自行搜几条就回答**:①用户出现触发词:深度研究 / 深度调研 / 深入研究 / 全面研究 / 系统研究 / 调研 / 调查 / 尽调 / 行业研究 / 市场研究 / 竞品分析 / 政策研究 / 技术研究 / 趋势研究 / 事实核查 / 写一份研究报告 / 调研报告 / 深度报告 / research / deep research;②请求需要跨多来源取证、多维度对比、交叉验证才能给出可靠结论;③用户要求产出报告、白皮书、行业分析或尽调文档;④话题涉及最新政策/市场/产品/价格/法规,需要系统核查。明确要求核验来源的单点事实可走 quick;无核验要求的简单常识问答不使用。模糊或宽泛的"研究/了解一下 X"也优先触发。仅不用于:一句话摘要、已给定单一来源的整理、纯文字润色改写。
用于研究任务的最终呈现形式未知时。比较研究报告、学术论文、表格优先报表、决策备忘录或自定义形式,并用权威标准与真实范例支持推荐。
用于搜索中文社交平台。脚本入口覆盖 B站视频、知乎问答和抖音视频;小红书、微博当前没有脚本入口,只能通过 browser-use / 公开网页兜底。
搜索社区、社媒、新闻热点、百科趋势、开发者生态和技术讨论时使用。
用于查找代码示例、开源项目、GitHub Issue、技术问答、开发者讨论、HuggingFace 模型/数据集/Space。