文献调研这件事,最耗时间的地方不一定是“读论文”,而是持续追踪:这一周有没有新文章?哪些值得看?哪些只是关键词碰巧命中?哪些应该下载全文?看完之后又放到哪里?
如果每周都手动做一遍,很容易变成三种情况:
- 忙的时候忘了查;
- 查到了但没整理;
- 整理了但下周找不到上次看过什么。
所以我现在把一部分文献调研做成了 Codex 自动化。它不是替代完整阅读,而是先完成“定期检索、筛选、摘要级判断、生成周报、保存到 Obsidian 和网页展示”这一套流程。
这篇主要介绍流程设计。具体 prompt 不逐字贴出来,因为实际配置里有很多路径、边界条件和失败处理,直接照抄意义不大。
我现在启用的两条自动化
目前有两条正在运行的文献追踪任务:
| 自动化 | 主题 |
|---|---|
o3-weekly | 对流层 O3 污染、防治、前体物、化学传输模型、气象影响等 |
ai-weekly | AI / 深度学习用于气象、降尺度、超分辨率、空气污染变量建模等 |
两条任务的定位不太一样。
o3-weekly 是“期刊论文摘要扫描”。它从公开索引和期刊页面里找过去 7 天新发表、online first、accepted 或新索引的论文,只基于标题、作者、期刊、日期、DOI、摘要等信息做判断,不下载全文,不做 PDF 深读。
ai-weekly 是“arXiv 新论文周报”。它只追踪过去 7 天 arXiv 新增或更新的论文。筛完之后,会对最相关的 1-3 篇尽量做正文级深读,但仍然严格限制在这 7 天窗口内,不为了凑数量去翻更早的论文。
这两个任务一个偏大气化学,一个偏 AI+ 气象降尺度,刚好覆盖我现在最需要持续跟踪的两个方向。
在测试流程时我生成了过去一年的 AI 降尺度主题报告,并且生成 HTML 版方便我查看,先给大家看下效果

如果你也觉得很酷、更有读文献的动力了,那么继续看下去吧!
自动化不是“让 AI 随便搜”
我一开始最担心的问题是:如果只是写一句“帮我找最近的文献并总结”,模型很容易做出看起来完整、实际上不可靠的结果。
所以现在的自动化不是开放式搜索,而是把流程严格限制,后续可以根据实践不断调整:
- 固定时间窗口;
- 固定主题边界;
- 固定检索源;
- 固定筛选和排除规则;
- 固定输出结构;
- 固定文件命名方式;
- 固定空窗处理;
- 固定写入 memory,方便下次接着跑。
整体流程
现在每次自动化触发后,大致会走下面这条流程:
定时触发
↓
读取上次 memory
↓
计算本次 7 天检索窗口
↓
并发检索多个来源
↓
去重、日期过滤、主题过滤
↓
候选文献打分和聚类
↓
生成 Markdown 周报
↓
转换为 HTML 展示页
↓
写入 memory,记录本次结果和下次注意事项这里的关键不是某一个工具,而是把每一步都固定下来。这样每周得到的结果才可比较,也方便发现自动化本身哪里需要改。
第一步:读取 memory
每次运行前,自动化会先读取自己的 memory。
memory 里主要记录这些内容:
- 上次检索的时间窗口;
- 上次入选了哪些 DOI 或标题;
- 哪些是噪声类别;
- 上次生成的 Markdown 和 HTML 路径;
- HTML 转换是否失败;
- 下次应该优先复核什么。
这一步的价值是避免“每周都像第一次运行”。例如上周已经入选过的论文,本周如果又被数据库更新了一次,就不能无脑重复分析;如果上次 HTML 转换失败,下次就要优先注意这部分。
第二步:固定时间窗口
两个自动化都强制使用“触发时刻往前 7 天”作为检索窗口。
我没有让它自由决定“最近”是什么意思,因为这个词太模糊了。不同数据库里的日期也不一样,有的是 online date,有的是 indexed date,有的是 updated date。
所以配置里会明确要求:
- 报告使用 Asia/Shanghai 时区的运行日;
- 文件名也使用运行日;
- 检索范围只看过去 7 天;
- 日期字段不一致时,在报告里说明采用的是哪类日期;
- 不允许私自扩大时间范围。
这一步看起来很死板,但对周报类自动化很有必要。
第三步:并发检索
不同主题用的检索源不一样。
O3 周报
O3 方向优先使用公开索引和期刊/数据库来源,例如:
- OpenAlex;
- Crossref;
- Semantic Scholar;
- Europe PMC;
- PubMed;
- 期刊 RSS 或 TOC 页面;
- 出版社开放摘要页。
这些来源覆盖不完全一致,所以不能只依赖一个数据库。多源检索后再统一去重和打分。
AI 周报
AI 方向主要盯 arXiv。
它会同时跑多组关键词,并检查相关分类最近几条更新记录,例如:
cs.LGstat.MLcs.AIphysics.ao-phphysics.geo-pheess.SPcs.CV
这些分类更新记录相当于“哨兵”。如果相关分类最近都没有新更新,那么就没必要在一堆关键词上继续耗太多时间。
第四步:过滤噪声
文献检索里最烦的是关键词误伤。
比如 O3 方向搜 ozone,很容易搜到:
- 医疗臭氧;
- 牙科治疗;
- 水处理和废水臭氧氧化;
- 材料加工;
- 臭氧层恢复;
- 传感器器件;
- 消毒灭菌。
这些文章可能也叫 ozone,但不是我关心的“对流层空气污染 O3”。
所以自动化里有一层硬过滤,先把明显不相关的主题排掉。之后再根据题名、摘要、期刊、关键词、区域、方法相关性打分。
AI 周报也类似。不是所有 machine learning + weather 的论文都值得放进来,重点还是看它是否和气象数据、降尺度、超分辨率、时空插值、偏差订正、污染物估计等主题真正相关。
第五步:打分、聚类和选文献
过滤之后,自动化不会按检索来源机械排序,而是按主题价值选文献。
O3 周报一般选 5-10 篇,按主题聚类。例如:
- O3 前体物和敏感性;
- 区域输送;
- 气象过程影响;
- 化学传输模型;
- O3 与 PM2.5 协同控制。
AI 周报一般选 3-8 篇。如果不足 3 篇,就按实际数量写;如果 0 篇,就不生成空报告。
每篇入选文献都会记录:
- 标题、作者、机构;
- 来源、DOI 或 arXiv 链接;
- 日期;
- 相关性等级;
- 主题标签;
- 主要问题;
- 方法概要;
- 关键数据或任务;
- 主要结论;
- 局限性;
- 后续可跟进方向。
这样做的目标不是把摘要翻译一遍,而是尽量回答一个更实际的问题:这篇值不值得我接下来花时间看全文?
第六步:重点文献和 hit/key 标记
每次周报生成文件名时,会带一个状态:
YYYY-MM-DD-hitN.md
YYYY-MM-DD-keyN.md其中 N 是本次入选文献数量。
hit 表示有命中文献,但没有特别需要马上关注的重点。
key 表示至少有一篇文献值得优先看。例如:
- 相关性非常高;
- 来自重要期刊;
- 方法和当前课题高度相关;
- 可能影响后续实验设计;
- 虽然只能看到摘要,但值得主动下载全文。
这个小标记很有用。之后在 Obsidian 里看文件名,就能大致知道那一周有没有重点内容。
第七步:Markdown 写入 Obsidian
自动化的第一份正式产物是 Markdown。
我把它保存到 Obsidian 文献库对应主题下,例如:
Literature/Topics/<topic>/AutoReview/周报的结构不是传统论文综述,而是更偏“快速判断”:
- 本周结论速览;
- 值得优先看;
- 文献清单;
- 核心论文分析;
- 横向主题趋势;
- 可跟进问题或实验建议;
- 检索与生成记录。
方法信息统一放在最后。这样打开文档时,先看到的是判断,而不是一大段检索说明。
另外,输出会尽量使用 Obsidian 友好的格式,例如 callout、高亮、任务标记和表格。这样后续不管是在 Obsidian 里阅读,还是转成网页,都比较舒服。
Markdown 效果如下:

第八步:转换成 HTML
Markdown 生成成功后,会再转换成 HTML。
我现在使用的是本地的 html-anything 项目,把 Markdown 转成一个更适合浏览和分享的页面。模板固定为 deck-blueprint,转换时使用 Codex agent。1
这里有一个经验:HTML 转换有时会跑几分钟,不能看到一段时间没有输出就认为卡死。后来我给转换工具加了更长的 timeout 和实时日志,方便判断到底是正常生成,还是确实失败。
如果 HTML 转换失败,规则也很明确:
- 不删除已经生成的 Markdown;
- 在自动化结果里说明 HTML 失败原因;
- 把失败情况写入 memory;
- 下次优先复核。
也就是说,Markdown 是主产物,HTML 是展示产物。展示失败不能影响原始记录。
空窗处理
我特意给自动化写了空窗规则。
如果过去 7 天内没有合适文献:
- 不创建 Markdown;
- 不转换 HTML;
- 不生成 PDF;
- 只在自动化结果中说明没有找到;
- 在 memory 里记录检索窗口、复核方式和空窗原因。
这个规则比想象中重要。很多自动化报告最大的问题就是“无论如何都要生成一份东西”。结果就是内容越来越水,后面自己也不想看。
我宁愿它告诉我“本周没有”,也不希望它为了完整性硬写一篇。
两条自动化的差异
虽然整体流程类似,但两条任务的边界不一样。
| 项目 | O3 周报 | AI 周报 |
|---|---|---|
| 数据源 | 多个公开索引、期刊页面、数据库 | arXiv |
| 阅读深度 | 摘要级,不下载全文 | 可对 1-3 篇做正文级深读 |
| 目标 | 追踪空气污染 O3 研究进展 | 追踪 AI+ 气象/污染建模新方法 |
| 输出 | 期刊论文摘要周报 | arXiv 新论文周报 |
| 风险控制 | 防止 ozone 关键词误伤 | 防止泛 AI 论文偏题 |
这种差异化很重要。不同主题不应该套同一个流程。
O3 方向更看重期刊来源、摘要判断和噪声过滤;AI 方向则更看重 arXiv 更新、方法新意和是否值得快速跟进。
它解决了什么,没解决什么
这套自动化解决的是:
- 每周定期追踪;
- 初步筛选;
- 摘要级判断;
- 重点文献提醒;
- Obsidian 存档;
- HTML 展示;
- 上下周连续记录。
它没有解决的是:
- 替你真正读完所有论文;
- 判断每个实验细节是否可靠;
- 自动复现论文方法;
- 替代系统综述;
- 替代领域专家判断。
我更愿意把它理解成“文献雷达”。它负责持续扫描,把可能有价值的东西推到面前。至于哪些要精读、哪些要复现、哪些要写进论文,还是要自己判断。
总结
文献调研自动化的重点不是让 AI 写一篇很长的综述,而是建立一个稳定流程:
- 固定主题;
- 固定时间窗口;
- 多源检索;
- 去重和过滤;
- 相关性打分;
- 输出 Obsidian 友好的 Markdown;
- 转成 HTML;
- 写入 memory,方便下次接着跑。
这套流程跑起来之后,每周至少能保证一件事:我不会完全错过自己关心方向的新文献。
它不完美,但很实用。尤其是当研究方向同时横跨大气化学、数值模式、机器学习和空气污染时,先有一个稳定的自动扫描流程,比每次临时想起来再搜要可靠得多。