用途:作为论文处理三步流水线的第 1 步,抓取最新论文、打分筛选、富化信息并保存为临时 JSON,供后续点评技能使用。开始前会说明“开始抓取论文 🐕”并告知日期,多天模式会说明抓取范围。
配置:先读取 ../_shared/user-config.json,若存在 ../_shared/user-config.local.json 则用其覆盖默认值。统一使用 VAULT_PATH、DAILY_PAPERS_PATH、KEYWORDS、NEGATIVE_KEYWORDS、DOMAIN_BOOST_KEYWORDS、ARXIV_CATEGORIES、MIN_SCORE、TOP_N 等变量,其中 DAILY_PAPERS_PATH = {VAULT_PATH}/{daily_papers_folder}。关键词、分类、阈值均以共享配置为准。
天数解析:从用户输入解析 --days N,如“过去一周/最近7天”为 7,“过去3天”为 3,“过去两周”为 14,未指定则默认当天。
主要能力与用法:Phase 1+2 用 fetch_and_score.py 一步完成 HF 与 arXiv 抓取、打分、合并去重、历史去重并选 Top 30,零 token 消耗。默认命令:python3 ../daily-papers/fetch_and_score.py > /tmp/daily_papers_top30.json;多天模式加 --days N。脚本并行抓取 HuggingFace Daily/Trending 与 arXiv API,按关键词打分(正向、负向、领域加分、trending 加分),按 arXiv ID 合并去重,读取 .history.json 跨天去重(含周末放宽规则),不足 20 篇时从历史回填,按 score 降序取 Top 30;日志输出到 stderr,JSON 输出到 stdout。
Phase 3 用 enrich_papers.py 批量富化:python3 ../daily-papers/enrich_papers.py /tmp/daily_papers_top30.json /tmp/daily_papers_enriched.json。脚本用 asyncio 与 curl 子进程并发请求,纯 regex 解析 HTML,Semaphore(10) 限并发、单篇超时 30 秒;并行抓取 HTML 与 PDF,提取 figure_url、authors、affiliations、section_headers、captions、has_real_world、method_names、method_summary,PDF 机构通过 pdftotext | extract_affiliations.py 提取,HTML 作者为空时回退到 abs 页面 meta 标签。合并优先级:figure_url 取 HTML curl;affiliations 为 PDF > HTML > abs fallback > Phase 1;authors 为 HTML > abs fallback > Phase 1。输出为同结构 JSON 数组并新增上述字段。
限制与注意:不启动 Task Agent,不做 git 操作,不生成推荐文件,只输出临时 JSON。脚本失败时检查 stderr;arXiv 抓取失败会自动回退到仅 HuggingFace 源;总数不足 20 篇时有多少处理多少;周末 arXiv 不更新、HF daily 基本为空,主要依赖 HF trending。完成后需确认 /tmp/daily_papers_enriched.json 为有效 JSON 数组,并告知抓取与富化篇数,提示运行下一步“跑一下论文点评”。