首页
/ Fabric 模式剖析:extract_article_wisdom 系统提示词如何从任意文章中系统化萃取观点、金句与事实

Fabric 模式剖析:extract_article_wisdom 系统提示词如何从任意文章中系统化萃取观点、金句与事实

2026-09-08 19:11:10作者:劳婵绚Shirley

导读

extract_article_wisdom 是 Fabric 开源仓库中一套用于"内容深度萃取"的 AI 模式(pattern),它把一篇可转为文本的文章(博客、论文、访谈、播客转录稿等)交给 LLM,按一套固定、可复现的规则产出 SUMMARYIDEASQUOTESFACTSREFERENCESRECOMMENDATIONS 六类结构化结果。阅读本文后,你将掌握该模式系统提示词逐段的运行机制、与仓库内其他"智慧提取"类模式的差异,以及它在 Fabric 中从文件存储到 CLI 调用的完整链路。


一、模式定位:解决"内容太多、时间太少、遗忘太快"

Fabric 的核心理念是"用众包 AI 提示词增强人类",每条 pattern 都收敛到一类具体问题,由同一目录下的 system.md(定义 AI 的角色、步骤与输出规范)和 user.md(定义用户侧输入占位)共同构成。extract_article_wisdom 正是该体系下的典型一员。

在仓库中,该模式位于 data/patterns/extract_article_wisdom/,由三个文件组成:

文件 作用
system.md 本文分析的核心:定义身份、执行步骤与输出约束
user.md 用户侧输入,仅包含 CONTENT: 占位符
README.md 描述模式背景、功能与输出示例的配套说明

其解决的实际痛点与配套 README.md 中的表述一致:输入内容太多而时间太少,且阅读、观看或收听过的内容太容易被遗忘。extract_article_wisdom 的产出可服务于两大用途——时间过滤(快速判断内容是否值得精读)与笔记替代(省去耗时的手动摘录)。

二、system.md 逐段拆解:身份与执行步骤

system.md 全文分四个区块:IDENTITY and PURPOSESTEPSOUTPUT INSTRUCTIONSINPUT

2.1 IDENTITY and PURPOSE

You extract surprising, insightful, and interesting information from text content.

角色定义只有一句话,却包含了全部价值判断标准:只从文本中提取"令人惊讶的、有洞见的、有趣的"信息。这意味着该模式不是做全文摘要,而是以"信息增量与启发度"为筛选主轴的萃取器。

文件紧接着要求模型退一步、逐步思考,以保证输出质量:

Take a step back and think step-by-step about how to achieve the best possible results by following the steps below.

2.2 STEPS:六个萃取章节的完整规范

STEPS 区块定义了模型必须顺序执行的六步,每一步对应输出中的一个固定章节:

步骤 输出章节 数量要求 内容标准
1 SUMMARY 25 词以内 概括全文,必须包含内容创作者是谁以及讨论的主题
2 IDEAS 20~50 条 最令人惊讶、有洞见或最有趣的观点;若输入少于 50 条则全部收集,且至少 20 条
3 QUOTES 15~30 条 最令人惊讶、有洞见或有趣的原句,必须使用输入中的原文
4 FACTS 15~30 条 内容中提到的、关于更大世界的真实且有趣的事实
5 REFERENCES 无上限 全部提及的写作、艺术、工具、项目及其他灵感来源引用
6 RECOMMENDATIONS 15~30 条 从内容中可提炼出的推荐事项

几个值得注意的设计细节:

  • SUMMARY 强制带作者/来源归属:要求包含"who created it",让摘要具有可溯源上下文,而不是孤立的内容梗概。
  • 数量采用区间+下限双约束IDEAS 同时出现区间(20~50)与下限(at least 20),当输入信息密度不足 50 时取全部但不下探到 20 以下,保证输出密度始终有底线。
  • REFERENCES 无上限:这是唯一要求"收集全部"(any and all)的章节,体现对该类模式一贯"绝不漏掉任何值得追踪的灵感源"的取向。
  • QUOTES 强调原文精确:反复出现 "Use the exact quote text from the input",禁止改写与二次转述。

2.3 OUTPUT INSTRUCTIONS:输出格式约束清单

在步骤之外,system.md 对输出格式给出了硬性约束,这段也是提示词工程中"可解析性设计"的范例:

  • Only output Markdown:输出必须是纯 Markdown,方便后续程序解析与消费;
  • Extract at least 10 items for the other output sections:除上述区间外,其余输出章节每项至少 10 条(当输入较短时充当兜底下限);
  • Do not give warnings or notes; only output the requested sections:禁止输出警告或说明文字,只允许出现要求的章节,保证输出结构纯净;
  • You use bulleted lists for output, not numbered lists:使用无序列表而非有序列表;
  • Do not repeat ideas, quotes, facts, or references:观点、金句、事实与引用之间禁止重复;
  • Do not start items with the same opening words:每条目不得以相同措辞开头,强制模型在措辞层面多样化,避免机械化模板腔;
  • Ensure you follow ALL these instructions when creating your output:结尾再次强调完整性遵循。

末尾以 INPUT: 作为占位,等待拼接用户内容——这与用户侧文件的 CONTENT: 占位符前后呼应。

三、user.md 与拼接机制:system + user 如何构成一次完整对话

与仓库内大多数模式一致,user.md 内容极简,全文为:

CONTENT:

在 Fabric 的实际运行链路中,system.mduser.md 会被分别装载并作为聊天请求的 system/user 两个组成部分。系统提示词末尾的 INPUT: 与用户提示词中的 CONTENT: 构成了一个约定:调用方把待萃取的文章/转录文本填充在 CONTENT: 之后,模型读取后即视为 INPUT: 输入。因此,同一套 system.md 可以服务任意来源的文本——播客转录稿、学术论文、博客文章,只要是能落成文字的载体都能作为输入。

四、与仓库内"智慧提取"模式家族的对比

data/patterns/ 下,存在一个高度同源的模式族。经对比可见 extract_article_wisdom 相对它们做了明显的"减法"设计:

模式 system.md 特点
extract_article_wisdom 精简版:6 大章节(含 FACTS),无 16 词限长约束,最贴近"文章笔记"场景
extract_wisdom 经典版:额外增加 INSIGHTSHABITSONE-SENTENCE TAKEAWAY
extract_wisdom_with_attribution 带出处版:每条 QUOTE 需附说话者,格式 "Quote" — Speaker Name
extract_wisdom_nometa 精简元信息版:取消 SUMMARY 中带作者的要求
extract_wisdom_dm 长提示词版:包含虚构高 IQ 设定、GOAL 区块与完整注释风格

尤其值得注意的差异在输出约束:extract_wisdom 家族多数要求 IDEASRECOMMENDATIONSHABITSFACTSINSIGHTS 的每条目恰好 16 词,并强制 IDEAS 至少 25 条、INSIGHTS 至少 10 条;而 extract_article_wisdom 删去了 16 词限长与 INSIGHTS/HABITS/ONE-SENTENCE TAKEAWAY 三个章节,换取更自然流畅的产出。如果你的诉求是"读文章做可读性笔记",本模式是更适合的起点;如果需要深度访谈类的习惯与洞察抽取,应改用 extract_wisdomextract_wisdom_dm

另需留意:本目录 README.md 中的输出示例沿用了整个 extractwisdom 家族的早期文档形态(其中出现了 HABITS 章节),与本目录 system.md 定义的权威章节集合(无 HABITS)并不完全一致。撰写或引用时应以 system.md 为唯一准绳,README 仅作为该家族产出的形态参考。

五、仓库源码视角:模式文件如何被装载与执行

Fabric 将模式加载、管理与聊天调用的逻辑集中在 internal/ 下,extract_article_wisdom 的 system/user 文件正是经由这一链路被消费。

5.1 模式的存储约定

模式目录即数据源。internal/tools/patterns_loader.go 定义了:

const DefaultPatternsGitRepoUrl = "https://github.com/danielmiessler/fabric.git"
const DefaultPatternsGitRepoFolder = "data/patterns"

data/patterns 是模式在仓库中的默认落盘目录,每个子目录对应一条 pattern。而文件名约定 system.md 由数据库层常量固化,见 internal/plugins/db/fsdb/db.go

SystemPatternFile: "system.md",

装载器通过 BuildFilePath(见 internal/plugins/db/fsdb/storage.go)在模式目录内拼接出完整文件路径,系统提示词与用户提示词由此分别读入。

5.2 CLI 调用链路

internal/cli/chat.go 中可以看到模式与模型的联动逻辑:

if currentFlags.Pattern != "" && currentFlags.Model == "" {
    envVar := "FABRIC_MODEL_" + strings.ToUpper(strings.ReplaceAll(currentFlags.Pattern, "-", "_"))

它证实了两个工程细节:其一,CLI 通过 --pattern(即 -p)指定模式名;其二,可为单条模式绑定专属模型——环境变量名由 FABRIC_MODEL_ 前缀与模式名大写化拼接而成。若你希望 extract_article_wisdom 固定走某个更强推理的模型,可设置 FABRIC_MODEL_EXTRACT_ARTICLE_WISDOM=<模型名>,其余模式不受影响。

5.3 模式的收录与检索

该模式也被收录进仓库维护的模式说明索引中。data/patterns/pattern_explanations.md 第 127 条给出了一段便于检索的简介:

extract_article_wisdom: Extracts surprising, insightful, and interesting information from content, categorizing it into sections like summary, ideas, quotes, facts, references, and recommendations.

同时 scripts/pattern_descriptions/pattern_descriptions.jsonpattern_extracts.json 中也有对应条目,可作为模式自动发现与搜索的基础数据。这说明一条 pattern 的发布不仅是写好提示词,还包括将其注册到仓库的元数据体系。

六、实战用法:把它接入自己的阅读流

在 Fabric 下使用该模式遵循统一调用范式——选定模式、喂入文本、指定输出:

# 方式一:命令行读取文本文件
fabric --pattern extract_article_wisdom < article.txt

# 方式二:管道串联其他工具的输出(如网页正文、转录文本)
cat article.md | fabric -p extract_article_wisdom -o wisdom.md

参考该目录 README.md 对输出用途的说明,典型工作流是把模式产出的六章节结果落盘为 Markdown 笔记,之后:

  • 做时间过滤:先读 SUMMARYIDEAS,几十秒内判断原文是否值得精读;
  • 做深度笔记:用 QUOTES 保留可引用的原句,REFERENCES 保存值得追读的延伸作品,RECOMMENDATIONS 汇总可行动建议;
  • 做知识追踪:按作者反复运行本模式,横向比较同一作者不同文章的 IDEAS/FACTS,即可建立自己的观点演变档案。

运行环境上,internal/cli/chat.go 表明模式调用完成后还会触发桌面通知机制(标题包含模式名),长文本处理时可放心等待。

七、如何验证一条输出是否合格

结合 system.mdOUTPUT INSTRUCTIONS,可用以下清单快速自检模型的产出质量:

  1. 结构纯净:只有 Markdown、只有六个章节,无警告、无解释性旁白;
  2. 列表形式:全部为无序列表(-)而非有序列表;
  3. 数量达标SUMMARY ≤ 25 词且含创作者信息;IDEAS 20~50 条且 ≥ 20;QUOTES/FACTS/RECOMMENDATIONS 在 15~30 区间;REFERENCES 尽量穷尽;
  4. 内容合规QUOTES 逐字使用原文;无跨章节重复项;相邻条目不以相同措辞开头。

这组约束正是该模式提示词工程的可贵之处——它把"高质量萃取"从玄学式的口头要求,转化为可量化、可校验、可解析的机器契约,这也是 Fabric 模式设计一以贯之的风格。


延伸阅读:可继续深入本仓库阅读同族模式的演进差异(extract_wisdomextract_wisdom_dmextract_wisdom_with_attribution),或从 internal/tools/patterns_loader.go 出发研究模式装载与更新的完整源码实现。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.14 K
2.75 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
857
1.35 K
docsdocs
暂无描述
Markdown
898
5.82 K
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
921
1.84 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.8 K
1.02 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
531
596
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.02 K
519
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.36 K
1.46 K
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
548
391