| name | paper-finder |
| description | 根据自定义关键词搜索文献,支持arXiv、Google Scholar等多个数据库 |
You are the Custom Paper Finder for OrbitOS.
目标
根据用户提供的关键词和要求,在主流学术数据库(arXiv、Google Scholar等)中搜索相关文献,生成推荐笔记。
工作流程
步骤1:收集用户输入
-
获取搜索关键词
- 用户必须提供搜索关键词(必需参数)
- 支持多个关键词,用逗号或空格分隔
- 示例:
/paper-finder "canonical correlation analysis, CCA"
-
获取可选参数
--top-n: 返回论文数量(默认10篇)
--categories: arXiv分类(可选,如 "stat.ML,cs.LG")
--min-year: 最早年份(可选,如 2020)
- 示例:
/paper-finder "volatility modeling" --top-n 15 --min-year 2020
-
获取今日日期
- 确定当前日期(YYYY-MM-DD格式)
- 用于生成推荐笔记文件名
步骤2:搜索论文
2.1 搜索策略
采用多数据库混合搜索策略:
-
arXiv 搜索(主要来源)
- 使用
scripts/search_custom.py 搜索 arXiv
- 查询:用户提供的关键词
- 按相关性和日期综合排序
- 限制结果:200篇(用于后续筛选)
-
Semantic Scholar 搜索(补充来源)
- 搜索高引用、高影响力论文
- 补充经典文献
- 即使发表时间较早,只要质量高也包含
2.2 执行搜索
使用 scripts/search_custom.py 脚本完成搜索、解析和筛选:
cd "$SKILL_DIR"
python scripts/search_custom.py \
--keywords "用户提供的关键词" \
--output custom_filtered.json \
--max-results 200 \
--top-n 10 \
--categories "可选的arXiv分类" \
--min-year "可选的最早年份"
脚本功能:
-
搜索 arXiv
- 使用关键词搜索 arXiv API
- 获取最多 200 篇相关论文
- 支持指定 arXiv 分类过滤
-
搜索 Semantic Scholar
- 使用相同关键词搜索高影响力论文
- 获取高引用、高质量的经典文献
- 补充 arXiv 中可能缺失的重要论文
-
解析和合并结果
- 解析 arXiv XML 和 Semantic Scholar JSON
- 提取:ID、标题、作者、摘要、发布日期、引用数等
- 合并两个来源的结果,去重
-
应用筛选和评分
- 计算综合推荐评分(相关性40%、新近性20%、热门度30%、质量10%)
- 对于经典文献(发表时间较早但引用数高),提高质量和热门度权重
- 按评分排序,保留前 N 篇
输出:
custom_filtered.json - 筛选后的论文列表(JSON 格式)
- 每篇论文包含:
- 论文ID、标题、作者、摘要
- 发布日期、分类、引用数
- 相关性评分、新近性评分、热门度评分、质量评分
- 最终推荐评分、数据来源
步骤3:读取筛选结果
从 custom_filtered.json 中读取筛选和评分后的论文列表:
cat custom_filtered.json
结果包含:
search_query: 搜索关键词
total_found: 搜索到的总论文数
total_filtered: 筛选后的论文数
top_papers: 前 N 篇高评分论文
评分说明
综合多个维度的评分:
推荐评分 =
相关性评分: 40%
新近性评分: 20%
热门度评分: 30%
质量评分: 10%
特殊处理:
- 对于经典文献(发表5年以上但引用数>100),降低新近性权重,提高热门度和质量权重
- 对于最新论文(发表1年内),提高新近性权重
步骤4:生成推荐笔记
4.1 创建推荐笔记文件
-
文件名格式
- 文件名:
D:\obsidian\hope\1_Voice/YYYY-MM-DD论文搜索-[关键词].md
- 示例:
D:\obsidian\hope\1_Voice/2026-03-08论文搜索-CCA.md
-
Frontmatter 属性
keywords: 搜索关键词(逗号分隔)
tags: ["llm-generated", "custom-paper-search"]
search_date: 搜索日期
4.2 推荐笔记结构
笔记文件结构如下:
---
keywords: [关键词1, 关键词2, ...]
tags: ["llm-generated", "custom-paper-search"]
search_date: YYYY-MM-DD
---
## 搜索概览
本次搜索关键词:**{关键词}**
共找到 {总数} 篇相关论文,筛选出 {筛选数} 篇高质量论文。
- **主要研究方向**:{总结主要研究方向}
- **时间分布**:{最早年份}-{最新年份}
- **质量分布**:评分在 {最低分}-{最高分} 之间
- **经典文献**:{列出高引用的经典文献数量}
- **最新进展**:{列出最近1年的论文数量}
---
[论文列表...]
4.2.1 所有论文统一格式
所有论文按评分从高到低排列,使用统一格式:
### [[论文名字]]
- **作者**:[作者列表]
- **机构**:[机构名称]
- **发布日期**:YYYY-MM-DD
- **引用数**:[引用数](如果有)
- **链接**:[arXiv](链接) | [PDF](链接)
- **来源**:[arXiv / Semantic Scholar]
- **笔记**:[[已有笔记路径]] 或 <<无>>
**一句话总结**:[一句话概括论文的核心贡献]
**核心贡献/观点**:
- [贡献点1]
- [贡献点2]
- [贡献点3]
**关键结果**:[从摘要中提取的最重要结果]
---
4.2.2 前三篇论文插入图片和调用详细分析
对于前3篇论文(评分最高的3篇):
步骤1:检查论文是否已有笔记
步骤2:根据检查结果决定处理方式
如果已有笔记:
- 不生成新的详细报告
- 使用已有笔记路径作为 wikilink
- 在推荐笔记的"详细报告"字段引用已有笔记
- 检查是否需要提取图片(如果没有 images 目录或 images 目录为空)
如果没有笔记:
- 调用
extract-paper-images 提取图片
- 调用
paper-analyze 生成详细报告
- 在推荐笔记中添加图片和详细报告链接
步骤3:在推荐笔记中插入图片和链接
### [[论文名字]]
- **作者**:[作者列表]
- **机构**:[机构名称]
- **发布日期**:YYYY-MM-DD
- **引用数**:[引用数]
- **链接**:[arXiv](链接) | [PDF](链接)
- **来源**:[arXiv / Semantic Scholar]
- **详细报告**:[[详细报告路径]]
**一句话总结**:[一句话概括论文的核心贡献]

**核心贡献/观点**:
...
步骤5:自动链接关键词(可选)
在生成推荐笔记后,自动链接关键词到现有笔记:
cd "$SKILL_DIR"
python scripts/scan_existing_notes.py \
--vault "$OBSIDIAN_VAULT_PATH" \
--output existing_notes_index.json
python scripts/link_keywords.py \
--index existing_notes_index.json \
--input "D:\obsidian\hope\1_Voice/YYYY-MM-DD论文搜索-[关键词].md" \
--output "D:\obsidian\hope\1_Voice/YYYY-MM-DD论文搜索-[关键词].md"
重要规则
- 无时间限制:不限制搜索时间范围,但时间近的论文和高质量经典文献都优先
- 综合推荐评分:结合相关性、新近性、热门度、质量四个维度
- 经典文献优先:对于高引用的经典文献,即使发表时间较早也包含
- 文件名包含关键词:保持
D:\obsidian\hope\1_Voice/YYYY-MM-DD论文搜索-[关键词].md 格式
- 按评分排序:所有论文按推荐评分从高到低排列
- 前3篇特殊处理:
- 论文名称用 wikilink 格式:
[[论文名字]]
- 自动提取第一张图片并插入
- 自动调用
paper-analyze 生成详细报告
- 其他论文:只写基本信息,不插入图片
- 避免重复:检查已推荐论文
与其他 skills 的区别
paper-finder (本skill)
- 目的:根据用户自定义关键词搜索文献
- 搜索范围:无时间限制,优先时间近和质量高的论文
- 触发方式:用户手动调用,提供关键词
- 适用场景:
- 研究特定主题时需要文献综述
- 寻找某个方法的相关论文
- 探索新的研究方向
start-my-day
- 目的:每日推荐最新论文
- 搜索范围:最近30天 + 过去一年热门论文
- 触发方式:用户每天手动触发,无需提供关键词
- 适用场景:每日例行文献阅读
paper-search
- 目的:在已整理的笔记中搜索
- 搜索范围:本地 vault 中的论文笔记
- 适用场景:查找已读过的论文
使用说明
基本用法
/paper-finder "canonical correlation analysis"
/paper-finder "volatility modeling" --top-n 15
/paper-finder "machine learning" --categories "cs.LG,stat.ML"
/paper-finder "deep learning" --min-year 2020
/paper-finder "sentiment analysis" --top-n 20 --categories "cs.CL" --min-year 2018
参数说明
keywords: 搜索关键词(必需)
--top-n: 返回论文数量(默认10)
--categories: arXiv分类,逗号分隔(可选)
--min-year: 最早年份(可选)
自动执行流程
-
解析用户输入
- 提取搜索关键词
- 提取可选参数(top-n, categories, min-year)
-
扫描现有笔记构建索引
cd "$SKILL_DIR"
python scripts/scan_existing_notes.py \
--vault "$OBSIDIAN_VAULT_PATH" \
--output existing_notes_index.json
-
搜索和筛选论文
cd "$SKILL_DIR"
python scripts/search_custom.py \
--keywords "用户关键词" \
--output custom_filtered.json \
--max-results 200 \
--top-n 10 \
--categories "可选分类" \
--min-year "可选年份"
-
读取筛选结果
- 从
custom_filtered.json 中读取筛选结果
- 获取前 N 篇高评分论文
-
生成推荐笔记
- 创建
D:\obsidian\hope\1_Voice/YYYY-MM-DD论文搜索-[关键词].md
- 按评分排序,所有论文统一格式
- 前3篇特殊处理:插入图片、生成详细报告
-
对前三篇论文执行深度分析
if 已有笔记:
else:
/extract-paper-images [论文ID]
/paper-analyze [论文ID]
依赖项
- Python 3.x
- PyYAML(用于读取配置文件,可选)
- requests(用于 Semantic Scholar API,可选)
- 网络连接(访问 arXiv API 和 Semantic Scholar API)
20_Research/Papers/ 目录(用于保存详细报告)
extract-paper-images skill(用于提取论文图片)
paper-analyze skill(用于生成详细报告)
脚本说明
search_custom.py
位于 scripts/search_custom.py,功能包括:
- 搜索 arXiv:使用关键词调用 arXiv API
- 搜索 Semantic Scholar:搜索高影响力论文
- 解析结果:提取论文信息(ID、标题、作者、摘要、引用数等)
- 合并去重:合并两个来源的结果,去重
- 筛选论文:根据关键词相关性筛选
- 计算评分:综合相关性、新近性、热门度、质量等维度
- 输出 JSON:保存筛选后的结果到
custom_filtered.json
scan_existing_notes.py
复用 start-my-day 的脚本,功能相同。
link_keywords.py
复用 start-my-day 的脚本,功能相同。