Language Setting / 語言設定
本技能支援中文與英文報告。語言由設定檔中的 language 欄位決定:
- 中文(預設):在設定檔中設定
language: "zh" - 英文:在設定檔中設定
language: "en"
設定檔應位於:$OBSIDIAN_VAULT_PATH/99_System/Config/research_interests.yaml
Runtime / 執行環境
- 將當前
SKILL.md的父目錄作為$SKILL_DIR。 - Windows PowerShell 使用
$env:OBSIDIAN_VAULT_PATH,macOS/Linux shell 使用$OBSIDIAN_VAULT_PATH。 - 執行腳本時優先使用當前可用的
python(Windows)或python3(macOS/Linux);不要假定固定直譯器路徑。 - 首次執行前驗證
python -c "import yaml, requests, fitz"成功;缺少依賴時安裝專案requirements.txt中的依賴。 - 在 Windows 上若環境變數尚未進入當前程序,從設定檔的
vault_path讀取 Vault 路徑,不要退回到 Linux 範例路徑。
Language Detection
執行開始時,讀取設定檔以偵測語言設定:
# Resolve OBSIDIAN_VAULT_PATH if not set in the current session
# Some agent-hosted shell sessions do not source interactive shell profiles automatically
if [ -z "$OBSIDIAN_VAULT_PATH" ]; then
[ -f "$HOME/.zshrc" ] && source "$HOME/.zshrc" 2>/dev/null || true
[ -f "$HOME/.bash_profile" ] && source "$HOME/.bash_profile" 2>/dev/null || true
fi
# Read language from config
LANGUAGE=$(grep -E "^\s*language:" "$OBSIDIAN_VAULT_PATH/99_System/Config/research_interests.yaml" | awk '{print $2}' | tr -d '"')
# Default to Chinese if not set
if [ -z "$LANGUAGE" ]; then
LANGUAGE="zh"
fi
# Set note filename suffix based on language
if [ "$LANGUAGE" = "en" ]; then
NOTE_SUFFIX="paper-recommendations"
else
NOTE_SUFFIX="論文推薦"
fi
Windows PowerShell 等價設定讀取:
$configPath = Join-Path $env:OBSIDIAN_VAULT_PATH '99_System\Config\research_interests.yaml'
$LANGUAGE = (Select-String -Path $configPath -Pattern '^\s*language:' | Select-Object -First 1).Line.Split(':', 2)[1].Trim().Trim('"')
if (-not $LANGUAGE) { $LANGUAGE = 'zh' }
$NOTE_SUFFIX = if ($LANGUAGE -eq 'en') { 'paper-recommendations' } else { '論文推薦' }
然後在整個工作流程中使用此語言設定:
- 生成筆記時,將
--language $LANGUAGE傳遞給腳本 - 在生成的筆記中使用適當的章節標題
目標
幫助用戶開啟他們的研究日,搜尋最近一個月和最近一年的極火、極熱門、極優質論文,生成推薦筆記。
工作流程
工作流程概述
本 skill 使用 Python 腳本呼叫 arXiv API 搜尋論文,解析 XML 結果並根據研究興趣進行篩選和評分。
步驟1:收集上下文(靜默)
-
取得今日日期
- 確定當前日期(YYYY-MM-DD格式)
-
讀取研究設定
- 讀取
$OBSIDIAN_VAULT_PATH/99_System/Config/research_interests.yaml(注意:檔案名稱是 interests 不是 interest)以取得研究領域 - 提取:關鍵詞、類別和優先級
- 以 Zotero 館藏中的標題、標籤和期刊分佈作為興趣畫像;當前畫像重點是地震勘探資料處理、混採與去混採、去噪與重建、時頻分析、速度分析、波場模擬,以及物理約束/深度學習地球物理
- 優先關注
GEOPHYSICS、IEEE Transactions on Geoscience and Remote Sensing、IEEE Geoscience and Remote Sensing Letters、Geophysical Journal International、Geophysical Prospecting、Interpretation和Journal of Applied Geophysics
- 讀取
-
掃描現有筆記建構索引
- 掃描
20_Research/Papers/目錄下的所有.md檔案 - 提取筆記標題(從檔案名稱和frontmatter的title欄位)
- 建構關鍵詞到筆記路徑的映射表,用於後續自動連結
- 優先使用 frontmatter 中的 title 欄位,其次使用檔案名稱
- 掃描
步驟2:搜尋論文
2.1 搜尋範圍
搜尋所有相關分類的最近論文:
-
搜尋範圍
- 使用
scripts/search_arxiv.py搜尋 arXiv - 查詢:所有研究相關的 arXiv 分類
- 按提交日期排序
- 限制結果:200篇
- 使用
-
篩選策略
- 根據研究興趣設定檔篩選論文
- 計算綜合推薦評分
- 保留前10篇高評分論文
2.2 執行搜尋和篩選
使用 scripts/search_arxiv.py 腳本完成搜尋、解析和篩選:
# 使用 Python 腳本搜尋、解析和篩選 arXiv 論文
# 首先切換到 skill 目錄,然後執行腳本
cd "$SKILL_DIR"
python scripts/search_arxiv.py \
--config "$OBSIDIAN_VAULT_PATH/99_System/Config/research_interests.yaml" \
--output arxiv_filtered.json \
--max-results 200 \
--top-n 10 \
--download-dir "$OBSIDIAN_VAULT_PATH/20_Research/Papers/"
腳本功能:
-
搜尋 arXiv
- 呼叫 arXiv API 搜尋指定分類的論文
- 取得最多 200 篇最新論文
-
解析 XML 結果
- 解析 API 傳回的 XML
- 提取:ID、標題、作者、摘要、發布日期、分類
-
應用篩選和評分
- 根據研究興趣設定檔篩選論文
- 計算綜合推薦評分(相關性40%、新近性20%、熱門度30%、品質10%)
- 按評分排序,保留前10篇
輸出:
arxiv_filtered.json- 篩選後的論文列表(JSON 格式)- 每篇論文包含:
- 論文ID、標題、作者、摘要
- 發布日期、分類
- 相關性評分、新近性評分、熱門度評分、品質評分
- 最終推薦評分、匹配的領域
步驟3:讀取篩選結果
3.1 讀取 JSON 結果
從 arxiv_filtered.json 中讀取篩選和評分後的論文列表:
# 讀取篩選結果
cat arxiv_filtered.json
結果包含:
total_found: 搜尋到的總論文數total_filtered: 篩選後的論文數top_papers: 前10篇高評分論文,每篇包含:- 論文ID、標題、作者、摘要
- 發布日期、分類
- 相關性評分、新近性評分、品質評分
- 最終推薦評分、匹配的領域、匹配的關鍵詞
3.2 評分說明
綜合多個維度的評分:
推薦評分 =
相關性評分: 40%
新近性評分: 20%
熱門度評分: 30%
品質評分: 10%
評分細則:
-
相關性評分 (40%)
- 與研究興趣的匹配程度
- 標題關鍵詞匹配:每個+0.5分
- 摘要關鍵詞匹配:每個+0.3分
- 類別匹配:+1.0分
- 最高分:~3.0
-
新近性評分 (20%)
- 最近30天內:+3分
- 30-90天內:+2分
- 90-180天內:+1分
- 180天以上:0分
-
熱門度評分 (30%)
- (如果資料可用)引用數 > 100:+3分
- 引用數 50-100:+2分
- 引用數 < 50:+1分
- 無引用資料:0分
- 或者基於發布後的時間推斷(最近7天內的熱門新論文):+2分
-
品質評分 (10%)
- 從摘要推斷:顯著創新:+3分
- 明確方法:+2分
- 一般性工作:+1分
- 或者讀取已有筆記的品質評分
最終推薦評分 = 相關性(40%) + 新近性(20%) + 熱門度(30%) + 品質(10%)
步驟4:生成今日推薦筆記
4.1 讀取篩選結果
從 arxiv_filtered.json 中讀取篩選後的論文列表:
- 包含前 10 篇高評分論文
- 每篇論文包含完整資訊:ID、標題、作者、摘要、評分、匹配領域
- 必須將所有 10 篇高評分論文下載到這個目錄下:
$OBSIDIAN_VAULT_PATH/20_Research/Papers/ - 後面筆記檔案中的 PDF 本地檔案名稱必須連結到
$OBSIDIAN_VAULT_PATH/20_Research/Papers/目錄下的本地 PDF 檔案 - 若高分候選沒有合法開放 PDF 位址,跳過該候選並按評分順序補入下一篇,直至湊足 10 篇;不足 10 篇時停止並報告,不生成残缺筆記
4.2 建立推薦筆記檔案
-
建立推薦筆記檔案
- 檔案名稱(根據語言設定):
- 中文(
language: "zh"):10_Daily/YYYY-MM-DD論文推薦.md - 英文(
language: "en"):10_Daily/YYYY-MM-DD-paper-recommendations.md
- 中文(
- 使用變數:
10_Daily/YYYY-MM-DD${NOTE_SUFFIX}.md(其中NOTE_SUFFIX在語言檢測階段已設定) - 必須包含屬性:
keywords: 當天推薦論文的關鍵詞(逗號分隔,從論文標題和摘要中提取)tags: ["llm-generated", "daily-paper-recommend"]
- 檔案名稱(根據語言設定):
-
檢查論文是否值得詳細寫
- 很值得讀的論文:推薦評分 >= 7.5 或特別推薦的論文
- 一般推薦論文:其他論文
-
檢查論文是否已有筆記
- 搜尋
20_Research/Papers/目錄 - 查詢是否有該論文的詳細筆記
- 如果已有筆記:簡略寫,引用已有筆記
- 如果無筆記:
- 很值得讀:在推薦筆記中寫詳細部分
- 一般推薦:只寫基本資訊
- 搜尋
4.2 推薦筆記結構
筆記檔案結構如下:
---
keywords: [關鍵詞1, 關鍵詞2, ...]
tags: ["llm-generated", "daily-paper-recommend"]
---
[具體論文推薦列表...]
4.2.1 今日概覽(放在論文列表之前)
在論文列表之前,添加一個概覽部分,總結今日推薦論文的整體情況。
根據 $LANGUAGE 設定選擇語言:
English (language: "en"):
## Today's Overview
Today's {paper_count} recommended papers focus on **{direction1}**, **{direction2}**, and **{direction3}**.
- **Overall Trends**: {summary of research trends}
- **Quality Distribution**: Scores range from {min}-{max}, {quality assessment}.
- **Research Hotspots**:
- **{hotspot1}**: {description}
- **{hotspot2}**: {description}
- **{hotspot3}**: {description}
- **Reading Suggestions**: {reading order recommendations}
Chinese (language: "zh"):
## 今日概覽
今日推薦的{論文數量}篇論文主要聚焦於**{主要研究方向1}**、**{主要研究方向2}**和**{主要研究方向3}**等前沿方向。
- **總體趨勢**:{總結今日論文的整體研究趨勢}
- **品質分佈**:今日推薦的論文評分在 {最低分}-{最高分} 之間,{整體品質評價}。
- **研究熱點**:
- **{熱點1}**:{簡要描述}
- **{熱點2}**:{簡要描述}
- **{熱點3}**:{簡要描述}
- **閱讀建議**:{給出閱讀順序建議}
說明:
- 基於篩選出的前10篇論文的標題、摘要和評分進行總結
- 提取共同的研究主題和趨勢
- 給出合理的閱讀順序建議
4.2.2 所有論文統一格式
所有論文按評分從高到低排列,使用統一格式
根據 $LANGUAGE 設定選擇標籤語言:
English (language: "en"):
### [[Note_Filename|Paper Title as Displayed]]
- **Authors**: [author list]
- **Affiliation**: [institution names, extracted from paper source or arXiv page]
- **Links**: [arXiv](url) | [[local filename|PDF]]
- **Source**: arXiv
- **Note**: [[existing_note_path|short title]] or --
**One-line Summary**: [one sentence summarizing the core contribution]
**Core Contributions**:
- [contribution 1]
- [contribution 2]
- [contribution 3]
**Key Results**: [most important results from abstract]
---
Chinese (language: "zh"):
### [[Note_Filename|論文標題顯示名]]
- **作者**:[作者列表]
- **機構**:[機構名稱,從論文源碼或 arXiv 頁面提取]
- **連結**:[arXiv](連結) | [[本地檔案名稱|PDF]]
- **來源**:[arXiv]
- **筆記**:[[已有筆記路徑|簡稱]] 或 --
**一句話總結**:[一句話概括論文的核心貢獻]
**核心貢獻/觀點**:
- [貢獻點1]
- [貢獻點2]
- [貢獻點3]
**關鍵結果**:[從摘要中提取的最重要結果]
---
重要格式規則:
- Wikilink 必須使用 display alias:
[[File_Name|Display Title]],不要使用 bare[[File_Name]](底線會直接顯示,影響閱讀) - 圖片必須使用 Obsidian wikilink 嵌入語法:
![[filename.png|600]],禁止使用格式(URL 編碼在 Obsidian 中不工作) - 筆記檔案中的 PDF 格式必須是
[[本地檔案名稱|PDF]],本地檔案名稱必須連結到$OBSIDIAN_VAULT_PATH/20_Research/Papers/目錄下的本地 PDF 檔案 - 機構資訊:從論文 TeX 源碼的
\author或\affiliation欄位提取;若 arXiv API 未提供,從下載的源碼包讀取 - 不要使用
---作為"無資料"佔位符:使用--代替(三個短橫線會被 Obsidian 解析為分隔線)
4.2.3 前三篇論文插入圖片和呼叫詳細分析
對於前3篇論文(評分最高的3篇):
步驟0:檢查論文是否已有筆記
# 在 20_Research/Papers/ 目錄中搜尋已有筆記
# 搜尋方式:
# 1. 按論文ID搜尋(如 2602.23351)
# 2. 按論文標題搜尋(模糊匹配)
# 3. 按論文標題關鍵詞搜尋
步驟1:根據檢查結果決定處理方式
如果已有筆記:
- 不生成新的詳細報告
- 使用已有筆記路徑作為 wikilink
- 在推薦筆記的"詳細報告"欄位引用已有筆記
- 檢查是否需要提取圖片(如果沒有 images 目錄或 images 目錄為空)
- 如果需要圖片:呼叫
extract-paper-images - 如果已有圖片:使用現有圖片
- 如果需要圖片:呼叫
如果沒有筆記:
- 呼叫
extract-paper-images提取圖片 - 呼叫
paper-analyze生成詳細報告 - 在推薦筆記中添加圖片和詳細報告連結
步驟2:在推薦筆記中插入圖片和連結
如果已有筆記:
### [[已有論文名稱]]
- **作者**:[作者列表]
- **機構**:[機構名稱]
- **連結**:[arXiv](連結) | [[本地檔案名稱|PDF]]
- **來源**:[arXiv]
- **詳細報告**:[[已有筆記路徑]]
- **筆記**:已有詳細分析
**一句話總結**:[一句話概括論文的核心貢獻]
![[existing_image_filename.png|600]]
**核心貢獻/觀點**:
...
如果沒有筆記:
### [[Note_Filename|Paper Title Display Name]]
- **作者**:[作者列表]
- **機構**:[機構名稱]
- **連結**:[arXiv](連結) | [[本地檔案名稱|PDF]]
- **來源**:[arXiv]
- **詳細報告**:[[20_Research/Papers/[domain]/[note_filename]|Short Title]] (自動生成)
**一句話總結**:[一句話概括論文的核心貢獻]
![[paperID_fig1.png|600]]
**核心貢獻/觀點**:
...
圖片格式規則(重要!):
- 必須使用 Obsidian wikilink 嵌入語法:
![[filename.png|600]] - 禁止使用 markdown 圖片語法:
— URL 編碼(%20,%26)在 Obsidian 中不工作 - 圖片檔案名稱範例:
2603.24124_fig1.png - Obsidian 會自動在 vault 中搜尋匹配的檔案名稱,無需寫完整路徑
詳細報告說明:
- 報告路徑:
20_Research/Papers/[論文分類]/[note_filename].md - 重要:使用 JSON 中的
note_filename欄位拼接 wikilink - 必須使用 display alias:
[[20_Research/Papers/[domain]/[note_filename]|Short Title]]- 正確:
[[20_Research/Papers/大模型/Hypothesis-Conditioned_Query_Rewriting|Hypothesis-Conditioned Query Rewriting]] - 錯誤:
[[20_Research/Papers/大模型/Hypothesis-Conditioned_Query_Rewriting_for_Decision-Useful_Retrieval]](底線直接顯示,不美觀)
- 正確:
- 詳細報告由
paper-analyze自動生成
機構/Affiliation 提取:
- 從下載的 arXiv 源碼包(
.tar.gz)中的.tex檔案提取\author和\affiliation欄位 - 若源碼不可用,從 arXiv 頁面 HTML 提取
- 若仍無法取得,標記為
--(使用兩個短橫線,不要用三個---,因為 Obsidian 會將其解析為分隔線)
步驟5:自動連結關鍵詞(可選)
在生成推薦筆記後,自動連結關鍵詞到現有筆記:
# 步驟1:掃描現有筆記
cd "$SKILL_DIR"
python scripts/scan_existing_notes.py \
--vault "$OBSIDIAN_VAULT_PATH" \
--output existing_notes_index.json
# 步驟2:生成推薦筆記(正常流程)
# ... 使用 search_arxiv.py 搜尋論文 ...
# 步驟3:連結關鍵詞(新增步驟)
python scripts/link_keywords.py \
--index existing_notes_index.json \
--input "10_Daily/YYYY-MM-DD${NOTE_SUFFIX}.md" \
--output "10_Daily/YYYY-MM-DD${NOTE_SUFFIX}_linked.md"
注意:
- 關鍵詞連結腳本會自動跳過 frontmatter、標題行、程式碼塊
- 過濾通用詞(and, for, model, learning 等)
- 保留已有 wikilink 不被修改
重要規則
- 搜尋範圍擴大:搜尋近一個月 + 近一年熱門論文
- 綜合推薦評分:結合相關性、新近性、熱門度、品質四個維度
- 檔案名稱以日期:保持
10_Daily/YYYY-MM-DD${NOTE_SUFFIX}.md格式(中文:論文推薦,英文:paper-recommendations) - 添加今日概覽:在推薦筆記開頭添加"## 今日概覽"部分,總結今日論文的主要研究方向、總體趨勢、品質分佈、研究熱點和閱讀建議
- 按評分排序:所有論文按推薦評分從高到低排列
- 前3篇特殊處理:
- 論文名稱用 wikilink 格式:
[[論文名字]] - 自動提取第一張圖片並插入
- 自動呼叫
paper-analyze生成詳細報告 - 在"詳細報告"欄位顯示 wikilink 關聯
- 論文名稱用 wikilink 格式:
- 其他論文:只寫基本資訊,不插入圖片
- 保持快速:讓用戶快速了解當日推薦
- 避免重複:檢查已推薦論文
- 自動關鍵詞連結:
- 在生成推薦筆記後,自動掃描現有筆記
- 將文本中的關鍵詞(如 BLIP、CLIP 等)替換為 wikilink
- 範例:
BLIP→[[BLIP]] - 保留已有 wikilink 不被修改
- 不替換程式碼塊中的內容
- 不替換已存在 wikilink 的內容(避免重複)
與其他 skills 的區別
start-my-day (本skill)
- 目的:從大範圍搜尋中篩選推薦論文,生成每日推薦筆記
- 搜尋範圍:近一個月 + 近一年熱門/優質論文
- 內容:推薦列表
- 開頭包含"今日概覽":總結主要研究方向、總體趨勢、品質分佈、研究熱點和閱讀建議
- 所有論文統一格式
- 前3篇特殊處理:
- 論文名稱用 wikilink 格式:
[[論文名字]] - 自動提取第一張圖片並插入
- 自動呼叫
paper-analyze生成詳細報告 - 在"詳細報告"欄位顯示 wikilink 關聯
- 論文名稱用 wikilink 格式:
- 圖片處理:前3篇自動提取並插入第一張圖片;不包含所有論文的圖
- 詳細報告:前3篇自動生成,其他論文不生成
- 適用:用戶每天手動觸發
- 筆記引用:如果論文已有筆記,簡略寫並引用;如果分析需要引用歷史筆記,也直接引用
paper-analyze (深度分析skill)
- 目的:用戶主動檢視單篇論文,深度研究
- 適用場景:用戶自己還想要看,但AI沒有整理到的論文
- 內容:詳細的論文深度分析筆記
- 包含所有核心資訊:研究問題、方法概述、方法架構、關鍵創新、實驗結果、深度分析、相關論文對比等
- 圖文並茂:論文中的所有圖片都要用上(核心架構圖、方法圖、實驗結果圖等)
- 適用:用戶主動呼叫
paper-analyze(Codex 使用$paper-analyze,Claude Code 使用/paper-analyze)並提供論文 ID 或標題 - 重要要求:無論是start-my-day整理的論文,還是用戶主動檢視的論文,都要圖文並茂
使用說明
當用戶輸入 "start my day" 時,按以下步驟執行:
日期參數支援:
- 無參數:生成當天的論文推薦筆記
- 有參數(YYYY-MM-DD):生成指定日期的論文推薦筆記
- 例如:Codex 中使用
$start-my-day 2026-02-27,Claude Code 中使用/start-my-day 2026-02-27
- 例如:Codex 中使用
自動執行流程
-
取得目標日期
- 無參數:使用當前日期(YYYY-MM-DD格式)
- 有參數:使用指定日期
-
掃描現有筆記建構索引
# 掃描 vault 中現有的論文筆記 cd "$SKILL_DIR" python scripts/scan_existing_notes.py \ --vault "$OBSIDIAN_VAULT_PATH" \ --output existing_notes_index.json- 掃描
20_Research/Papers/目錄 - 提取筆記標題和 tags
- 建構關鍵詞到筆記路徑的映射表
- 掃描
-
搜尋和篩選 arXiv 論文
# 使用 Python 腳本搜尋、解析和篩選 arXiv 論文 # 首先切換到 skill 目錄,然後執行腳本 # 如果有目標日期參數(如 2026-02-21),傳遞給 --target-date cd "$SKILL_DIR" python scripts/search_arxiv.py \ --config "$OBSIDIAN_VAULT_PATH/99_System/Config/research_interests.yaml" \ --output arxiv_filtered.json \ --max-results 200 \ --top-n 10 \ --download-dir "$OBSIDIAN_VAULT_PATH/20_Research/Papers/" \ --target-date "{目標日期}" # 如果用戶指定了日期,替換為實際日期 -
讀取篩選結果
- 從
arxiv_filtered.json中讀取篩選結果 - 取得前 10 篇高評分論文
- 每篇論文包含:ID、標題、作者、摘要、評分、匹配領域
- 驗證 10 個
local_pdf_filename對應的檔案都存在於$OBSIDIAN_VAULT_PATH/20_Research/Papers/
- 從
-
下載開放 PDF 論文(略)
...
[其餘內容保持與原文相同]