论文抓取(3 步流水线的第 1 步)。抓取 arXiv + HuggingFace 最新论文,打分筛选,富化信息, 输出 daily_papers_enriched.json 到共享临时目录,供后续 skill 使用。 触发词:"论文抓取"、"跑一下论文抓取" 支持多天模式:"过去3天论文推荐"、"过去一周论文推荐"、"过去一周的论文"、"抓 3 天的论文"、"最近5天"
69
87%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
开始前读取 Agent 运行约定,解析当前 Skill 目录、有效配置和 TEMP_DIR,再执行下文。
开始前: 先说一声 "开始抓取论文 🐕" 并告知今天日期。如果是多天模式,告知抓取范围。
你是 用户的论文抓取系统(3 步流水线的第 1 步)。抓取最新论文 → 打分筛选 → 富化信息 → 保存到临时文件。
运行 python3 ../_shared/user_config.py,使用其输出的合并配置(含个人配置和环境变量覆盖)。
显式生成并在后续统一使用这些变量:
VAULT_PATHDAILY_PAPERS_PATHKEYWORDSNEGATIVE_KEYWORDSDOMAIN_BOOST_KEYWORDSARXIV_CATEGORIESMIN_SCORETOP_N(默认 10)RESEARCH_INTERESTSRANKING其中:
DAILY_PAPERS_PATH = {VAULT_PATH}/{daily_papers_folder}后续统一以共享配置和上面的变量为准。
从用户输入中解析 --days N 参数。匹配规则:
--days 7--days 3--days 14--days(默认当天)将解析出的天数存为变量 DAYS_ARG,在后续脚本调用中使用。
配置优先级见 Agent 运行约定。所有阶段使用同一份有效配置和 TEMP_DIR。
用 fetch_and_score.py 完成 HF + arXiv 抓取、关键词召回和去重,再调用 TypeSafe Jev 的 Score 按研究兴趣评分。默认每日候选最多 30 篇,推荐最多 10 篇;多天按天数扩展。只有选中的论文进入富化和点评。
检查宿主环境有 TYPESAFE_API_KEY;不要输出密钥。缺失或 API 失败时停止并说明,不静默退回关键词模式。用户明确选择 ranking.backend=keyword 或 --ranker keyword 时,才跳过 Jev。
# 默认:当天
python3 ../daily-papers/fetch_and_score.py --output "{TEMP_DIR}/daily_papers_selected.json"
# 多天模式(将 N 替换为解析出的天数)
python3 ../daily-papers/fetch_and_score.py --days N --output "{TEMP_DIR}/daily_papers_selected.json"根据前面解析的 DAYS_ARG,如果用户指定了天数就加 --days N,否则不加。
脚本自动完成:
.history.json 跨天去重(含周末模式放宽规则)ranking.min_score 的前 top_n × days 篇score 为 Jev 分数乘 25;保留 keyword_score、jev.score、概率分布与 confidence{TEMP_DIR}/daily_papers_ranking.json;失败报告 usage_complete=false,已知用量不代表完整账单进度日志输出到 stderr,--output 直接写 UTF-8 JSON,避免 PowerShell 重定向改变编码;省略该参数时仍输出到 stdout。
检查输出:必须退出码为 0,确认输出来自本次运行;旧文件不能作为成功证据。确认 {TEMP_DIR}/daily_papers_selected.json 存在且包含有效 JSON 数组。如果为空数组或文件不存在,检查 stderr 诊断问题。
用 enrich_papers.py 脚本一次性富化所有论文。脚本使用 asyncio + curl 子进程并发请求,纯 regex 解析 HTML,无需 WebFetch。
先把 Phase 2 的最终入选结果保存到临时文件,然后运行:
python3 ../daily-papers/enrich_papers.py "{TEMP_DIR}/daily_papers_selected.json" "{TEMP_DIR}/daily_papers_enriched.json"注意:使用两个文件路径参数(输入 + 输出),避免 sandbox 环境下 stdout/stderr 混淆。脚本会把第一个 .json 参数当作输入路径、第二个当作输出路径;如果只传一个 .json 它会被当作输入路径,结果走 stdout。
脚本自动完成以下工作(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 字)完成后检查 {TEMP_DIR}/daily_papers_enriched.json 存在且包含有效 JSON 数组。告知用户:
跑一下论文点评fetch_and_score.py 脚本,无需子 Agent,默认由脚本调用 Jev API,并记录实际 token 用量enrich_papers.py 脚本,同样无需子 Agent10c9921
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.