做科研久了会发现,真正头疼的不是找不到论文,而是论文找到了却没进入自己的知识体系:Zotero 里收藏了几百篇,真写 Introduction 时还是要重新搜索、重新打开 PDF、重新回忆。这篇文章记录我把 Zotero、Obsidian、Codex 串成一套工作流的做法。

基于 2026 年 9 月的软件版本整理(Zotero 10、新版 ChatGPT Desktop / Codex)。

一、三层架构,职责分开

Zotero   原始文献层:PDF、元数据、原文标注
Obsidian 长期知识层:经过自己加工的笔记
Codex    Agent 层:跨文件阅读、检索、比较、整理

不直接把几百篇 PDF 扔给 AI 让它"帮我总结"——对话不是文献数据库,文件过段时间就不在上下文里了,而且最后分不清哪个是原始事实、哪个是 AI 总结、哪个是自己的判断。三层各自负责不同问题,不互相替代。

二、Zotero:文献的唯一事实来源

和论文原始信息有关的一切(PDF、作者、标题、DOI、Citation Key、Collection、原文标注)都以 Zotero 为准。按项目而不是大领域建 Collection(T-norm、Time Series Forecasting、Current Paper……),一篇文章可以属于多个 Collection。Tags 只打有意义的:method、survey、dataset、baseline、important、unread。不要还没开始读论文,先花两天设计标签体系。

Zotero 已进入 10.0 系列(2026 年 8 月发布),新版 Advanced Search 和 PDF Reading Mode 都不错,第一次阅读、高亮、标注直接在 Zotero 里完成即可,"Zotero 只存 PDF、阅读去别的软件"的旧说法不必再守着。

Better BibTeX:普通 Word 用户不再是必装项,但工作环境涉及 LaTeX / Overleaf / Obsidian 自动导出 .bib 的话仍然建议装——为了拿到 KlementMesiarPap2000 这种稳定 citation key,让 Obsidian 的 [[KlementMesiarPap2000]]和 LaTeX 的 \cite{KlementMesiarPap2000} 指向同一篇论文。

三、Obsidian:只存加工过的知识

Vault 结构不必复杂:

Research-Vault/
├── 00-Inbox          临时入口,先扔进来再说
├── 01-Literature     一篇论文一份笔记,文件名 = citation key
├── 02-Concepts       按概念组织,不按论文
├── 03-Synthesis      跨论文综合
├── 04-Questions      未解决的问题
├── 05-Projects
├── 06-Research-Log   每周进展记录
├── 07-Templates
├── 08-Attachments
└── AGENTS.md

Literature Note 回答"这篇文章讲了什么",Synthesis Note 回答"这一批文章合起来告诉我什么",两者完全不是一回事。研究时真正思考的单位是概念、问题和关系,不是论文。

插件尽量少装。Bases 已经是官方 Core Plugin,配合 YAML front-matter 就能建论文数据库视图,过去要装 Dataview 的场景现在大多可以原生解决;官方 Web Clipper 也已支持把网页、高亮和结构化字段存进 Vault。原则:能原生解决的优先原生。

Zotero → Obsidian 的导入:经典路线是 Better BibTeX + Zotero Integration(成熟但较老,依赖 BBT);新方案如 Zotsidian 更年轻但未经充分测试。刚开始只求"稳定把元数据和 Annotation 导入 Markdown",不要追求完美双向同步——两边都能改就没人说了算,同步迟早出冲突。Obsidian 只读引用 Zotero,不做第二份数据库。

Literature Note 模板:

---
type: literature
citekey:
title:
authors:
year:
journal:
doi:
status: unread
topics:
---

# 论文核心问题
# 核心方法
# 主要结果
# 实验设计(数据集 / Baseline / 指标 / 划分)
# 与已有工作的区别
# 局限
# 与我的研究的关系
# 可继续追的问题
# 我的思考

最后两节必须保留。总结 2000 字却没有自己的判断,仍然只是资料搬运。

四、Codex:打开整个 Vault,写好 AGENTS.md

让 Codex 直接工作在整个 Research-Vault 目录,而不是每次上传几个文件,它才能跨文件建立关系。把长期规则写进 AGENTS.md(OpenAI 官方推荐做法),不要每次对话反复交代。我的版本:

# Research Vault Instructions

## General
This is an academic research knowledge base.
Accuracy and source traceability are more important than writing speed.

## Source rules
- Never invent references.
- Never invent DOI, authors, journal names, years, or experimental results.
- When summarizing literature, identify the source note.
- If evidence is unavailable, explicitly state that it is unavailable.
- Distinguish paper claims from my own notes and your inference.

## Zotero
Zotero is the source of truth for bibliographic metadata.
Do not directly modify Zotero database files.

## Literature notes
Files in 01-Literature represent individual papers.
Do not silently overwrite my personal comments.

## Synthesis
Files in 03-Synthesis must cite the literature notes used.

## Writing
Do not generate fake citations. Preserve LaTeX notation.
Prioritize correctness and logical continuity over stylistic rewriting.

五、五种日常用法

1. 单篇精读(任务越具体,输出越稳定):

阅读 01-Literature/xxx.md 对应的论文内容。
按以下结构整理:Research problem / Motivation / Core methodology /
Main theorem or algorithm / Experimental setup / Main results /
Limitations / Relationship with my current research。
不要只改写摘要。所有结论必须在论文中有依据,不确定的标记"未确认"。

2. 多篇比较——Codex 真正开始省时间的地方:

检查 01-Literature 中所有与 feature selection and probabilistic
regression 相关的论文,比较:feature-selection criterion / search
strategy / predictive model / uncertainty method / datasets /
metrics / limitations。
生成 03-Synthesis/Feature-selection-for-probabilistic-regression.md。
不要生成任何不存在于原始论文中的数据。

3. Literature Matrix:让 Codex 生成 | Paper | Problem | Method | Dataset | Metric | Main finding | Limitation | 表格,写入 03-Synthesis 或输出 CSV。写综述和 Related Work 时非常有用。

4. 提取概念:让它找出 Literature 中重复出现的核心概念,对照 02-Concepts 列出建议,由我决定哪些值得建长期 Concept Note。不让它见名词就自动建文件,否则几天后就是几百个没人维护的孤岛。

5. Concept → Synthesis:

读取 02-Concepts/Superadditivity.md、Copula.md 及所有引用它们的
Literature Notes,整理:研究问题如何产生 / 已有主要结果 / 文章间
的逻辑关系 / 已知反例 / 仍未解决的问题,生成一份 Synthesis Note。
不要直接写论文 Introduction。

先有结构可靠的 Synthesis,最后写正文反而是最容易的一步。

六、Zotero MCP 和 Skill

Zotero MCP 给 Codex 一个标准接口实时查文献库(搜索、读 metadata、读 PDF 全文),不用每次手动导出。定位要分清:MCP 用来查,Markdown 用来存——MCP 获取临时原始信息,加工后的长期知识仍落进 Obsidian。

Skill 是把重复出现的固定流程(论文精读、Literature Review、Citation Check、LaTeX 检查)做成可复用的工作流。优先做的几个:Paper Reader、Literature Review、Citation Verify、Academic Writing、LaTeX Check、Statistical Review、Reviewer、Revision。注意 2026 年 7 月起 OpenAI 用 Plugin Directory 统一管理这些能力(Plugin 可打包 Skills 和 Apps),不需要再像年初那样下载几十个 SKILL.md 全塞进目录。

七、自动化边界与最小可用版本

自动化原则:**机械工作自动化,学术判断保留给自己。**抽取 metadata、格式转换、生成表格、查重复条目可以自动;Novelty 是否成立、两个结果是否真的矛盾、证明是否正确、Gap 是否有价值,不交给流水线。

第一条防编造规则:**文献库里不存在的引用,不允许自动补。**不说"帮我加几篇文献",而是"指出哪些论断缺引用并给出检索关键词,不要生成参考文献",或限制它"只允许使用 Current Paper Collection 里已有的文章"。另外永远不让 Agent 直接改 zotero.sqlite,要走 API / MCP / 导出文件。

第一次搭建的最小版本:

Zotero 存论文 → Obsidian 存 Literature Note →
Codex 打开整个 Vault → AGENTS.md 约束行为 →
先跑通,几周后再按真实重复动作加 Skill,最后才考虑 MCP

八、最不推荐的八个做法

  1. 把全部 PDF 复制一份进 Obsidian;
  2. Zotero 和 Obsidian 维护两套独立 Tags;
  3. 装几十个功能重叠的插件;
  4. 让 AI 自动生成不存在的参考文献;
  5. 让 Agent 直接操作 Zotero 底层数据库;
  6. 所有名词都自动生成 Concept Note;
  7. 为了图谱好看疯狂造双链;
  8. 认为生成 3000 字总结等于读完论文。

写在最后

这套系统要解决的问题只有一句话:让研究过程中产生的信息不再丢失。文献有出处、笔记有来源、知识之间有关系、问题有来路,写出来的每一段还能回到原始证据。至于"全自动科研""一键写 SCI",反而不是重点——AI 帮你把时间从重复整理和来回查找里拿回来,这些时间用来看懂问题、想清楚问题。