| name | daily-papers |
| description | 每日论文总结。抓取 HuggingFace Daily/Trending + arXiv + venue 源(OpenAlex 期刊 IJCV/TNNLS/TPAMI、CVF 顶会 CVPR/ICCV/WACV)最新论文,按研究方向打分筛选, 生成论文笔记后基于深度阅读写出有态度的总结锐评。 触发词:"今日论文总结""过去3天论文总结""过去一周论文总结""看看最近有什么论文" |
| argument-hint | [今日 / 过去N天 / 过去一周] |
| allowed-tools | Bash, Read, Write, Edit, Glob, Grep |
Purpose
自动发现与研究方向相关的最新论文,生成候选列表。分三步:
- Python 脚本抓取 + 打分(零 token)
- 快速分流 → 确定必读论文
- 每篇必读论文:独立 subagent 生成笔记 + 基于笔记写单篇点评 → 主 agent 汇总锐评和分流表,保存文件
关键设计:单篇点评由生成笔记的 subagent 在同一会话内完成——它此时刚读完论文、有完整上下文;让主 agent 读回笔记重写点评是对 context 的浪费,且摘要驱动的重写容易丢失笔记里的 ablation / caveat 细节。
Steps
Step 0:解析时间范围
从用户输入中解析天数:
- "今日论文总结"、"今日论文"、"每日总结" → 当天(
--days 1)
- "过去3天"、"最近三天" →
--days 3
- "过去一周"、"最近7天" →
--days 7
- "过去两周" →
--days 14
- 无特殊指定 → 默认当天
将解析出的天数存为 DAYS 变量。
Step 1:抓取 + 打分(Python 脚本,零 token)
运行 fetch_and_score.py,输出到 Workbench/daily/.candidates.json:
python3 skills/1-literature/daily-papers/fetch_and_score.py \
--days {DAYS} \
--output Workbench/daily/.candidates.json
脚本抓取四类源(均零 token,纯 stdlib,配置见 config.json):
- HuggingFace Daily/Trending + arXiv:每日预印本主力,
source 为 hf-daily/hf-trending/arxiv。
- OpenAlex 期刊(
openalex_venues,按 ISSN):IJCV/TNNLS/TPAMI 等,source 为 openalex:{Venue}。期刊出得稀疏,故用独立的 openalex_lookback_days 窗口(默认 60 天)而非 --days;许多 IEEE/Springer 论文在 OpenAlex 中无摘要,此时退化为 title-only 打分,仅标题命中关键词者入选。由于 title 打分(3-7)远低于 HF 高赞(9999)/ CVF(9),会被挤出 top_n,故用 reserve_per_source(默认 openalex:5)保底名额——保证每次纳入若干篇过 min_score 的期刊论文。
- CVF 顶会(
cvf_proceedings):CVPR/ICCV/WACV 论文集,source 为 cvf:{Proc},携带 pdf_url(免费全文,供 paper-digest 读正文)。listing 页无摘要 → title-only 打分。论文集为一次性发布,"新" = 不在 history;首次启用某 proceeding 会有一批 backlog,由 max_per_source(cvf/openalex 每日条数上限)逐日泄洪,避免淹没 arxiv/HF。
跨源去重以稳定主键 paper_key(arxiv id → doi → cvf id → 标题哈希)合并:同一论文若 arxiv 与期刊均收录,会归并为一条。
检查输出:确认文件存在且包含有效 JSON 数组。如果为空数组,检查 stderr 诊断问题(可能是周末 arXiv 无更新、网络问题等),告知用户原因后停止。
网络兜底:fetch_and_score.py 的 HuggingFace Daily/Trending 与 arXiv API 抓取会先走本地 urlopen。若本地网络卡顿、超时或返回空内容,脚本会在存在 LEXMOUNT_API_KEY 时自动通过 Lexmount DOM dump 重试。key 只能来自环境变量或被 .gitignore 忽略的 .env,不得写入日志或总结文件。详细协议见 references/network-fetch-fallback.md。
历史去重:脚本在 output 同目录维护 .history.json,单天模式自动过滤已总结过的论文(30 天窗口),多天模式跳过去重。每次运行后自动更新历史。
Step 1.5:公众号 AI 动态(可选,若 config news.wechat.enabled)
抓关注公众号(机器之心/量子位/新智元/PaperWeekly 等,配置见 team-config.json news.wechat)
在时间窗内的相关文章,作为论文线索的补充信道——很多号就是在第一时间解读新论文。
python3 scripts/wechat_search/fetch_wechat.py --days {DAYS} \
--output Workbench/daily/.wechat-candidates.json
Read candidates(已按关注账号 + 关键词打分排序)。对每条:
- 是在解读某篇具体论文(标题/摘要出现明确论文名、"XX 团队提出"、arXiv/会议名等)→
用 WebSearch 反查该论文的 arXiv id,若查到且 vault 无笔记,按 Step 2c 的方式
queue_ops.py enqueue 入队(source 记为 wechat),让 paper-digest 后续消化原文。
- 是行业动态/观点(发布、融资、综述、访谈)→ 不入论文队列,留到 Step 4 的「公众号动态」小节一句话带过。
Guard:公众号是二手线索,只用来发现论文和感知风向;真正入库的证据永远是它指向的原始
论文。搜狗限流导致候选为空或 errors 非空时,跳过本步不阻塞。不要把公众号解读当论文点评写。
Step 2:快速分流
读取 Workbench/daily/.candidates.json,做轻量级分类,不写详细点评。
2a:兜底过滤
参照研究兴趣判断论文相关性,如果发现某篇论文与所有研究兴趣均无关,而且 score 不高,直接跳过。
2b:分流
基于摘要和 score,将论文分流为:
- 要精读:强相关 + 方法有新意或结果显著
- 可跳过:其他论文(弱相关,limited novelty,marginal improvement 等)
每篇论文只需一句话分流理由,不写详细点评。
2c:入队必读论文(持久 backlog)
把"要精读"论文写入 Workbench/queue.json,作为持久 backlog——这样即使本次 inline digest 未全部完成(论文太多 / 网络中断),剩余论文仍会留存,由 autoresearch 的 paper-digest 继续消费。
收集"要精读"论文的 arXiv id(从 .candidates.json 的 url 中提取,如 2605.21573),运行:
python3 skills/1-literature/daily-papers/queue_ops.py enqueue \
--candidates Workbench/daily/.candidates.json \
--ids <id1> <id2> ...
脚本自动去重(已有笔记或已在队列的跳过)、自清理(已有笔记的 pending 任务剪除)、并按 max_queue_size 裁剪。Step 3 的 inline digest 落地笔记后,下次 enqueue 会自动剪除这些任务,无需手动标记完成。
Step 3:每篇要精读论文 → 笔记 + 单篇点评
每篇要精读论文派发一个 subagent,指示它:
- 调用
paper-digest skill 生成笔记;若笔记已存在,则直接读取已有笔记(paper-digest 会自动固化 cite_key + 缓存权威 BibTeX,无需额外操作)
- 基于笔记正文(而非摘要),依照点评原则生成点评,并按点评模版返回点评
范围控制:仅对"要精读" 论文执行,"可跳过"不派发 subagent。
并行执行:要精读论文全部并行派发(background agents)。等待所有返回后再进入下一步。
点评模板
### {短标题}
- **Title**: {完整标题}
- **Institutes**: {institutes}
- **Source**: [link]({url}) {来源徽章:📰 HF Daily ⬆️ N / 🔥 HF Trending ⬆️ N / 📄 arXiv / 🏛 {Venue}(OpenAlex)/ 🎓 {Proc}} **📒 论文笔记**: [[{笔记文件名}]]
- **核心**: 3-5 句,核心 idea + 主要结果,避免黑话
- **锐评**: 方法有没有硬伤?claim 和证据匹配吗?跟已有工作本质区别在哪?哪些数字亮眼、哪些
暴露问题?
- **Rating**: `3` 🔥 / `2` 👀 / `1` 💤 ,{一句话理由}
点评原则
- 点评人设: 毒舌但眼光极准的 AI 论文审稿人,见多识广、对灌水零容忍的 senior researcher。
- 语气要求:毒舌、尖锐、精炼、有态度。不和稀泥,不说"总体还行"。明确判断好/坏。
- 内容具体: 夸要具体(哪个数字、哪个设计),骂要更具体(哪个假设不成立、哪个实验缺了、哪个 claim 站不住脚)
- 来源格式:
hf-daily → 📰 HF Daily ⬆️ {hf_upvotes}
hf-trending → 🔥 HF Trending ⬆️ {hf_upvotes}
arxiv → 📄 arXiv
openalex:{Venue} → 🏛 {Venue}(OpenAlex),如 🏛 IJCV(OpenAlex)
cvf:{Proc} → 🎓 {Proc},如 🎓 CVPR2026
重要‼️:Subagent prompt 必须包含以上完整的点评模板 和 点评原则,不要省略
Step 4:汇总点评 + 生成总结文件
汇总论文点评,生成总结文件,保存到 Workbench/daily/YYYY-MM-DD.md(日期为目标日期)。若文件已存在,覆盖写入。
写入后执行 YAML 前置校验:检查 frontmatter 中含冒号的字段值是否已加双引号,若未加则立即用 Edit 修复。
总结文件模版:
---
date: YYYY-MM-DD
tags: [daily-papers, tag1, tag2, ...]
---
# 🔪 今日总结
{2-3句总结}
## 评分表
| Rating | 论文 |
|--------|------|
| 🔥 `3 - Foundation` | [[#{短标题}]](理由)· [[#{短标题}]](理由) |
| 👀 `2 - Frontier` | [[#{短标题}]](理由)· ... |
| 💤 `1 - Archived` | [[#{短标题}]](理由) |
## 论文点评
{按评分表顺序,原样拼接 Step 3 返回的各单篇点评块}
## 已跳过论文
| 论文 | 跳过原因 |
|------|----------|
| ... | ... |
## 公众号动态
<仅在 Step 1.5 有相关候选时保留本节;无则整节省略>
| 公众号 | 标题 | 一句话 / 已入队论文 |
|--------|------|--------------------|
| {source} | [{标题}]({link}) | {动态摘要,或"→ 已入队 arXiv:xxxx 待 digest"} |
Tag 选择:阅读 vault 目录下的 {vault_root}/references/tags.md,按照规范选择 tag。
Step 5:追加工作日志
将以下格式的 log entry 追加到 Workbench/logs/YYYY-MM-DD.md(日期为今天):
### [HH:MM] daily-papers
- **input**: {DAYS} 天
- **output**: [[Workbench/daily/YYYY-MM-DD]]
- **observation**: 抓取 K 篇,精读 N 篇(rating 3: X / 2: Y / 1: Z),跳过 M 篇
若日志文件不存在,先创建文件(包含一级标题 # YYYY-MM-DD),再追加 entry。
告知用户:抓取 K 篇,精读 N 篇(rating 3: X / 2: Y / 1: Z),跳过 M 篇
Verify