| name | paper-digest |
| description | 当 Supervisor 给出论文或 blog 的 URL/标题/PDF/DOI,或阅读队列中有待处理条目时,消化内容并生成结构化笔记到 Papers/
|
| argument-hint | [arXiv URL / blog URL / PDF path / title / DOI] |
| allowed-tools | Read, Write, Edit, Glob, Grep, Bash, WebSearch, WebFetch |
Purpose
给定一篇论文或技术 blog 的来源(URL、PDF 路径、标题或 DOI),它自动获取内容、提炼核心信息,并按照 Templates/Paper.md 格式生成结构化笔记保存至 Papers/。
支持两种内容类型:
- 论文:arXiv、PDF、DOI 等学术论文
- Blog:技术博客文章(如 Google Research Blog、Lilian Weng、公司技术博客等)
Steps
Step 1:获取论文内容
根据 source 的类型选择获取方式:
网络兜底协议:若 WebFetch / WebSearch 卡住、返回空内容、只拿到 abstract、或 arXiv / HuggingFace 页面无法完整读取,读取 references/network-fetch-fallback.md 并启用 Lexmount fallback。关键约束:
- 不把 API key 写入笔记、日志、frontmatter 或可提交文件;只从
LEXMOUNT_API_KEY 或已被 .gitignore 忽略的 .env 读取。
- arXiv 全文优先尝试
https://arxiv.org/html/<arxiv_id>,再尝试 https://ar5iv.labs.arxiv.org/html/<arxiv_id>;用:
python3 scripts/lexmount_fetch.py extract "<url>" --format markdown
- 若
extract 结果仍不完整,再用 DOM dump 检查:
python3 scripts/lexmount_fetch.py dump "<url>" --engine lightmount_domstable --format text
- HuggingFace papers / model / dataset 页面或动态页面卡顿时,先
extract 公共页面;仍失败再 dump --engine chrome_cdp。
- Lexmount 也失败时,明确记录"未获取全文",不得补写正文细节。
从获取到的内容中提取以下元数据(如果全文无法获取,至少要获取 abstract):
| 字段 | 说明 |
|---|
title | 完整论文标题 |
authors | 作者列表(字符串数组) |
institute | 作者所属机构(字符串数组,从 affiliation 提取) |
date_publish | 发表日期,格式 YYYY-MM-DD、YYYY-MM 或 YYYY |
venue | 发表场所,如 NeurIPS 2025、arXiv;blog 填来源名如 Google DeepMind Blog、Lilian Weng Blog |
url | 论文链接(优先用论文主页,无则用 arXiv abstract 页) |
arxiv_id | arXiv id,如 2606.19409(非 arXiv 论文留空) |
doi | DOI,如 10.1109/TPAMI...(期刊/会议有则填,否则留空) |
code | GitHub 代码链接(若论文中提及) |
Step 2:阅读并理解
Read Critically——论文不是圣经。找出隐含假设和适用边界,ablation、failure case、baseline 选择往往比 main result 更有信息量。对高引论文同样保持批判。
通读获取到的内容,重点提炼以下四个维度:
- Problem & Motivation:作者要解决什么问题?现有方法有什么局限?为什么这个问题重要?
- Method:核心方法/架构是什么?关键设计选择有哪些?用简洁的中文描述,保留必要的英文术语。对于 blog,此处提炼文章的核心论点或技术方案。
- Key Results:主要实验结果是什么?在哪些 benchmark 上取得了什么指标?核心 takeaway 是什么?对于 blog,提炼关键结论、数据或 demo 效果。
- Strengths & Weaknesses:方法的亮点与局限,以及对该领域的潜在影响。严格区分已知、推测、不知道——不 overclaim,不掩盖方法的局限。
如果只能获取 abstract 而非全文,在所有内容区块开头加注:> [未获取全文,仅基于 abstract]
Step 3:确定文件名和 tags
文件名格式:YYMM-ShortTitle.md
YYMM:取自 date_publish 的年份后两位 + 月份,如 2603(2026年3月)
ShortTitle:标题的 CamelCase 缩写,2-4 个关键词,如 EvoScientist、RoboClaw、DiffusionPolicy
- Blog 同理,如一篇 2026 年 2 月的 blog 关于 scaling laws →
2602-ScalingLaws.md
去重检查:用 Glob 扫描 Papers/ 目录,检查是否已存在同名或同主题笔记(搜索标题关键词)。若发现重复,停止并告知 Human,不创建新文件。
Tag 选择:阅读 references/tags.md,按照规范选择 tag。
Step 4:生成笔记
读取 Templates/Paper.md,按模板中的字段和 %% 注释指导填写所有内容。
补充规则(模板未涵盖的):
- rating:必填,按模板中的 1-5 分制评分,基于内容质量和与当前研究方向的相关性综合判断
- 未获取全文:在受影响的章节开头加注
> [未获取全文,仅基于 abstract],不得推测正文内容
- date_added:填写今天日期,格式
YYYY-MM-DD
Step 5:保存并记录
-
写入文件:用 Write 将笔记保存到 Papers/YYMM-ShortTitle.md。
-
YAML 前置校验:写入后立即用 Bash 执行以下检查,确保 frontmatter 可被 Quartz 正确解析:
f="Papers/YYMM-ShortTitle.md"
awk '/^---$/{n++; next} n==1 && /^[a-z_]+:/{print}' "$f" | while read -r line; do
value=$(echo "$line" | sed 's/^[a-z_]*: *//')
if echo "$value" | grep -q ':' && ! echo "$value" | grep -q '^"'; then
echo "YAML ERROR: unquoted colon in value: $line"
fi
done
若发现未加引号的字段,立即用 Edit 为该值加上双引号后重新检查。
-
固化引用身份:用 Bash 为该论文分配稳定 cite_key 并缓存权威 BibTeX:
python3 skills/4-writing/latex-citation-enhancer/assign_cite_keys.py Papers/YYMM-ShortTitle.md
python3 skills/4-writing/latex-citation-enhancer/fetch_bibtex.py Papers/YYMM-ShortTitle.md
第一条从 url 抽 arxiv_id 并写回 cite_key(幂等,已有 key 不变);第二条把 arXiv/Crossref 权威 BibTeX 存入 references/bibtex-cache.bib(抓不到则从 frontmatter 重建)。两条都安全可重复执行。
-
追加日志:用 Edit(或 Write 若文件不存在)将以下格式的 log entry 追加到 Workbench/logs/YYYY-MM-DD.md(日期为今天):
### [HH:MM] paper-digest
- **input**: <source 的原始内容>
- **output**: [[Papers/YYMM-ShortTitle]]
- **observation**: <一句话描述论文核心贡献>
- **status**: success
若日志文件不存在,先创建文件(包含一级标题 # YYYY-MM-DD),再追加 entry。
-
阅读队列:若 source 来自阅读队列(Workbench/queue.md 的 Reading 部分),用 Edit 将对应条目标记为已完成(如在行首添加 ✓ 或删除该条目)。
Step 6:survey 归属记账
笔记保存后,运行记账脚本把它挂到相关 survey 的待更新队列:
python3 scripts/survey_updates.py record "Papers/{文件名}.md"
- 脚本按
Topics/*-Survey.md frontmatter 的 keywords 与本笔记 tags/标题匹配(大小写与连字符已归一化),输出匹配到的 survey 列表(JSON)。
- 匹配为空是正常情况(论文不属于任何已有 survey 主题),静默继续。
- 脚本报错时不阻塞 digest:在当日 log 记一条
survey-updates 记账失败 即可。
- pending 的消费由
survey-refresh skill 负责(GUI canonical 在 ≥1 篇时触发;其他 survey 在 ≥5 篇或最老条目超 7 天时触发)。
- 若输出列表含
GUIAgent-Survey,该 pending 是下一 skill round 的强制优先项:在执行任何其他研究任务、或宣告一个包含 digest+整合的多步请求完成前,必须先运行 survey-refresh。独立的单篇 digest 可以在本轮结束,但必须明确报告“GUI survey integration pending”;这保留“一轮一个 skill”的原子性,同时保证下一轮立即整合。
- GUI canonical 特例:若输出包含
GUIAgent-Survey,不等待 5 篇 / 7 天阈值;保持本轮
paper-digest 原子性,并由下一轮优先执行 survey-refresh GUIAgent-Survey。GUI 论文的 tag
必须遵守 references/tags.md 的 umbrella 规则,避免只标 agentic-RL 或宽泛 environment
而漏记账。
Guard
- 不覆盖已有笔记:若
Papers/YYMM-ShortTitle.md 已存在,停止执行并告知 Human,不得覆盖或修改已有文件。
- 不捏造信息:所有字段必须来自论文原文。无法获取全文时,在受影响的章节开头标注
> [未获取全文,仅基于 abstract],不得推测正文内容填充 Method / Key Results 等节。
- 语言规范:正文用中文撰写,英文技术术语(模型名、方法名、benchmark 名)保持英文,不做翻译。
Verify
Examples
示例 1:从 arXiv URL 消化论文
/paper-digest "https://arxiv.org/abs/2603.08127"
执行过程:
- WebFetch
https://arxiv.org/abs/2603.08127 获取 abstract、作者、日期等元数据
- WebFetch
https://arxiv.org/html/2603.08127 获取 HTML 全文
- 提炼 Problem / Method / Results / Strengths & Weaknesses
- Glob
Papers/2603-*.md 检查是否重复
- 读取
references/tags.md 选取合适 tags
- Grep
Papers/ 和 Ideas/ 搜索相关笔记
- 写入
Papers/2603-EvoScientist.md
- 追加日志到
Workbench/logs/2026-03-26.md
输出文件:Papers/2603-EvoScientist.md
示例 2:从论文标题搜索
/paper-digest "Diffusion Policy: Visuomotor Policy Learning via Action Diffusion"
执行过程:
- WebSearch
"Diffusion Policy: Visuomotor Policy Learning via Action Diffusion" site:arxiv.org
- 获取 arXiv 链接,WebFetch 抓取内容
- 后续步骤同示例 1
输出文件:Papers/2303-DiffusionPolicy.md
示例 3:从本地 PDF 消化
/paper-digest "/Users/qingli/Downloads/roboclaw_2025.pdf"
执行过程:
- Read
/Users/qingli/Downloads/roboclaw_2025.pdf 读取 PDF 内容
- 从内容中提取元数据(title、authors、date、venue)
- 后续步骤同示例 1
示例 4:从 blog URL 消化
/paper-digest "https://lilianweng.github.io/posts/2024-11-28-reward-hacking/"
执行过程:
- WebFetch 抓取 blog 页面内容
- 提取元数据:title、author(Lilian Weng)、date_publish、venue 填
Lilian Weng Blog
- institute、code 无法确定则留空
- 提炼 Problem / Method(核心论点)/ Key Results(关键结论)/ Strengths & Weaknesses
- 后续去重、tag 选择、Connections 搜索、保存、日志同论文流程
输出文件:Papers/2411-RewardHacking.md