conf-papers

SKILL.md

You are the Conference Paper Recommender for OrbitOS.

目标

帮助用户搜索顶级学术会议(CVPR/ICCV/ECCV/ICLR/AAAI/NeurIPS/ICML)中与研究兴趣相关的论文,按年份筛选,生成推荐笔记到 Obsidian vault。

工作流程

工作流程概述

本 skill 使用 DBLP API 搜索会议论文列表,通过 Semantic Scholar API 补充引用数和摘要,然后基于相关性、热门度、质量三个维度评分排序,生成推荐笔记。

配置说明

本 skill 使用独立配置文件 conf-papers.yaml(位于 skill 目录下),与 start-my-day 的 research_interests.yaml 完全独立:

# conf-papers.yaml
keywords:           # 感兴趣的关键词(用于筛选论文标题)
  - "large language model"
  - "LLM"
  - ...
excluded_keywords:  # 排除的关键词
  - "3D"
  - "survey"
  - ...
default_year: 2024           # 默认搜索年份
default_conferences:         # 默认搜索会议
  - "ICLR"
  - "NeurIPS"
  - ...
top_n: 10                    # 返回论文数量

命令行参数(年份、会议)可以覆盖配置中的默认值。如果命令行没有指定,则使用配置文件中的值。

步骤1:解析参数

  1. 提取年份(可选,默认从配置读取)

    • 从用户输入中提取年份,如 /conf-papers 2025
    • 未指定时使用配置中的 conf_papers.default_year
  2. 提取会议名(可选,默认从配置读取)

    • 用户可以指定会议,如 /conf-papers 2025 ICLR,CVPR
    • 未指定时使用配置中的 conf_papers.default_conferences
    • 注意:ICCV 在偶数年、ECCV 在奇数年可能无结果(双年会议),正常跳过

步骤2:扫描已有笔记构建索引

复用 start-my-day 的扫描脚本:

cd "$SKILL_DIR/../start-my-day"
python scripts/scan_existing_notes.py \
  --vault "$OBSIDIAN_VAULT_PATH" \
  --output "$SKILL_DIR/existing_notes_index.json"

步骤3:搜索顶会论文

使用 scripts/search_conf_papers.py 完成搜索、补充和评分:

cd "$SKILL_DIR"
python scripts/search_conf_papers.py \
  --config "$SKILL_DIR/conf-papers.yaml" \
  --output conf_papers_filtered.json \
  --year {年份} \
  --conferences "{会议列表,逗号分隔}"

注意:--config 默认指向 skill 目录下的 conf-papers.yaml,通常不需要手动指定。--year--conferences 未指定时使用配置文件中的默认值。

脚本工作流

  1. DBLP 搜索:调用 DBLP API 获取指定会议和年份的全部论文
  2. 轻量过滤:凭标题关键词匹配研究兴趣,大幅缩小范围(~200篇)
  3. S2 补充:仅对过滤后的论文查询 Semantic Scholar,获取摘要和引用数
  4. 三维评分:相关性(40%) + 热门度(40%) + 质量(20%),排序取 top N

评分说明(与 start-my-day 的区别:无新近性维度,因为年份由用户指定):

推荐评分 =
  相关性评分: 40%   # 与研究兴趣的匹配程度
  热门度评分: 40%   # 基于引用数(influentialCitationCount 优先)
  质量评分: 20%     # 从摘要推断创新性和实验质量

步骤4:读取筛选结果

conf_papers_filtered.json 中读取结果:

cat conf_papers_filtered.json

结果包含

  • year: 搜索年份
  • conferences_searched: 搜索的会议列表
  • total_found: DBLP 搜索到的总论文数
  • total_filtered: 关键词过滤后的论文数
  • total_enriched: S2 补充成功的论文数
  • top_papers: 前 N 篇高评分论文,每篇包含:
    • title, authors, conference, year
    • dblp_url, arxiv_id(如有)
    • abstract, citationCount, influentialCitationCount
    • scores(relevance, popularity, quality, recommendation)
    • matched_domain, matched_keywords

步骤5:生成推荐笔记

5.1 创建推荐笔记文件

  • 文件名:10_Daily/{年份}_顶会论文推荐.md
  • frontmatter:
    ---
    keywords: [关键词1, 关键词2, ...]
    tags: ["llm-generated", "conf-paper-recommend"]
    ---
    

5.2 推荐笔记结构

概览部分

## {年份} 顶会论文推荐概览

本次从 **{会议列表}** 中共搜索到 {total_found} 篇论文,经过研究兴趣匹配筛选出 {total_filtered} 篇候选,最终推荐以下 {top_n} 篇高质量论文。

- **总体趋势**:{总结论文的整体研究趋势}

- **研究热点**  - **{热点1}**:{简要描述}
  - **{热点2}**:{简要描述}
  - **{热点3}**:{简要描述}

- **阅读建议**:{给出阅读顺序建议}

论文列表(统一格式,按评分排序)

### [[论文名字]]
- **作者**:[作者列表]
- **会议**:{CVPR/ICLR/...} {年份}
- **引用**:{citationCount} (influential: {influentialCitationCount})
- **链接**[DBLP](链接) | [arXiv](链接) | [PDF](链接)
- **笔记**:[[已有笔记路径]] 或 <<>>

**一句话总结**:[一句话概括论文的核心贡献]

**核心贡献/观点**- [贡献点1]
- [贡献点2]
- [贡献点3]

**关键结果**:[从摘要中提取的最重要结果]

---

链接规则

  • 有 arXiv ID 的论文:提供 arXiv 和 PDF 链接
  • 无 arXiv ID 的论文:仅提供 DBLP 链接,标注"无 arXiv 版本"
  • 有 DOI 的论文:额外提供 DOI 链接

5.3 前 3 篇特殊处理

对于前 3 篇论文(评分最高的 3 篇):

步骤0:检查论文是否已有笔记

# 在 20_Research/Papers/ 目录中搜索已有笔记
# 搜索方式:
# 1. 按论文ID搜索(如 2501.12345)
# 2. 按论文标题搜索(模糊匹配)

步骤1:根据检查结果决定处理方式

如果已有笔记:

  • 不生成新的详细报告
  • 使用已有笔记路径作为 wikilink
  • 在推荐笔记的"详细报告"字段引用已有笔记

如果没有笔记 论文有 arXiv ID:

  • 调用 extract-paper-images 提取图片
  • 调用 paper-analyze 生成详细报告
  • 在推荐笔记中添加图片和详细报告链接

如果没有笔记 论文无 arXiv ID:

  • 标注"无 arXiv 版本,无法自动提取图片和生成详细分析"
  • 提供 DBLP/DOI 链接供手动查阅
  • 跳过图片提取和深度分析

步骤2:在推荐笔记中插入图片和链接

有 arXiv ID + 有图片:

### [[论文名字]]
- **作者**:[作者列表]
- **会议**:{会议} {年份}
- **引用**:{citationCount} (influential: {influentialCitationCount})
- **链接**[DBLP](链接) | [arXiv](链接) | [PDF](链接)
- **详细报告**:[[详细报告路径]] (自动生成)

**一句话总结**:[一句话概括论文的核心贡献]

![论文图片|600](图片路径)

**核心贡献/观点**...

无 arXiv ID:

### [[论文名字]]
- **作者**:[作者列表]
- **会议**:{会议} {年份}
- **引用**:{citationCount} (influential: {influentialCitationCount})
- **链接**[DBLP](链接)
- **备注**:无 arXiv 版本,无法自动提取图片

**一句话总结**:[一句话概括论文的核心贡献]

**核心贡献/观点**...

步骤6:关键词链接

复用 start-my-day 的关键词链接脚本:

cd "$SKILL_DIR/../start-my-day"
python scripts/link_keywords.py \
  --index "$SKILL_DIR/existing_notes_index.json" \
  --input "$OBSIDIAN_VAULT_PATH/10_Daily/{年份}_顶会论文推荐.md" \
  --output "$OBSIDIAN_VAULT_PATH/10_Daily/{年份}_顶会论文推荐.md"

重要规则

  • 年份为必需参数:用户必须指定搜索年份
  • 三维评分:相关性(40%) + 热门度(40%) + 质量(20%),无新近性维度
  • 文件名以年份10_Daily/{年份}_顶会论文推荐.md
  • 两阶段过滤:先用标题关键词轻量过滤,再对候选论文查 S2,避免大量 API 调用
  • 论文增加会议和引用字段:区别于 start-my-day 的 arXiv 论文
  • 前 3 篇特殊处理
    • 论文名称用 wikilink 格式:[[论文名字]]
    • 有 arXiv ID:提取图片 + 深度分析
    • 无 arXiv ID:标注"无 arXiv 版本",跳过图片和深度分析
  • 其他论文:只写基本信息
  • 双年会议处理:ICCV 偶数年、ECCV 奇数年无结果,正常跳过
  • 自动关键词链接:复用 start-my-day 的 link_keywords.py

错误处理

场景 处理
DBLP 请求失败 3 次重试 + 指数退避,单会议失败不中断整体
S2 429 限流 等待 30 秒重试
S2 补充失败 保留论文,abstract=None, citationCount=0,仅凭标题评分
双年会议空结果 ICCV 偶数年、ECCV 奇数年无结果,正常跳过并记录日志
论文无 arXiv ID 跳过图片提取和深度分析,标注在笔记中

与其他 skills 的区别

conf-papers (本skill)

  • 目的:搜索顶级会议论文,按年份推荐
  • 数据源:DBLP + Semantic Scholar
  • 搜索范围:指定年份的指定会议
  • 评分维度:相关性 + 热门度 + 质量(无新近性)
  • 输出:年度推荐笔记

start-my-day (每日推荐)

  • 目的:每日 arXiv 新论文推荐
  • 数据源:arXiv + Semantic Scholar
  • 搜索范围:近一个月 + 近一年热门论文
  • 评分维度:相关性 + 新近性 + 热门度 + 质量
  • 输出:每日推荐笔记

使用说明

当用户输入 /conf-papers 时,按以下步骤执行:

参数支持

  • 可选:年份(如 2025),未指定时使用配置中的 conf_papers.default_year
  • 可选:会议名(如 ICLR,CVPR,逗号分隔),未指定时使用配置中的 conf_papers.default_conferences
  • 搜索关键词和排除关键词均从 conf_papers 配置段读取
  • 示例:
    • /conf-papers — 使用配置中的默认年份和会议
    • /conf-papers 2025 — 搜索配置中默认会议的 2025 年论文
    • /conf-papers 2024 ICLR — 仅搜索 ICLR 2024
    • /conf-papers 2024 CVPR,NeurIPS — 搜索 CVPR 和 NeurIPS 2024

自动执行流程

  1. 解析参数

    • 提取年份和可选会议名
    • 验证会议名是否在支持列表中
  2. 扫描现有笔记构建索引

    cd "$SKILL_DIR/../start-my-day"
    python scripts/scan_existing_notes.py \
      --vault "$OBSIDIAN_VAULT_PATH" \
      --output "$SKILL_DIR/existing_notes_index.json"
    
  3. 搜索和筛选顶会论文

    cd "$SKILL_DIR"
    python scripts/search_conf_papers.py \
      --config "$SKILL_DIR/conf-papers.yaml" \
      --output conf_papers_filtered.json \
      --year {年份} \
      --conferences "{会议列表}" \
      --top-n 10
    
  4. 读取筛选结果

    • conf_papers_filtered.json 中读取
    • 获取前 10 篇高评分论文
  5. 生成推荐笔记(包含关键词链接)

    • 创建 10_Daily/{年份}_顶会论文推荐.md
    • 按评分排序
    • 前 3 篇特殊处理:图片 + 深度分析(仅有 arXiv ID 的论文)
    • 其他论文只写基本信息
    • 自动关键词链接
  6. 对前 3 篇论文执行深度分析(仅有 arXiv ID 的论文)

    # 对每篇前三论文执行以下操作
    
    # 步骤1:检查论文是否已有笔记
    # 在 20_Research/Papers/ 目录中搜索
    
    # 步骤2:根据检查结果决定处理方式
    if 已有笔记:
        # 不生成新的详细报告
        # 使用已有的笔记路径
    elif 有 arXiv ID:
        # 提取第一张图片
        /extract-paper-images [论文ID]
        # 生成详细分析报告
        /paper-analyze [论文ID]
    else:
        # 无 arXiv ID,跳过深度分析
        # 标注在推荐笔记中
    

临时文件清理

  • conf_papers_filtered.json — 搜索结果
  • existing_notes_index.json — 笔记索引
  • 推荐笔记已保存到 vault 后,可清理临时文件

依赖项

  • Python 3.x
  • PyYAML
  • 网络连接(DBLP API + Semantic Scholar API)
  • start-my-day skill(复用 scan_existing_notes.py, link_keywords.py, search_arxiv.py 的评分函数)
  • extract-paper-images skill(提取论文图片,仅限有 arXiv ID 的论文)
  • paper-analyze skill(生成详细报告,仅限有 arXiv ID 的论文)
Weekly Installs
1
GitHub Stars
413
First Seen
1 day ago
Installed on
mcpjam1
claude-code1
replit1
junie1
windsurf1
zencoder1