之前帮一位研究生改论文时遇到过非常典型的情况:AI 生成的引言段落读起来很流畅,背景交代、研究缺口、本文贡献一应俱全,但参考文献一查,好几篇是根本不存在的“幻觉文献”。这些假文献标题仿真、期刊仿真、年份合理,甚至还带 DOI,不逐条核验根本发现不了。
问题不在于 AI 不能写引言,而在于写引言时用什么文献做依据、产出后怎么核验。如果直接把文献库交给 AI,让它在真实资料上生成,再通过 MCP 串联本地 Zotero 和 Markdown 写作流,产出的引言不仅质量稳定,还能绕开假文献这个核心坑。这套方法我实践了挺长时间,下面把完整的 4 步工作流、5 套学科指令模板和排错方法整理出来。
如果你是正在写开题报告、期刊论文或毕业论文,并且希望用 AI 提效的同时守住学术规范的底线,这篇内容可以直接照着做。
1. 为什么 AI 生成的引言容易带假文献
1.1 “幻觉文献”是怎么产生的
大语言模型本质上是根据上下文预测下一个 token。它没有数据库访问能力,也不具备“查询真实文献”的内置路径。当模型被问到“相关研究有哪些”时,它会从训练参数中“回忆”看起来合理的标题、作者和期刊。如果训练语料里根本没有这篇论文,模型会自然拼凑出一个结构与真实论文高度相似的条目。
这类假文献有两个隐蔽特点。
第一,格式极为规范。作者、期刊、年份、卷期、页码、DOI 一应俱全,一眼看上去很正规。第二,内容与上下文契合。模型会围绕引言的论述点生成“恰好相关”的文献,让作者在阅读时容易默认接受。
1.2 只靠提示词禁止编文献,效果有限
在提示词里写“不要编造文献”“只使用我给你提供的文献”,确实能降低幻觉率,但做不到完全消除。原因在于大语言模型的解码机制无法从底层保证事实性引用,提示词只是“软约束”,不是“硬机制”。
真正有效的防假文献方案,需要从两个层面入手:
- 输入侧:只让 AI 基于你提供的真实文献来写,AI 没有机会自由发挥。
- 输出侧:对 AI 生成的每一条引用做自动或人工核验,确保条目真实存在。
这也是为什么单纯的“对话式写作”不适合论文引言,而“文献库 + MCP + 引用核验”的工作流更可靠。
1.3 解决思路:让 AI 在真实文献库的约束下写作
这套方案的核心理念是把文献库作为 AI 的唯一引用来源。本地 Zotero 收集的是经过你筛选的真实文献;通过 MCP 协议,AI 可以在执行写作任务时直接查询本地 Zotero 库中的条目、PDF 和笔记,并把它们作为引用依据。AI 不再从自己的参数里“回想文献”,而是从你的库里“检索文献”。
这就相当于把写作的“素材池”限制在可控范围内。再加上产后的引用核验步骤,基本可以杜绝假文献混入正文。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 推荐工作流:Markdown + Zotero MCP + 引用核验
2.1 整体架构
把完整工作流拆成四个部分:
| 环节 | 工具 | 职责 |
|---|---|---|
| 写作环境 | 本地 Markdown 编辑器 | 以纯文本方式撰写草稿,便于版本管理与格式转换 |
| 文献底座 | Zotero | 管理真实文献条目、附件、笔记与引用元数据 |
| 桥梁 | Zotero MCP Server | 让 AI 能读取本地 Zotero 库中的文献信息 |
| 质量闸门 | 人工核验 + Crossref API | 逐条确认参考文献真实存在、格式正确 |
2.2 为什么用 Markdown 写引言
很多人习惯直接在 Word 里让 AI 生成内容,但 Word 的修订、样式和排版会干扰 AI 输出检查。Markdown 有几个明显优势:
- 纯文本,没有隐藏格式问题,AI 生成结果可以直接贴入。
- 支持 LaTeX 数学公式,理工科引言涉及公式术语时不会乱码。
- 适合 Git 版本管理,可以对比不同版本的引言草稿。
- 配合 Pandoc 可一键转 Word,最终排版不影响。
本地 Markdown 编辑器可以选择 Typora、Obsidian 或 VS Code + Markdown 插件,完全按个人习惯决定。
2.3 Zotero MCP 在流程里的作用
MCP 的全称是 Model Context Protocol,也就是模型上下文协议。它定义了 AI 客户端与外部工具之间的通信方式。Zotero MCP Server 的作用是:把 AI 会话连接到你的 Zotero 文献库,让 AI 可以搜索条目、读取文献元数据、获取 PDF 中的文本内容。
配置完成后,AI 在写引言时可以主动查询你的 Zotero 库:
- “帮我搜索主题为 graph neural network 的文献”
- “读取这篇 PDF 的第一页摘要”
- “列出我最近添加到某个分类的 10 条文献”
AI 拿到这些真实条目之后,再撰写引言的“研究背景”和“相关工作”部分,参考文献就变成了库里真实存在的条目,而不是凭空生成。
2.4 4 步流程总览
| 步骤 | 操作 | 产出 |
|---|---|---|
| 第 1 步 | 建立论文专属文献集,准备文献清单 | 真实文献列表 |
| 第 2 步 | 配置 Zotero MCP,并调试 AI 客户端连接 | AI 可访问本地文献库 |
| 第 3 步 | 套用学科指令模板,让 AI 生成带引用的引言初稿 | 引言初稿 Markdown |
| 第 4 步 | 手工核验所有引用,使用 Crossref 查 DOI,再转 Word | 可提交的引言定稿 |
3. 环境准备与工具链搭建
3.1 本地 Markdown 写作环境
推荐使用 VS Code 搭配 Markdown All in One 插件,或直接使用 Obsidian。两者的 Markdown 语法基本兼容,Obsidian 还能直接管理文献笔记的双链关系。
下面是一个适合论文引言的本地目录结构示例:
text复制paper-draft/
├── 01-introduction.md
├── 02-related-work.md
├── 03-method.md
├── references/
│ └── my-literature-notes.md
└── exports/
└── pandoc-output.docx
01-introduction.md 是本次主要产出文件。my-literature-notes.md 可以整理每篇文献的核心观点,后续 AI 生成时会用到。
3.2 Zotero 安装与文献库准备
Zotero 的安装不是难点,重点是如何让 AI 用上你的库。安装并登录 Zotero 后,建议完成以下准备工作:
- 建立本文对应的分类文件夹,例如“2025 论文引言文献”。
- 把核心文献拖入分类,并利用 Zotero 的“查找可用的 PDF”功能补全附件。
- 给每条文献补充标签,例如
graph-neural-network、recommendation-system,方便 MCP 检索。 - 保持数据库同步状态正常。如果使用 Zotero 官方同步,登录后等待数据库同步完成再继续。
3.3 Zotero Library ID 与 API Key
Zotero 提供官方 Web API,大多数 MCP 实现依赖这个 API 读取文献条目。需要两个关键参数:
- Library ID:登录 zotero.org 后,在用户主页的 URL 中可以看到,例如
https://www.zotero.org/users/123456,这里的123456就是 Library ID。 - API Key:在 zotero.org 的 Settings -> API Keys 页面创建。创建时建议勾选 “Allow library access” 权限,否则 MCP 只能访问公开分组,无法读取私有条目。
API Key 的格式一般是 123456_AbCdEf...,创建后复制保存,后续配置需要使用。
3.4 配置 Zotero MCP Server
在社区中搜索 “zotero mcp” 可以找到多个活跃实现,常见的一种是通过 npx 启动的 MCP Server。这里以支持 MCP 的客户端为例给出通用配置格式,具体包名和参数请以你找的开源项目 README 为准。
在客户端的 MCP 配置文件(如 claude_desktop_config.json 或 mcp.json)中添加:
json复制{
"mcpServers": {
"zotero": {
"command": "npx",
"args": ["-y", "zotero-mcp-server"],
"env": {
"ZOTERO_API_KEY": "123456_xxxxxxxxxxxx",
"ZOTERO_LIBRARY_ID": "123456",
"ZOTERO_LOCAL_PATH": "/Users/你的用户名/Zotero/storage"
}
}
}
}
参数说明:
| 参数 | 含义 |
|---|---|
ZOTERO_API_KEY |
上一节创建的 API Key |
ZOTERO_LIBRARY_ID |
Zotero 用户 ID |
ZOTERO_LOCAL_PATH |
本地 Zotero storage 目录路径,用于读取 PDF 附件 |
Windows 下本地路径示例:C:\\Users\\你的用户名\\Zotero\\storage。注意反斜杠需要转义。
3.5 验证 MCP 连接
配置完成后,重启客户端,在与 AI 的对话中发送:
text复制请查看我的 Zotero 文献库,找出最近添加的 5 条文献,并以列表形式返回标题和作者。
如果 AI 能正常返回真实库中的条目,说明 MCP 连接成功。这一步是整个工作流的“地基”,务必先确认通畅再继续写作。
4. 核心实操:用 Zotero MCP 生成带真实引用的引言初稿
4.1 建立论文专属文献集
进入 Zotero,创建分类 2025 引言写作,把选题相关的核心文献都拖进去。标准是:你希望 AI 的引言基于哪些文献写,就把哪些文献放进来。
这个步骤非常重要。AI 只会从可控的资料池里取用信息,所以资料池的质量直接决定引言质量。建议放 8 到 15 篇核心文献,范围包括:
- 2 到 3 篇领域内综述性文献,用于交代研究背景。
- 3 到 5 篇直接相关的最新论文,用于指出研究现状。
- 2 到 3 篇经典工作,用于抛出“已有研究的基础”。
- 1 到 2 篇与你研究方法最接近的论文,用于引出本文思路。
4.2 让 AI 从 Zotero 库中检索文献
在 MCP 连接成功后,先让 AI 从库里收集写作素材,而不是直接让它开写。一个推荐的检索提示语如下:
text复制请在我的 Zotero 库中搜索与以下主题相关的文献:xxx。
搜索到后,对每篇文献给出:
1. 标题
2. 作者
3. 发表年份
4. 期刊或会议名称
5. 一句话概括其核心贡献
6. 与“xxx”这个研究点的关联
请输出为 Markdown 列表。
AI 会调用 Zotero MCP 工具搜索本地库,并返回真实条目。如果你发现搜索结果不完整,可以继续追问:“再搜索关键词 yyy,看看有没有补充的文献。”
4.3 导出文献清单,供 AI 精确引用
为了进一步降低幻觉概率,可以在 Zotero 中右键选中文献集,选择“导出”,格式选择“CSL JSON”或“Better BibTeX 的 BibTeX 格式”,得到一份纯文本的文献清单。
然后把它作为上下文提供给 AI,作为写引言的“白名单”:
text复制下面是我整理的文献白名单,你只能基于这些文献写引用,不能新增任何文献。
[粘贴导出的文献清单]
这样可以实现“双保险”:AI 既可以通过 MCP 查询库,也可以直接参考你给出的格式化清单,两条路径都指向真实文献。
4.4 生成引言初稿
当素材准备完毕,就进入写作环节。结合“白名单 + 学科指令模板”,让 AI 按以下流程生成:
- 先输出引言框架,即背景、缺口、动机、贡献、结构,供你确认。
- 确认框架后,再输出完整引言正文。
- 引用格式使用
[作者, 年份]这种居中占位符,方便后续统一替换。
例如:
text复制请基于上面的文献白名单,撰写一段学术论文引言。
要求:
- 逻辑顺序:研究背景 -> 研究不足 -> 本文动机 -> 本文贡献 -> 论文结构
- 在合适位置插入引用占位符,格式为 [作者, 年份]
- 只能使用白名单中的文献
- 语言风格:专业、简洁、不夸张
- 输出格式:Markdown
4.5 引入 Zotero 条目验证引用
生成完初稿后,还有一个关键动作:让 AI 把每个引用占位符对应到 Zotero 库里的实际条目。
text复制请把引言中的所有 [作者, 年份] 引用,逐个在 Zotero 库中查找对应条目。
对每条引用给出:
- 在 Zotero 库中是否找到
- 匹配的条目标题
- 条目中的 DOI(如果有)
如果没有在库中精确匹配到的引用,请明确标记“未匹配”。
这一步会在提交前暴露潜在的“AI 幻觉引用”。如果 AI 在生成过程中自行添加了白名单外的文献,这一轮就会现出原形。
5. 五套学科引言指令模板
不同学科的引言写法差异很大。下面给出 5 套可直接使用的指令模板,把各学科的写作重点和引用习惯都考虑进去。
5.1 理工科 / 计算机科学类
适用于计算机、自动化、电子、通信等以方法创新为主的论文。
text复制你是一位资深的计算机科学领域研究者,正在撰写一篇关于“xxx”的学术论文引言。
现有材料:
1. 文献白名单:[粘贴文献]
2. 论文的核心方法:xxx
3. 主要实验场景:xxx
请按以下结构写引言:
1. 领域背景与应用需求
2. 现有方法及其局限性(引用白名单文献指出不足)
3. 本文提出的方法与核心改进点
4. 实验验证概况与主要结果
5. 本文贡献列表(3-5 条)
约束:
- 引用必须来自文献白名单
- 不要在背景部分堆砌技术名词
- 每条贡献用一句话说明,避免空话
- 使用 Markdown 输出
5.2 医学与生命科学类
医学论文引言强调“临床问题或科学问题”的引入,以及现有治疗的不足。
text复制你是一位医学科研工作者,正在撰写关于“xxx”的研究引言。
现有材料:
1. 文献白名单:[粘贴文献]
2. 研究背景描述:xxx
3. 研究对象与方法:xxx
请按以下结构写引言:
1. 疾病的负担或生物学问题的背景
2. 现有诊断/治疗/研究手段的进展
3. 现有手段无法解决的关键问题
4. 本研究的科学假设与目的
5. 研究设计概述与意义
约束:
- 引用必须来自文献白名单
- 医学描述必须客观,不使用夸张的治愈性表述
- 对不确定的病理机制使用“可能”“提示”等谨慎措辞
- 输出 Markdown 格式
5.3 社会科学类
适用于社会学、教育学、传播学、政治学等。
text复制你是一位社会科学研究者,正在撰写关于“xxx”的论文引言。
现有材料:
1. 文献白名单:[粘贴文献]
2. 研究问题:xxx
3. 理论视角:xxx
4. 研究对象与资料:xxx
请按以下结构写引言:
1. 研究问题的现实背景与社会意义
2. 已有研究的视角与发现
3. 已有研究的局限或争议
4. 本文的理论视角与研究问题
5. 研究价值与文章结构
约束:
- 引用必须来自文献白名单
- 对已有研究保持客观中性的评述
- 理论术语的使用要准确,不模糊概念
- 输出 Markdown 格式
5.4 经济管理类
经济管理类论文重点关注研究场景的冲突、机制分析和政策含义。
text复制你是一位经济管理领域的研究者,正在撰写关于“xxx”的论文引言。
现有材料:
1. 文献白名单:[粘贴文献]
2. 研究背景:xxx
3. 研究数据与样本:xxx
4. 主要发现:xxx
请按以下结构写引言:
1. 现实经济/管理现象与问题
2. 现有文献的研究角度与结论
3. 有待解决的机制或实证问题
4. 本文使用的数据、方法以及主要发现
5. 边际贡献与政策/实践启示
约束:
- 引用必须来自文献白名单
- 不要夸大研究结论的解释范围
- 因果表述必须与实证设计对应
- 输出 Markdown 格式
5.5 人文艺术类
适用于文学、历史、哲学、艺术学等思辨性较强的学科。
text复制你是一位人文艺术领域的研究者,正在撰写关于“xxx”的论文引言。
现有材料:
1. 文献白名单:[粘贴文献]
2. 研究对象:xxx
3. 研究视角:xxx
请按以下结构写引言:
1. 研究对象的历史或文化语境
2. 已有研究的主要观点与路径
3. 已有研究的盲点或可推进的空间
4. 本文切入角度与核心论点
5. 本文的论述思路与章节安排
约束:
- 引用必须来自文献白名单
- 不要过度使用抽象概念,每个概念尽量放入具体语境
- 语言可以体现学术性,但保持可读性
- 输出 Markdown 格式
使用这些模板时,注意把 xxx 替换成你自己的内容,把文献白名单替换成上一步导出的真实清单,再发给 AI。
6. 引用核验:把 AI 生成的引言从“像真的”变成“是真的”
6.1 用 Crossref API 批量验证 DOI
拿到 AI 生成的带引用 Markdown 后,第一件要做的事是提取所有 DOI,然后批量请求 Crossref 验证。
Crossref 是学术 DOI 的官方注册机构之一,提供公开查询 API。可以直接在浏览器中请求:
text复制https://api.crossref.org/works/10.1109/TMI.2023.123456
返回 JSON 中的 status: "ok" 表示 DOI 存在,返回 404 表示查无此文。
手动逐条查询比较慢,建议写一个简单的 Python 脚本批量验证。下面是一个基础脚本,可以直接复制使用。
python复制# 文件路径:check_dois.py
import requests
import time
dois = [
"10.1109/TMI.2023.123456",
"10.1038/nature14539",
]
headers = {
"User-Agent": "ReferenceChecker/1.0 (mailto:your_email@example.com)"
}
for doi in dois:
try:
r = requests.get(
f"https://api.crossref.org/works/{doi}",
headers=headers,
timeout=10,
)
if r.status_code == 200:
data = r.json().get("message", {})
title = data.get("title", ["无标题"])
container = data.get("container-title", ["无期刊"])
print(f"[有效] {doi}\n 标题: {title[0]}\n 来源: {container[0]}")
else:
print(f"[无效] {doi} -> HTTP {r.status_code}")
except Exception as e:
print(f"[错误] {doi} -> {e}")
time.sleep(1) # 避免请求过快
运行方式:
bash复制python check_dois.py
注意:脚本中的 DOIs 列表需要替换成引言中实际出现的 DOI。如果某条文献没有 DOI,脚本会跳不过去,那就需要走人工核验。
6.2 在 Zotero 中反向核对
另一种核验方式是把 AI 生成的所有参考文献条目,反向在 Zotero 中搜索一遍。
操作方法:
- 在 Zotero 中使用快速搜索,输入文献标题中的核心词。
- 确认条目确实存在于你的库里。
- 如果条目不存在,则到数据库官网或者 Google Scholar 检索,确认真实存在后再手动添加到 Zotero。
- 对于无法查实来源的条目,无论格式多么规范,都建议直接删除。
6.3 用 Pandoc 把 Markdown 转成 Word 并进行标准引用
核验通过后,最后一步是把 Markdown 转成可编辑的 Word 文档。
安装 Pandoc 后,使用命令:
bash复制pandoc 01-introduction.md -o 01-introduction.docx --reference-doc=reference.docx
其中 reference.docx 是你提前准备的标准 Word 样式模板。如果不指定模板,Pandoc 会使用默认样式。
如果你使用 Zotero 的 Word 插件,也可以先把引言正文复制到 Word,再通过 Zotero 的“Add/Edit Citation”功能重新插入标准文献引用。这种方式可以无缝衔接 Zotero 的文献格式体系。
7. 常见问题与排查思路
7.1 AI 仍然生成白名单外的文献
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 引言里出现白名单以外的作者 | 提示词没有强调“只能使用白名单” | 在指令中增加“新增引用将被视为错误”的硬约束 |
| 引用格式与占位符不一致 | 模型对自定义占位符理解不充分 | 先让 AI 只输出占位符框架,再填充内容 |
| 同一文献被多次重复引用 | 白名单中文献相似度较高 | 在指令中要求“同一文献最多引用 2 次” |
7.2 Zotero MCP 连接失败
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| AI 报 “Zotero MCP tools not found” | MCP Server 未正常启动 | 检查配置文件中 command 与 args 是否正确 |
| 搜索不到文献条目 | API Key 没有开启读取权限 | 到 zotero.org Settings -> API Keys 重新创建 Key,勾选读取权限 |
| 只能访问公开分组 | Library ID 填写错误 | 确认 Library ID 是个人用户 ID 而不是分组 ID |
| Windows 下 PDF 路径读取不到 | 反斜杠未转义 | 使用双反斜杠 C:\\Users\\... 或正斜杠 C:/Users/... |
7.3 生成内容学术味不足,偏口语化
这是提示词的问题。在指令模板中增加一条风格约束即可:
text复制请使用学术论文的语言风格,避免以下口语化表达:
- “大家都知道”
- “相当有意思”
- “特别重要”
- “其实”
如果效果还不够,可以加入一句“模仿顶级期刊引言的行文风格,但不要抄袭任何特定文章”。
7.4 引用格式不统一
AI 生成的占位符可能是 [张三, 2020],也可能是 [Zhang et al., 2020]。建议在指令中明确指定格式:
text复制所有引用统一使用 [第一作者姓氏, 年份] 格式。中文文献使用中文作者名,英文文献使用英文姓氏。
后续再将 Markdown 导入 Word 时,利用 Zotero 引用功能重新按标准格式生成,可以解决最终标号问题。
7.5 Pandoc 转 Word 后公式错乱
如果引言中包含 LaTeX 公式,需要使用带 --mathml 的方式转换:
bash复制pandoc 01-introduction.md -o 01-introduction.docx --mathml
部分旧版 Word 对 MathML 支持有限,这时可以在转换前把公式截图或使用 Office 自带公式编辑器重新录入。
8. 最佳实践:让“AI 写引言”稳定进入日常科研流程
8.1 把文献库当成项目资产来管理
不要临时把一批 PDF 塞进 Zotero 就开始写。建议按研究主题建立长期维护的文献集,每篇文献添加标签、笔记和关键词。这样每次写新论文时,AI 都能通过 MCP 快速找到真正相关的文献。
8.2 提示词里设计“防幻觉”机制
在指令模板里加入两条硬规则,可以显著降低假文献风险:
text复制1. 所有引用必须出现在上述文献白名单中。
2. 如果文献白名单不足以支撑某个论断,请直接说明“缺少文献”,不要自行补充。
第二条尤其重要。它允许 AI 在资料不足时“承认空白”,而不是强行编造引用来填补。
8.3 善用本地知识库做第二道检索
在 Zotero 之外,可以用 Obsidian 或 VS Code + Markdown 建立自己的文献笔记库。每读一篇文献,写 3 到 5 行要点笔记。写作前把相关笔记放进 AI 上下文,AI 对文献“讲了什么”的理解会明显更准确。
8.4 注意学术伦理与版权边界
AI 生成引言可以作为草稿辅助工具,但不建议直接照搬作为最终提交内容。以下几条在科研写作中务必遵守:
- 凡是由 AI 生成的段落,最终必须经过人工重写和核对。
- 参考文献的引用位置和页码必须人工确认。
- 学术不端行为与工具无关,使用 AI 辅助写作也需要遵循期刊和学校的相关规范。
- 引用数字、统计结果、实验数据时,必须回到原始文献逐条核对。
8.5 保持 DOI 与 PDF 原文可追溯
最终提交前,给每一篇参考文献建立“可追溯链”:DOI 指向官方版本,PDF 存放于本地 Zotero。这样即使将来审稿人要求补充资料,也能快速找到来源。
实际项目中,最值得优先关注的还是引用核验环节。AI 生成效率已经足够高,真正的风险不在写不出来,而在“写得太像真的”。只要把文献入口和出口都控住,AI 写引言这件事就能从“高风险试错”变成“稳定的科研提效工具”。
下一篇可以继续聊聊如何用同样的思路写相关工作综述、方法论章节和实验对比部分,如果本文对你有帮助,可以收藏备用,也欢迎在评论区交流你遇到的假文献案例和排查心得。
