Fabric `analyze_paper` 模式深度解析:用 AI 批判性审读论文的核心发现与科学质量
analyze_paper 是 Fabric 框架中面向科研论文审读的专用 pattern:它把 AI 模型塑造成一位"论文分析服务",不仅要提取论文的核心发现、作者与机构信息,还要按照一套严格的科学审读框架评估研究设计、样本量、统计指标、方法透明度和可复现性,最终输出 A–F 的综合评级。本文以 system.md 为骨架,完整还原其角色设定、输出章节规格、字数约束与评级纪律,并结合仓库内的加载机制、CLI 用法和相关模式源码,帮助你掌握一套可直接复用、结果规范统一、可在团队与个人文献管理中落地的论文质量审读工作流。
一、它是做什么的:定位与在 Fabric 生态中的归属
在 Fabric 中,每一个 pattern 都是一个独立的"AI 提示词处理器",存放在 data/patterns/<name>/ 目录下,由 system.md(模型行为指令)与可选的 user.md(补充输入说明)组成。analyze_paper 即位于 data/patterns/analyze_paper/:
- system.md:完整定义分析角色、执行步骤、输出章节、评分规则与输出格式,是整个 pattern 的主体;
- user.md:当前仓库中该文件为空,说明行为完全由 system.md 驱动,适合作为"纯系统提示词"的范例。
从模式归档看,pattern_explanations.md 对它的定位是:"Analyses research papers by summarizing findings, evaluating rigor, and assessing quality to provide insights for documentation and review",即汇总发现、评估严谨度、判断论文质量,服务于文献记录与评审。在 suggest_pattern 的推荐体系中,它同时出现在 ANALYSIS 与 RESEARCH 两类能力中,与 analyze_claims、extract_references、create_academic_paper 等形成"读论文—审证据—产出学术内容"的能力组合;web 端帮助面板(HelpModal.svelte)也把 analyze_paper 归入学术与科学内容类提示词。
仓库还提供了轻量变体 analyze_paper_simple:两者共享几乎相同的角色与 STUDY QUALITY 评估维度,差异主要在输出形态——analyze_paper 输出结构化分段报告(FINDINGS、STUDY OVERVIEW、PAPER QUALITY、FINAL SCORE 等),而 analyze_paper_simple 被压缩为一行式的 TITLE / SUMMARY / IMPLICATIONS / METHODOLOGY / REPRODUCIBILITY 等字条输出,更适合快速浏览。需要完整审读报告时用 analyze_paper,仅需速览结论时可切到 analyze_paper_simple。
二、如何运行:CLI 用法与输入输出
Fabric 的命令行核心用法是把待分析文本通过标准输入(stdin)喂给某个 pattern,例如:
# 直接分析论文文本
cat paper.txt | fabric --pattern analyze_paper
# 开启流式输出,边生成边显示
cat paper.txt | fabric --stream --pattern analyze_paper
# 保存结果到文件(配合 -o 输出参数)
cat paper.txt | fabric --pattern analyze_paper -o analysis.md
在仓库文档的长任务示例中,analyze_paper 常被用于"后台处理大文档并推送完成通知"的场景,例如 Desktop-Notifications.md 给出的命令:
# 在后台处理长文档,完成后发送桌面通知
fabric --pattern analyze_paper --notification < research-paper.pdf
需要说明的是:Fabric 的 pattern 输入本质是文本流(该例中的 PDF 需在读取链路中完成文本提取后再送入模型)。为了让分析效果最好,建议输入前将 PDF/LaTeX 源文件转换为纯文本或 Markdown,再通过 stdin 传入。
关于 pattern 与模型的选择,--pattern 可指定任意已注册 pattern;CLI 还提供 -m/--model 切换模型、--modelContextLength 调整上下文长度(仅影响 ollama)。常用配套管理命令包括:
fabric --listpatterns # 查看所有可用 pattern
fabric --updatepatterns # 从远端更新内建 patterns
Fabric 还支持为 pattern 建立 shell 别名,把 fabric --pattern analyze_paper 变成一条可直接调用的命令。README 给出的机制是为每个 pattern 生成形如 alias analyze_paper="fabric --pattern analyze_paper" 的别名;若你的 shell 是 bash/fish,仓库 completions/ 目录还提供了对应补全脚本与一键安装脚本 setup-completions.sh。别名化后你甚至可以配合输出目录参数直接落盘成带日期命名的文件(可参考 README 中 Obsidian 集成的 -o 用法)。
三、角色与工作流程:从通读到"脑内白板"
analyze_paper 的 system.md 开篇定义了 IDENTITY 与 PURPOSE:模型被设定为一项"研究论文分析服务",核心目标是确定论文的主要发现,并分析其科学严谨度与质量。为了让分析过程可复现,它要求模型遵循两步 STEPS:
- 通读整篇论文并深度思考(Consume the entire paper and think deeply about it);
- 在脑海中的虚拟白板上完整画出论文的所有主张(claims)与推论(implications)之间的关系(Map out all the claims and implications on a giant virtual whiteboard in your mind)。
这种"先建全景图、再逐项打分"的设计,目的是避免只见局部统计、不见论证链条——后文对 SAMPLE SIZE、CONFIDENCE INTERVALS 等每一项的评估,实际上都要求先放在白板上的全局主张中审视。这也与 Fabric 的提示词工程理念一致:输出质量取决于给模型的思维脚手架是否足够显式。
system.md 末尾还额外要求模型在开始分析前"深呼吸并逐步思考"(Take a deep breath and think step by step),这也是 Fabric 多数分析类模式共享的稳定化指令。
四、输出规格逐项拆解(核心章节)
analyze_paper 的输出是一份按固定章节组织的"论文审读报告"。下面按 system.md 定义的顺序逐项说明,重点是每段都带有字数上限约束,这些约束把分析结果压到高信息密度。
4.1 基础信息提取
- SUMMARY:用一句恰好 16 词的句子概括论文及其结论。16 词约束迫使模型只保留最高层级的结论;
- AUTHORS:提取作者名单;
- AUTHOR ORGANIZATIONS:提取作者所属机构(例如其所在大学)。
4.2 发现与结构
- FINDINGS:提取最令人意外、最有意思的发现,输出 10 条 bullet,每条不超过 16 词;
- STUDY OVERVIEW:用 bullet 列表描述研究的整体结构与特质,每条不超过 16 词。
两条 section 的 16 词上限意味着每条 bullet 只能保留一个核心事实,刻意限制了"罗列堆砌、信息稀释"。
4.3 STUDY QUALITY:九维科学质量审计
这是整个 pattern 最硬核的部分。它对研究质量设置了 9 个评估项,每项都要求给出约 15 词的描述,且必须包含相关数据与统计量:
| 评估项 | 要求(15 词左右,含数据与统计) |
|---|---|
| STUDY DESIGN | 描述研究设计,含相关数据与统计 |
| SAMPLE SIZE | 描述样本量,含相关数据与统计 |
| CONFIDENCE INTERVALS | 描述置信区间,含相关数据与统计 |
| P-VALUE | 描述 p 值,含相关数据与统计 |
| EFFECT SIZE | 描述效应量,含相关数据与统计 |
| CONSISTENCE OF RESULTS | 描述结果一致性,含相关数据与统计 |
| METHODOLOGY TRANSPARENCY | 评估方法论质量与文档化程度 |
| STUDY REPRODUCIBILITY | 描述如何完整复现该研究 |
| Data Analysis Method | 描述数据分析方法,含相关数据与统计 |
注意这 9 项中反复出现的限定词"including the pertinent data and statistics"——它强制模型不允许只写"样本量合适"这种空话,必须落到具体数字。这也正是 analyze_paper 与其他泛泛总结类提示词的本质区别:它做的是对证据的审计而非复述。
4.4 CONFLICTS OF INTEREST
在 CONFLICTS OF INTEREST 章节讨论论文中的任何利益冲突,并将其评级为五档之一:NONE DETECTED / LOW / MEDIUM / HIGH / CRITICAL。利益冲突判断来源可包括作者、所属机构、资助方与方法论本身。
4.5 RESEARCHER'S INTERPRETATION
用一句 15 词的句子提炼"研究者本人的分析与解读",即作者如何诠释自己的结果,与模型自己的批判性评估形成对照。
4.6 PAPER QUALITY:三维评分与评分图
本节对论文给出三个 1–10 分维度的评分,每个评分后附 15 词说明:
- Novelty(新颖度)1–10;
- Rigor(严谨度)1–10;
- Empiricism(实证度)1–10。
随后要求画一张"刻度条评分图"。坐标轴语义为:
- Known ↔ Novel(已知到新颖):论文的新颖、有趣与令人意外程度;
- Weak ↔ Rigorous(薄弱到严谨):论文在精细科学、透明度与方法论上的支撑程度;
- Theoretical ↔ Empirical(理论到实证):论文基于纯思辨/理论,还是基于实际数据。注意原文特别声明:纯理论论文仍可能既新颖又严谨,不应仅因"理论化"而整体扣分。
system.md 给出了两个刻度条示例来示范数字的摆放位置,例如分数为 7/5/9 时呈现为:
Known [------7---] Novel
Weak [----5-----] Rigorous
Theoretical [--------9-] Empirical
4.7 FINAL SCORE 与 SUMMARY STATEMENT
- FINAL SCORE:综合上述评分、利益冲突与论文整体质量,给出 A–F 评级,并在单独一行用 15 词解释评级的理由;
- SUMMARY STATEMENT:用一句 16 词总结"论文内容、研究发现,以及如果结论为真我们应当怎么做"(对行动导向的收束);
- 最后补充 5 条、每条 8 词的 bullet,说明"你是如何得出上述评级与结论/总结的",让评级链可被追溯。
4.8 全局输出纪律
system.md 在 OUTPUT INSTRUCTIONS 中对写作风格提出统一要求,确保结果干净可读:
- 通篇采用 Paul Graham 式的清晰、平易文风(clear, approachable style of Paul Graham);
- 每条 bullet 之间保留空行;
- 不使用加粗/斜体等 Markdown 格式,保证纯文本可读性最大化;
- 不输出警告或注释,只输出要求的章节;
- 评分图中的数字必须放在刻度上正确的位置。
五、评级纪律:RATING NOTES 教给模型的"不打感情分"
analyze_paper 最有价值的部分不是它输出的报告格式,而是写进 RATING NOTES 的评分原则。这些规则等于给模型内置了一部"期刊审稿人手册":
- 方法与数字脱钩必须降 Rigor:论文若提出主张并给出统计数字,却不说明这些统计如何得出,那么 Methodology Transparency 应判低分,RIGOR 分数也须同步下调;
- A 级的准入门槛:A 级意味着论文新颖、严谨、实证且无利益冲突;理论性论文也可能得 A,但前提是其他所有方面都"非常好"(VERY good);
- 主张越强,证据必须越强:强主张对应弱证据或低透明度时,RIGOR 必须下调;
- 无法复现要扣 1–2 档:如果论文给出了令人信服的数据,但未说清具体跑了哪些检验、如何复现这些检验,评级须至少降 1 档(最多 2 档);
- 不为"安全理由"开后门:对声称因安全原因不公开方法与数据的论文,不得放宽透明度要求——原文明言,面对可复现性危机,只能按最坏情况假设;
- 利益冲突扣 1–3 档:报告中若存在潜在利益冲突,评级可再下调 1–3 档。
此外 ANALYSIS INSTRUCTIONS 明确要求模型倾向更批判(Tend towards being more critical),"不要对不严谨或不透明的论文盲目吹捧"。这套纪律让评分结果大概率是收敛的:同一篇论文在不同模型/会话下会得到结构一致的审计意见,这正是 pattern 化提示词相对自由问答的核心价值。
六、一份输出骨架长什么样
把上述规格串起来,模型对一篇论文应产出大致如下的结构化报告骨架(章节名与 word 上限为 system.md 强制项,具体内容取决于论文本身):
SUMMARY
(16-word sentence capturing paper and its conclusions)
AUTHORS
- ...
AUTHOR ORGANIZATIONS
- ...
FINDINGS
- (bullet 1, ≤ 16 words)
- ... (up to 10 bullets)
STUDY OVERVIEW
- (bullet, ≤ 16 words)
- ...
STUDY QUALITY
- STUDY DESIGN: (15-word description incl. data/statistics)
- SAMPLE SIZE: (...)
- CONFIDENCE INTERVALS: (...)
- P-VALUE: (...)
- EFFECT SIZE: (...)
- CONSISTENCE OF RESULTS: (...)
- METHODOLOGY TRANSPARENCY: (...)
- STUDY REPRODUCIBILITY: (...)
- Data Analysis Method: (...)
CONFLICTS OF INTEREST
(NONE DETECTED / LOW / MEDIUM / HIGH / CRITICAL)
RESEARCHER'S INTERPRETATION
(15-word sentence)
PAPER QUALITY
- Novelty: n/10 + 15-word explanation
- Rigor: n/10 + 15-word explanation
- Empiricism: n/10 + 15-word explanation
Rating Chart:
Known [---n------] Novel
Weak [---n------] Rigorous
Theoretical [---n------] Empirical
FINAL SCORE
(Grade A-F, then a 15-word explanation)
SUMMARY STATEMENT
(16-word final summary + 5 × 8-word reasoning bullets)
使用姿势建议:将以上输出与论文 PDF 一并归档到文献库,FINDINGS 可作为二次检索的摘要字段,STUDY QUALITY 与 FINAL SCORE 可作为文献筛选的初筛标签;若某篇论文被评 C 以下,通常意味着数据与复现材料不全,需要人工补充核验再决定是否作为引用依据。
七、源码佐证:pattern 是如何被加载与执行的
从仓库源码结构看,analyze_paper 这样的 pattern 并不在 Go 代码里写死,而是由运行时从 data/patterns/ 目录发现并加载的:
- internal/tools/patterns_loader.go 与同目录的
defaults.go负责模式发现、加载与默认装配; - internal/cli/listing.go 实现
fabric --listpatterns等展示类命令,让包括analyze_paper在内的每个 pattern 都可通过名字被引用; - scripts/pattern_descriptions/pattern_extracts.json 收录了各 pattern 的提取文本快照,可用于索引与检索——其中
analyze_paper条目保留了与仓库当前版本几乎一致的提示词正文。
换言之,你完全可以在不写 Go 代码的前提下,通过阅读/微调 system.md 来演进这个审读标准——例如把 STUDY QUALITY 的维度按自己领域的规范增删,或把 RATING NOTES 的扣分规则改成与内部审稿制度对齐。改完后运行 fabric --updatepatterns 前的本地自定义机制即可生效(自定义 patterns 不会被 update 覆盖,详见 README 的 custom pattern 说明)。
八、小结:什么时候该用它
analyze_paper 适合以下场景:
- 文献综述阶段需要批量、一致地评估候选论文的质量,而不是逐篇随手总结;
- 你特别关心一篇论文的可复现性与方法透明度,而不只是它的 headline 结论;
- 需要为团队沉淀结构统一的论文审读记录(摘要 + 证据审计 + 评级),便于后续检索与再评审。
它不适合被当成"一键判论文好坏"的裁决器——正如 RATING NOTES 反复强调的,它是一套倾向批判、把复现性当硬指标的审计框架;在关键决策(如是否采信某项研究结果)上,仍应以原始论文和人工核验为最终依据。
延伸阅读(仓库内)
- analyze_paper_simple:精简版单行输出,适合快速扫描;
- pattern_explanations.md:所有内置 pattern 的一句话定位清单;
- suggest_pattern/system.md:按任务类型推荐 pattern 的组合使用;
- README.md:Fabric 安装、别名与 CLI 全局用法;
- Desktop-Notifications.md:长任务 + 后台通知组合用法。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0629
MiniCPM5-2BMiniCPM5-2B 是一款面向端侧、本地部署和资源受限场景的 2B 稠密 Transformer,能够达到同尺寸开源模型 SOTA 水平。Markdown00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
HivisionIDPhotos⚡️HivisionIDPhotos: a lightweight and efficient AI ID photos tools. 一个轻量级的AI证件照制作算法。Python08
DragonOSDragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for **Serverless** scenarios. 使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算Serverless场景而设计。Rust00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00