论文抓取(3 步流水线的第 1 步)。抓取 arXiv + HuggingFace 最新论文,打分筛选,富化信息, 输出到 /tmp/daily_papers_enriched.json 供后续 skill 使用。 触发词:"论文抓取"、"跑一下论文抓取" 支持多天模式:"过去3天论文推荐"、"过去一周论文推荐"、"过去一周的论文"、"抓 3 天的论文"、"最近5天"
开始前: 先说一声 "开始抓取论文 🐕" 并告知今天日期。如果是多天模式,告知抓取范围。
你是 用户的论文抓取系统(3 步流水线的第 1 步)。抓取最新论文 → 打分筛选 → 富化信息 → 保存到临时文件。
先读取 ../_shared/user-config.json,如果 ../_shared/user-config.local.json 存在,再用它覆盖默认值。
显式生成并在后续统一使用这些变量:
VAULT_PATHDAILY_PAPERS_PATHKEYWORDSNEGATIVE_KEYWORDSDOMAIN_BOOST_KEYWORDSARXIV_CATEGORIESMIN_SCORETOP_N其中:
DAILY_PAPERS_PATH = {VAULT_PATH}/{daily_papers_folder}后续统一以共享配置和上面的变量为准。
从用户输入中解析 --days N 参数。匹配规则:
--days 7--days 3--days 14--days(默认当天)将解析出的天数存为变量 DAYS_ARG,在后续脚本调用中使用。
../_shared/user-config.json../_shared/user-config.local.jsonlocal 为准用 fetch_and_score.py 一步完成 HF + arXiv 抓取、打分、合并去重、历史去重、选 Top 30。零 token 消耗。
# 默认:当天
python3 ../daily-papers/fetch_and_score.py > /tmp/daily_papers_top30.json
# 多天模式(将 N 替换为解析出的天数)
python3 ../daily-papers/fetch_and_score.py --days N > /tmp/daily_papers_top30.json
根据前面解析的 DAYS_ARG,如果用户指定了天数就加 --days N,否则不加。
脚本自动完成:
.history.json 跨天去重(含周末模式放宽规则)进度日志输出到 stderr,JSON 结果输出到 stdout。
检查输出:确认 /tmp/daily_papers_top30.json 存在且包含有效 JSON 数组。如果为空数组或文件不存在,检查 stderr 诊断问题。
用 enrich_papers.py 脚本一次性富化所有论文。脚本使用 asyncio + curl 子进程并发请求,纯 regex 解析 HTML,无需 WebFetch。
先把 Phase 2 的 Top 30 结果保存到临时文件,然后运行:
cat /tmp/daily_papers_top30.json | python3 ../daily-papers/enrich_papers.py /tmp/daily_papers_enriched.json
注意:使用文件路径参数(而非 stdout 重定向),避免 sandbox 环境下 stdout/stderr 混淆。
脚本自动完成以下工作(Semaphore(10) 限制并发,单篇超时 30 秒):
pdftotext | extract_affiliations.py)<meta> 标签提取 authors/affiliations输出格式:与输入相同的 JSON 数组,每篇论文增加以下字段:
figure_url (string): 首图 URLaffiliations (string): 机构列表,逗号分隔authors (string): 作者列表(可能被更完整的来源覆盖)section_headers (array): 章节标题captions (array): 图表标题has_real_world (bool): 是否包含真实实验method_names (array): 方法名列表method_summary (string): 方法描述(300-500 字)完成后检查 /tmp/daily_papers_enriched.json 存在且包含有效 JSON 数组。告知用户:
跑一下论文点评fetch_and_score.py 脚本,不启动 Task Agent,零 token 消耗enrich_papers.py 脚本,同样不启动 Task Agent