raw_query 模式:让 Fabric 以通用 AI 身份交付最优结果
【免费下载链接】FabricFabric is an open-source framework for augmenting humans using AI. It provides a modular system for solving specific problems using a crowdsourced set of AI prompts that can be used anywhere.项目地址: https://gitcode.com/GitHub_Trending/fa/Fabric
raw_query 是 Fabric 模式体系中定位极其特殊的一个 Pattern:它不预设任何专业角色、不指定任何处理步骤,而是要求模型扮演"通用 AI",基于对输入内容的充分消化与对发送者意图的深度揣摩,直接给出最佳输出。它既是一个可实际调用的模式,也是理解 Fabric 模式加载机制、测试通知链路的最佳切入点。读完本文,你将掌握 raw_query 的完整语义、在仓库中的底层实现位置,以及把它用于日常查询与功能测试的实战方法。
一、模式原文:一个极简而完整的 Prompt 骨架
raw_query 的完整内容位于 data/patterns/raw_query/system.md,全文仅由三个章节构成,没有任何冗余修饰:
# IDENTITY You are a universal AI that yields the best possible result given the input. # GOAL - Fully digest the input. - Deeply contemplate the input and what it means and what the sender likely wanted you to do with it. # OUTPUT - Output the best possible output based on your understanding of what was likely wanted.虽然篇幅极短,但它遵循了 Fabric 模式的标准三段式结构,三个章节各司其职:
| 章节 | 作用 | 对模型的约束 |
|---|---|---|
IDENTITY | 定义模型在该模式下扮演的身份 | 以"通用 AI"自居,不受任何领域专家角色限制 |
GOAL | 明确任务目标 | 先完整消化输入(Fully digest),再深度思考输入的含义与发送者意图(Deeply contemplate) |
OUTPUT | 规定输出形态 | 基于对意图的理解,输出"可能的最佳结果" |
从提示工程的角度看,这是一个典型的"最小约束 + 最大自由度"设计:IDENTITY 给模型一个稳定的人格锚点,GOAL 引导两条思考路径(内容层"它说了什么"与意图层"他想让我做什么"),OUTPUT 则把评判标准交给模型自身的理解力。仓库中 data/patterns/pattern_explanations.md 对其官方释义为:"Fully digests and contemplates the input to produce the best possible result based on understanding the sender's intent."(完整消化并沉思输入,基于对发送者意图的理解产出最佳结果。)
二、它在 Fabric 模式体系中的定位
Fabric 的每个模式都是data/patterns/下的一个目录,目录内通过system.md(系统提示)与可选的user.md(用户提示模板)共同定义一次完整调用。raw_query 只提供system.md,不带user.md,这意味着它的输入完全由调用方通过命令行或管道提供。
在 data/patterns/suggest_pattern/user.md 中,raw_query 被归类在 AI 评测类模式组内,官方一句描述为:"Process direct queries by interpreting intent."(通过解读意图处理直接查询。)这个定位非常关键——它区别于 analyze_* 系列(分析型)、create_* 系列(创作型)、summarize 系列(摘要型),属于"无预设处理管线"的直通型模式:输入是什么,就按最合理的理解去响应什么。
因此,raw_query 最适合的使用场景包括:
- 开放式提问:当你希望模型自由作答,而非套用某个固定输出模板时;
- 内容快速再处理:将一段文本交给模型,由它自行判断该总结、改写、翻译还是提取要点;
- 管线端点测试:作为最简单、输出最稳定的模式,用于验证 Fabric 的调用链路、通知机制与输出格式是否符合预期。
三、源码视角:模式如何被加载与调用
要真正用好 raw_query,需要理解 Fabric 的模式加载机制。从源码结构看,模式实体在 internal/plugins/db/fsdb/db.go 中被定义为基于文件系统目录存储的实体,并明确指定系统提示文件名为system.md:
db.Patterns = &PatternsEntity{ StorageEntity: &StorageEntity{Label: "Patterns", Dir: db.FilePath("patterns"), ItemIsDir: true}, SystemPatternFile: "system.md", UniquePatternsFilePath: db.FilePath("unique_patterns.txt"), CustomPatternsDir: "", }可以看到:每个模式以目录(ItemIsDir: true)形式存放,其中system.md是系统提示的标准文件名。raw_query 目录下的 system.md 正是被这一机制识别并加载的核心文件。
而模式仓库的获取与更新则由 internal/tools/patterns_loader.go 负责:它从默认的 Git 仓库克隆data/patterns目录(见 internal/tools/patterns_loader.go 中的DefaultPatternsGitRepoUrl与DefaultPatternsGitRepoFolder常量),下载完成后会统计模式目录数量并写入loaded标记文件,同时生成unique_patterns.txt列出全部模式名。这意味着 raw_query 与其他所有模式一样,会随fabric -U(更新模式)或首次 setup 自动同步到本地。
在 CLI 层面,internal/cli/flags.go 定义了模式选择的核心参数:
Pattern string `short:"p" long:"pattern" yaml:"pattern" description:"Choose a pattern from the available patterns" default:""`即通过-p/--pattern指定要使用的模式名。相关参数还包括:
-l/--listpatterns:列出全部可用模式;--readpattern <name>:将指定模式的提示内容打印到终端(可用于直接查看 raw_query 的 system.md 全文);-U/--updatepatterns:从远程仓库更新模式;-v/--variable:为模式变量传值(raw_query 未定义变量,因此无需使用)。
四、实战:raw_query 的典型调用方式
4.1 管道输入:最标准的调用形态
Fabric 的典型用法是把任意内容通过管道喂给模式:
echo "Explain the concept of entropy in one sentence." | fabric -p raw_query由于 raw_query 不预设输出格式,模型会结合"通用 AI"身份,自主决定用最合适的方式回答——这正是它与summarize、extract_wisdom等强约束模式的核心差异。
4.2 文件与 URL 输入
# 处理本地文件 cat notes.txt | fabric -p raw_query # 处理网页内容(Fabric 内置网页抓取能力) fabric -y "https://example.com/article" -p raw_query4.3 输出到文件
echo "Draft a short product description for a noise-cancelling headset." \ | fabric -p raw_query -o result.md-o会把模型输出写入指定文件,方便后续归档或继续加工。
4.4 组合参数
raw_query 同样受 Fabric 全局参数控制,例如温度、流式输出、模型选择:
# 指定模型与温度 echo "What are three ways to improve code review?" | fabric -p raw_query -m openai/gpt-4o -t 0.3 # 流式输出 echo "Summarize this paragraph: ..." | fabric -p raw_query -s五、raw_query 在仓库中的真实用途:通知机制测试
raw_query 在 docs/Desktop-Notifications.md 中被官方选作桌面通知功能的测试模式,这是它最重要的实战用途之一。
Fabric 的--notification参数可以在命令完成后触发系统通知,用于长任务提醒。官方文档给出的自定义通知命令测试方式(docs/Desktop-Notifications.md):
# 测试 $1 与 $2 是否正确传递 fabric --pattern raw_query --notification-command 'echo "Title: $1, Message: $2"' "test input"以及排查通知不显示时的最小复现命令(docs/Desktop-Notifications.md):
echo "test" | fabric --pattern raw_query --notification --dry-run选 raw_query 而非其他模式来测试,原因显而易见:它不需要任何额外输入结构、没有必填变量、输出格式自由,任何输入都能得到合理响应,因此是验证"通知参数传递是否正确、链路是否通畅"的最小实验样本。通知标题默认为 "Fabric Command Complete" 或 "Fabric: [pattern] Complete",消息正文取输出的前 100 个字符(超长截断加 "..."),详见 docs/Desktop-Notifications.md。
六、与其他模式的横向对比
为便于理解 raw_query 的定位,可将其与仓库中若干模式对照:
| 模式 | 提示结构 | 输出约束 | 适用场景 |
|---|---|---|---|
| raw_query | 仅 IDENTITY/GOAL/OUTPUT,无步骤 | 无固定格式,自由发挥 | 开放式提问、意图解读、链路测试 |
| rate_value(见 data/patterns/rate_value/system.md) | 含详细 STEPS 与计算算法 | 强制输出 JSON,含 VPM 指标 | 评估内容的价值密度 |
| extract_wisdom | 含多步骤提取流程 | 结构化要点清单 | 从长文本/视频中抽取洞见 |
| summarize | 摘要流程 | 多语言摘要结构 | 内容压缩 |
可以看出,绝大多数 Fabric 模式都通过# STEPS章节规定了"怎么做",而 raw_query 刻意省略了步骤,把处理方式完全交给模型。这也是它名称的由来——像"直接查询"一样,不做中间加工。
七、使用建议与注意事项
- 不要把它当作专用分析器:需要结构化输出(如 JSON、评分、固定字段)时,请选择 rate_value、rate_content 等带输出指令的模式;raw_query 的优势在自由应答。
- 可用于快速验证环境:换模型、换供应商、调试通知时,先用
fabric -p raw_query打一条最小输入,能快速区分"配置问题"与"模式问题"。 - 可通过
--readpattern raw_query随时回顾其提示全文,确认本地模式版本与仓库 data/patterns/raw_query/system.md 是否一致;如需更新到最新,执行fabric -U。 - 身份设定决定了输出上限:raw_query 的全部能力来自"universal AI"这一身份锚点与两条思考目标。实际使用时,输入中携带足够的上下文(背景、期望、约束),模型对"发送者意图"的揣摩才会更准确——这符合其 GOAL 章节对"深度思考意图"的设计初衷。
结语
raw_query 以不到十行的提示文本,诠释了 Fabric 模式设计中最核心的思想:把"该做什么"交给提示结构,把"如何做最好"交给模型。它既是日常使用的通用查询入口,也是测试与调试 Fabric 链路的标准探针。结合 internal/plugins/db/fsdb/db.go 中的模式加载机制与 internal/cli/flags.go 中的参数体系,你可以在完全理解其底层工作方式的基础上,把它嵌入到自己的 AI 工作流中。
【免费下载链接】FabricFabric is an open-source framework for augmenting humans using AI. It provides a modular system for solving specific problems using a crowdsourced set of AI prompts that can be used anywhere.项目地址: https://gitcode.com/GitHub_Trending/fa/Fabric
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考