conf-papers について
conf-papersは、研究者向けの会議論文推薦スキルです。年と会議を指定して論文を検索し、DBLPとSemantic Scholarの情報を用いて関連性・人気度・品質で順位付けし、Obsidianノートを作成します。
主な機能
- 01年と会議を指定した論文検索
- 02DBLPから会議論文リストを取得
- 03Semantic Scholarで概要と引用数を補完
- 04関連性・人気度・品質による評価
- 05年次のObsidian推薦ノート作成
活用シーン
- 01指定年・会議の関連論文を探す
- 02候補論文の引用数と関連性を比較
- 03既存ノートへのリンク付き会議論文推薦を作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ juliye2025/ evil-read-arxiv --skill conf-papersインストール後、Claude Code で/conf-papersを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
conf-papers.yamlagents/openai.yamlscripts/search_conf_papers.py詳細
You are the Conference Paper Recommender for OrbitOS.
目標
ユーザーが研究関心に関連するトップレベルの学術会議(CVPR/ICCV/ECCV/ICLR/AAAI/NeurIPS/ICML)の論文を検索し、年で絞り込み、Obsidian vault に推薦ノートを生成できるよう支援します。
ワークフロー
ワークフローの概要
この skill は DBLP API で会議論文の一覧を検索し、Semantic Scholar API で引用数と要約を補足したうえで、関連性、人気度、品質の3つの観点からスコアを付けて並べ替え、推薦ノートを生成します。
設定
この 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:引数の解析
-
年の抽出(任意。デフォルトは設定から読み込み)
- ユーザー入力から年を抽出します。例:
/conf-papers 2025 - 指定がない場合は、設定の
conf_papers.default_yearを使用します
- ユーザー入力から年を抽出します。例:
-
会議名の抽出(任意。デフォルトは設定から読み込み)
- ユーザーは会議を指定できます。例:
/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が指定されていない場合は、設定ファイルのデフォルト値が使用されます。
スクリプトのワークフロー:
- DBLP 検索:DBLP API を呼び出して、指定された会議と年の全論文を取得します
- 軽量フィルタリング:タイトルのキーワードと研究関心を照合し、対象を大幅に絞り込みます(約200件)
- S2 による補足:フィルタリング後の論文のみ Semantic Scholar に問い合わせ、要約と引用数を取得します
- 3次元スコアリング:関連性(40%)+人気度(40%)+品質(20%)でスコア付けし、上位 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}**:{简要描述}
- **阅读建议**:{给出阅读顺序建议}
論文一覧(統一形式、スコア順)
language: "zh" の場合は中国語形式を使用:
### [[论文名字]]
- **作者**:[作者列表]
- **机构**:[机构名称]
- **会议**:{CVPR/ICLR/...} {年份}
- **引用**:{citationCount} (influential: {influentialCitationCount})
- **链接**:[DBLP](链接) | [arXiv](链接) | [PDF](链接)
- **笔记**:[[已有笔记路径]] 或 —
**一句话总结**:[一句话概括论文的核心贡献]
**核心贡献/观点**:
- [贡献点1]
- [贡献点2]
- [贡献点3]
**关键结果**:[从摘要中提取的最重要结果]
---
language: "en" の場合は英語形式を使用:
### [[paper_note_filename|Paper Title]]
- **Authors**: [author list]
- **Affiliation**: [affiliation or "Not specified"]
- **Conference**: {CVPR/ICLR/...} {year}
- **Citations**: {citationCount} (influential: {influentialCitationCount})
- **Links**: [DBLP](link) | [arXiv](link) | [PDF](link)
- **Notes**: [[existing_note_path]] or —
**One-line Summary**: [one-line summary of core contribution]
**Core Contributions**:
- [Contribution 1]
- [Contribution 2]
- [Contribution 3]
**Key Results**: [most important results from abstract]
---
リンクのルール:
- 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 あり+画像あり(language: "zh"):
### [[论文名字]]
- **作者**:[作者列表]
- **机构**:[机构名称]
- **会议**:{会议} {年份}
- **引用**:{citationCount} (influential: {influentialCitationCount})
- **链接**:[DBLP](链接) | [arXiv](链接) | [PDF](链接)
- **详细报告**:[[20_Research/Papers/[domain]/[note_filename]]] (自动生成)
**一句话总结**:[一句话概括论文的核心贡献]

**核心贡献/观点**:
...
arXiv ID あり+画像あり(language: "en"):
### [[paper_note_filename|Paper Title]]
- **Authors**: [author list]
- **Affiliation**: [affiliation or "Not specified"]
- **Conference**: {conference} {year}
- **Citations**: {citationCount} (influential: {influentialCitationCount})
- **Links**: [DBLP](link) | [arXiv](link) | [PDF](link)
- **Detailed Report**: [[20_Research/Papers/[domain]/[note_filename]]] (auto-generated)
**One-line Summary**: [one-line summary]

**Core Contributions**:
...
詳細レポートについて:
- レポートのパス:
20_Research/Papers/[论文分类]/[note_filename].md - 重要:wikilink の作成には、元のタイトルではなく JSON の
note_filenameフィールドを使用してください。generate_note.pyが作成するファイル名との一致を確保できます- 正しい例:
[[20_Research/Papers/大模型/Attention_Is_All_You_Need]] - 誤った例:
[[20_Research/Papers/大模型/Attention Is All You Need]]
- 正しい例:
- 論文分類(domain)の命名規則:domain 名は
paper-analyzeが実際に作成するディレクトリ名と完全に一致させてください。途中で切り詰めないでください- 正しい例:
[[20_Research/Papers/Foundation Models & LLM/...]] - 誤った例:
[[20_Research/Papers/Foundation]](「Models & LLM」の部分が切り詰められています)
- 正しい例:
- 詳細レポートは
paper-analyzeによって自動生成され、論文の完全な分析が含まれます
arXiv ID なし(language: "zh"):
### [[论文名字]]
- **作者**:[作者列表]
- **机构**:[机构名称]
- **会议**:{会议} {年份}
- **引用**:{citationCount} (influential: {influentialCitationCount})
- **链接**:[DBLP](链接)
- **备注**:无 arXiv 版本,无法自动提取图片
**一句话总结**:[一句话概括论文的核心贡献]
**核心贡献/观点**:
...
arXiv ID なし(language: "en"):
### [[paper_note_filename|Paper Title]]
- **Authors**: [author list]
- **Affiliation**: [affiliation or "Not specified"]
- **Conference**: {conference} {year}
- **Citations**: {citationCount} (influential: {influentialCitationCount})
- **Links**: [DBLP](link)
- **Note**: No arXiv version, cannot auto-extract images
**One-line Summary**: [one-line summary]
**Core Contributions**:
...
ステップ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"
重要なルール
- 年は必須パラメーターです:ユーザーは検索する年を指定する必要があります
- 3次元スコアリング:関連性(40%)+人気度(40%)+品質(20%)。鮮度の観点はありません
- ファイル名には年を含めます:
10_Daily/{年份}_顶会论文推荐.md - 2段階フィルタリング:まずタイトルのキーワードで軽量フィルタリングし、その後候補論文について S2 に問い合わせることで、大量の API 呼び出しを避けます
- 論文には会議名と引用数のフィールドを追加します:start-my-day の arXiv 論文とは異なります
- 上位3件の特別な処理:
- 論文名は wikilink 形式で記載します:
[[论文名字]] - arXiv ID がある場合:画像を抽出し、詳細分析を行います
- arXiv ID がない場合:「arXiv 版なし」と明記し、画像の抽出と詳細分析をスキップします
- 論文名は wikilink 形式で記載します:
- その他の論文:基本情報のみを記載します
- 二年に一度開催される会議の処理:ICCV は偶数年、ECCV は奇数年に結果がない場合があります。その場合は通常どおりスキップします
- キーワードリンクの自動作成:start-my-day の link_keywords.py を再利用します
エラー処理
| 状況 | 対応 |
|---|---|
| DBLP リクエストの失敗 | 3回再試行し、指数バックオフを適用します。1つの会議で失敗しても全体の処理は中断しません |
| 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(Codex 使用 $conf-papers,Claude Code 使用 /conf-papers)时,按以下步骤执行:
参数支持:
- 可选:年份(如
2025),未指定时使用配置中的conf_papers.default_year - 可选:会议名(如
ICLR,CVPR,逗号分隔),未指定时使用配置中的conf_papers.default_conferences - 搜索关键词和排除关键词均从
conf_papers配置段读取 - 示例:
$conf-papers或/conf-papers— 使用配置中的默认年份和会议$conf-papers 2025— 搜索配置中默认会议的 2025 年论文$conf-papers 2024 ICLR— 仅搜索 ICLR 2024$conf-papers 2024 CVPR,NeurIPS— 搜索 CVPR 和 NeurIPS 2024
自动执行流程
-
解析参数
- 提取年份和可选会议名
- 验证会议名是否在支持列表中
-
扫描现有笔记构建索引
cd "$SKILL_DIR/../start-my-day" python scripts/scan_existing_notes.py \ --vault "$OBSIDIAN_VAULT_PATH" \ --output "$SKILL_DIR/existing_notes_index.json" -
搜索和筛选顶会论文
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 -
读取筛选结果
- 从
conf_papers_filtered.json中读取 - 获取前 10 篇高评分论文
- 从
-
生成推荐笔记(包含关键词链接)
- 创建
10_Daily/{年份}_顶会论文推荐.md - 按评分排序
- 前 3 篇特殊处理:图片 + 深度分析(仅有 arXiv ID 的论文)
- 其他论文只写基本信息
- 自动关键词链接
- 创建
-
对前 3 篇论文执行深度分析(仅有 arXiv ID 的论文)
# 对每篇前三论文执行以下操作 # 步骤1:检查论文是否已有笔记 # 在 20_Research/Papers/ 目录中搜索 # 步骤2:根据检查结果决定处理方式 if 已有笔记: # 不生成新的详细报告 # 使用已有的笔记路径 elif 有 arXiv ID: # 提取第一张图片 调用 extract-paper-images skill,传入 [论文ID] # 生成详细分析报告 调用 paper-analyze skill,传入 [论文ID] else: # 无 arXiv ID,跳过深度分析 # 标注在推荐笔记中
临时文件清理
conf_papers_filtered.json— 搜索结果existing_notes_index.json— 笔记索引- 推荐笔记已保存到 vault 后,可清理临时文件
依赖项
- Python 3.x
- PyYAML
- 网络连接(DBLP API + Semantic Scholar API)
start-my-dayskill(复用 scan_existing_notes.py, link_keywords.py, search_arxiv.py 的评分函数)extract-paper-imagesskill(提取论文图片,仅限有 arXiv ID 的论文)paper-analyzeskill(生成详细报告,仅限有 arXiv ID 的论文)