中文 | English
CAPR 是一个用 Codex 自动化完成每日论文候选检索、语义筛选和学术日报生成的轻量级工作流。
它把任务拆成两个层次:
paper-daily脚本只负责从 arXiv / OpenReview / 可选 OpenAlex 抓取候选论文、统一元数据、去重和粗排序。- Codex 作为科研助理读取候选池,逐篇语义评分,选择高价值论文,并撰写最终 Markdown 日报。
核心原则:脚本只提供候选池和可解释的检索线索,最终推荐与总结由 Codex 完成。
- 2026-05-19 ✨ 新增 Hugging Face Daily Papers 抓取源,并默认启用,适合跟踪 agent、world model、统一模型、图像/视频生成等热门方向。
- 2026-05-19 🔗 新增 Notion 上传脚本:Codex 写完 Markdown 日报后,可上传为 Notion page/database item。
- 2026-05-18 ✨ 新增 OpenAlex 抓取源:可与 arXiv / OpenReview / Hugging Face 并列参与候选池构建,但在默认配置中保持关闭,避免改变日常主流程。
- 2026-05-18 ⚙️ 修复 arXiv 日报抓取逻辑:HTML recent-list 公告日期优先;无新批次或候选池重复时输出说明简报,不再复用旧批次。
- 从 arXiv、OpenReview 和 Hugging Face Daily Papers 抓取近期论文候选,并提供默认关闭的 OpenAlex 可选抓取源。
- 支持通过
--sources选择信息源,例如只看huggingface或组合huggingface,arxiv,openreview。 - 将不同来源论文统一为一致的 JSON schema。
- 基于 source ID 和标准化标题去重。
- 用透明的规则分数提供候选粗排线索。
- 在抓取前做网络预检,避免网络/代理错误被误写为空候选池。
- 默认绕过某些自动化环境中的失效代理变量。
- 当 arXiv export API 限流时,自动 fallback 到 arXiv HTML recent-list 页面。
- 让 Codex 完成最终阅读、语义评分、排序和日报写作,避免关键词模板式推荐。
- 支持将已生成的 Markdown 日报上传到 Notion。
- 日报模板包含 Top 10 深度阅读、Top 11-30 快速列表,以及围绕 Agent Language、Skill/Tool、低延迟执行、本地小模型、多 Agent 协调的近期子方向聚合。
- 日报输出采用中英结合风格:中文叙述,英文保留 paper title、method、benchmark、framework 和专业术语。
Codex_Automated_Paper_Reader/
├── README.md
├── README.en.md
├── Paper_Reader.template.txt # 中文自动化 prompt 模板
├── Paper_Reader.template.en.txt # English automation prompt template
├── LICENSE
└── paper-daily/
├── config.yaml
├── requirements.txt
├── tutorial/
│ ├── daily report.png
│ └── codex automation.png
├── scripts/
│ ├── daily_papers.py
│ ├── fetch_arxiv.py
│ ├── fetch_huggingface.py
│ ├── fetch_openalex.py
│ ├── fetch_openreview.py
│ ├── rank_papers.py
│ ├── upload_notion.py
│ └── utils.py
└── tests/
以下运行产物默认不会提交到 Git:
paper-daily/data/raw/
paper-daily/data/processed/
paper-daily/logs/
paper-daily/reports/
git clone https://github.com/<your-user>/Codex_Automated_Paper_Reader.git
cd Codex_Automated_Paper_Reader/paper-daily推荐 Python 3.10+。本仓库已提供 pyproject.toml,推荐用 uv:
cd paper-daily
UV_CACHE_DIR=.uv-cache uv sync --dev也可以继续使用传统 venv:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtUV_CACHE_DIR=.uv-cache uv run python scripts/daily_papers.py --config config.yaml --date today --stage fetch --force输出文件:
data/raw/YYYY-MM-DD.json
data/processed/YYYY-MM-DD_candidates.json
logs/YYYY-MM-DD.log
注意:这一步只生成候选池,不生成最终日报。
data/raw/YYYY-MM-DD.json 会包含 duplicate_check。如果状态是
duplicate_of_previous,对应的 recommended_action 会是
write_no_new_batch_note,说明当天候选池与最近一次候选池完全相同;Codex 应写一段
“今日无新候选批次”说明,而不是重复生成 Top 10 日报。
arXiv 日报优先使用 HTML recent-list 的公告日期;如果目标日期没有新公告批次,流程不会复用旧批次。
常用信息源选择:
# 只抓 Hugging Face Daily Papers
UV_CACHE_DIR=.uv-cache uv run python scripts/daily_papers.py --config config.yaml --date today --stage fetch --sources huggingface --force
# 组合 Hugging Face、arXiv、OpenReview
UV_CACHE_DIR=.uv-cache uv run python scripts/daily_papers.py --config config.yaml --date today --stage fetch --sources huggingface,arxiv,openreview --forceCAPR 推荐配合 Codex standalone automation 使用。
- 复制公开模板。中文模板是默认版本,英文模板可按需使用:
# 中文模板
cp ../Paper_Reader.template.txt ../Paper_Reader.txt
# English template
cp ../Paper_Reader.template.en.txt ../Paper_Reader.txt- 编辑本地
Paper_Reader.txt:
- 设置运行环境中的
paper-daily工作目录。 - 设置运行环境中的 Python 可执行文件。
- 填写你的研究背景、关注方向和评分偏好。
- 在 Codex 中创建定时自动化任务,例如每天早上 8:00 运行一次。
Paper_Reader.txt 默认被 .gitignore 忽略,因为它通常包含机器相关路径和私有筛选偏好。公开仓库只保留中英文模板文件。
data/processed/YYYY-MM-DD_candidates.json 中每篇论文大致包含:
{
"id": "2605.12345",
"source": "arxiv",
"title": "Paper title",
"authors": ["Author One", "Author Two"],
"abstract": "Paper abstract...",
"url": "https://arxiv.org/abs/2605.12345",
"pdf_url": "https://arxiv.org/pdf/2605.12345",
"published_at": "2026-05-15T00:00:00+00:00",
"updated_at": "2026-05-15T00:00:00+00:00",
"venue": "cs.LG",
"categories": ["cs.LG", "cs.AI"],
"keyword_score": 7.0,
"retrieval_reason": "matched method-transfer terms...",
"matched_keywords": ["uncertainty estimation"],
"negative_matches": [],
"coarse_retrieval_score": 8.0
}keyword_score 和 coarse_retrieval_score 只是粗筛线索,不是最终推荐依据。
抓取完成后,Codex 应该:
- 读取
data/processed/YYYY-MM-DD_candidates.json。 - 围绕方法相关性、启发价值、可迁移性、论文质量、新颖性和可操作性逐篇评分。
- 保存评分到
data/processed/YYYY-MM-DD_scored.json。 - 对高分候选进一步打开网页或 PDF 阅读。
- 写入最终报告
reports/YYYY-MM-DD.md。 - 明确说明每篇总结是基于 abstract-only、paper page 还是 PDF 阅读。
编辑 paper-daily/config.yaml 可调整:
- 研究画像
- 正向/负向关键词
- arXiv 分类
- Hugging Face Daily Papers 是否启用、详情页抓取数量
- OpenReview venue
- 候选数量上限
- arXiv retry 和 HTML fallback 行为
- 输出目录
有些自动化环境会注入不可用的代理变量。
CAPR 默认会在论文源请求中忽略环境代理,避免误判网络失败。如果你确实需要使用系统代理,可以设置:
PAPER_DAILY_USE_ENV_PROXY=1如果你用 Codex automation,推荐直接使用 Codex 的 Notion connector,不需要
NOTION_TOKEN。自动化 prompt 会在写完 reports/YYYY-MM-DD.md 后,让 Codex
通过 connector 在目标 Notion page/database 中创建页面。默认目标已经配置为:
Daily Paper。
token 方式只是纯命令行 fallback。只有在没有 Notion connector 时,才需要先在
paper-daily/config.yaml 中配置:
notion:
enabled: true
token_fallback_enabled: true
token_env: NOTION_TOKEN
database_id: "<your_database_id>"
# 或 parent_page_id: "<your_page_id>"然后设置 token 并上传:
export NOTION_TOKEN=secret_xxx
UV_CACHE_DIR=.uv-cache uv run python scripts/upload_notion.py --config config.yaml --date today也可以通过主脚本阶段调用:
UV_CACHE_DIR=.uv-cache uv run python scripts/daily_papers.py --config config.yaml --date today --stage upload-notion在 paper-daily 目录运行:
UV_CACHE_DIR=.uv-cache uv run pytest testsCAPR 目前是一个早期科研自动化工具。当前重点是提升候选检索可靠性、保持推荐过程透明,并让最终文献日报由 Codex 阅读候选后生成,而不是由固定关键词模板生成。
本项目采用 MIT License,详见 LICENSE。

