Fabric 助记短语模式(create_mnemonic_phrases)实战指南:为 Diceware 词表生成可记忆的助记句
2026/9/9 13:21:51 网站建设 项目流程

Fabric 助记短语模式(create_mnemonic_phrases)实战指南:为 Diceware 词表生成可记忆的助记句

【免费下载链接】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

导读

Fabric 是一个通过 AI 增强人类能力的开源框架,它以data/patterns目录下的"模式(pattern)"为核心:每个模式由一份system.md指令构成,配合用户输入即可让 AI 完成特定任务。本文聚焦其中名为create_mnemonic_phrases的密码学辅助模式,讲解如何在不改动词序、不改拼写的前提下,把 Diceware 随机单词串加工成易于背诵的助记句。读完本文,你将掌握 Diceware 口令的熵值计算方法、该模式system.md的完整指令结构,以及用shuf+fabric --pattern把词表流水线化生成可记忆短语的实操能力。

一、背景:Diceware 口令方案与助记痛点

1.1 什么是 Diceware

create_mnemonic_phrases的配套说明 readme.md 指出:Diceware 是一种把物理随机性转化为口令的密码学方案,其核心是将每五次六面骰子投掷的结果(11111–66666)映射到一个唯一单词。由于骰子组合共有6^5 = 7776种,因此标准 Diceware 词表恰好包含 7776 个条目。

这种设计的价值在于口令的安全强度不依赖人的创造力,而是完全由物理骰子的随机性决定——攻击者无法通过猜测"人类起名习惯"来降低搜索空间。原始随机词串可读性差的问题则留给助记层去解决,这正是本模式存在的意义。

1.2 标准 7776 词表的熵值

文档给出了标准词表的熵值计算方式:

words = 7776 entropy_per_word = log2(words) ≈ 12.925 bits

由此可推出:若一段口令由 N 个独立随机选取的单词组成,其总熵值为N × 12.925 bits。文档特别强调的参考数量级包括:

  • 6 个单词 ≈77.5 bits
  • 10 个单词 ≈129 bits
  • 4 个及以上单词就已经全面超越大多数人类自设密码(人设密码往往集中在十余位混合字符,实际熵往往不足 60 bits)。

这一结论背后是加密学常识:口令强度看的是信息熵而非字符长度,字符集大小与可预测性决定熵。7776 词的词表按log2(7776)给出每个词 12.925 bits,远高于单个字母/数字位(约 3.3–6.6 bits)或人类易猜的整句。因此本文所述模式的价值前提是:词汇必须来自真实随机源,助记句只负责"记得住",不负责"随机性"。

二、模式机制:system.md如何把词串变成助记句

2.1 模式文件的仓库位置与构成

在 Fabric 中,模式以目录形式组织,仓库里每个模式目录通常含system.md(必选,作为发给模型的指令),可选的user.md与说明文档。本模式位于 data/patterns/create_mnemonic_phrases/,包含:

  • system.md:完整的 AI 指令正文(系统提示词);
  • readme.md:面向使用者的说明,即本文解析对象。

从源码看,SystemPatternFile被固定为"system.md"(见 internal/plugins/db/fsdb/db.go),pattern 名即目录名(create_mnemonic_phrases)。模式默认从仓库的data/patterns目录分发(见 internal/tools/patterns_loader.go 中的DefaultPatternsGitRepoFolder = "data/patterns")。

2.2 指令的核心约束

system.md给 AI 定义了身份与三条硬约束:

  1. 词序不可变:给定单词必须原样、按给定顺序使用,禁止同义词替换、改写或任何语法变体——这是助记模式与"造句改写"类模式的本质区别,因为口令必须逐字符精确复现才能通过认证;
  2. 输出分两段:第一段是按原顺序、逗号分隔、逐一加粗的单词列表;第二段是恰好 5 条简短、易记、且每条都完整包含全部单词且顺序一致的句子;
  3. 零杂质输出:不得附带任何解释、思考、评论或额外信息,方便直接管道进下游脚本。

对应地,readme.md将其归纳为两步流水线:

  1. 把给定单词以加粗 + 逗号分隔原样回显;
  2. 生成5 条彼此不同的短句,单词以相同顺序与拼写嵌入其中,便于快速机械记忆(rote learning)或间隔重复练习(spaced-repetition drills)。

2.3 输入格式的宽容处理

system.md明确说明输入词表可能有以下两种形态:

  • 纯词表:每行一个单词,无编号,例如spontaneous / branches / embargo / intrigue / detours
  • 带十进制编号的词表:例如 Diceware 工具常输出的12345 spontaneous这类"掷骰序列号 + 单词"的行。

无论哪种格式,模式都要求:忽略十进制数字,仅按原顺序、原拼写取用单词。这意味着你可以直接把 Diceware 在线工具或脚本的输出喂给它而不必手工清洗,实现了"随机词表 → 助记短语"的零门槛衔接。

2.4 输出示例(来自 system.md)

系统提示词内置了完整示范,展示了期望的排版风格——加粗词表在前、编号句在后:

**spontaneous**, **branches**, **embargo**, **intrigue**, **detours** 1. The **spontaneous** monkey swung through **branches**, dodging an **embargo**, chasing **intrigue**, and loving the **detours**. 2. Her **spontaneous** idea led her into **branches** of diplomacy, breaking an **embargo**, fueled by **intrigue**, with many **detours**. 3. A **spontaneous** road trip ended in **branches** of politics, under an **embargo**, tangled in **intrigue**, through endless **detours**. 4. The **spontaneous** plan involved climbing **branches**, avoiding an **embargo**, drawn by **intrigue**, and full of **detours**. 5. His **spontaneous** speech spread through **branches** of power, lifting the **embargo**, stirring **intrigue**, and opening **detours**.

可以观察到,5 句示例的主题各不相同(猴子、外交、公路旅行、计划、演讲),但 5 个目标词都以完全相同的顺序出现在同一句中,且整体是加粗、加粗、加粗的高亮格式——这是为了在快速浏览时让眼睛能瞬间捕捉目标词在句中的位置。

三、快速上手:从词表到助记句

3.1 最小工作流

readme.md给出了两条命令串成的一条最小工作流:

# 1 从任意 Diceware 兼容词表中随机抽取 5 个词 shuf -n 5 diceware_wordlist.txt | \ # 2 交给 Fabric 并指定本模式 fabric --pattern create_mnemonic_phrases -s

分解来看:

  • shuf -n 5是 GNU coreutils 的随机抽样命令,从词表文件每行抽 5 个词,实现"物理骰子随机"的软件等价物(注意:安全关键场景应使用 Diceware 推荐的物理骰子方法);
  • fabric读取 stdin,--pattern create_mnemonic_phrases指明使用本模式;-s--stream,开启流式输出,逐句即时渲染。

执行后会先看到加粗的 5 个词,随后看到 5 条候选助记句,即可挑选、练习。

3.2 相关 CLI 参数(仓库源码实证)

从 internal/cli/flags.go 可以看到与模式工作流直接相关的参数定义:

参数短参作用
--pattern <name>-p选用某个已安装模式,如create_mnemonic_phrases
--stream-s开启流式输出
--listpatterns-l列出所有已安装模式,确认create_mnemonic_phrases是否就位
--readpattern <name>把指定模式的 system.md 内容打印到终端
--latest <n>-n仅列出最近 N 个模式
--updatepatterns-U从远程仓库更新模式集合
--output <file>-o把结果写入文件
--setup-S对可配置项进行安装引导(含模式仓库源配置)

运行前若提示找不到模式,可先用fabric -l检查、用fabric -U更新,再执行上述命令。

3.3 底层:模式如何加载与拼接输入

Fabric 读取 stdin 后,会把用户输入通过{{input}}占位符拼接到模式末尾,再整体发送给模型。在 internal/plugins/db/fsdb/patterns.go 中可以看到:加载模式时若内容里没有{{input}},会自动在末尾追加并填入用户输入(ensureInputapplyInput)。因此上面管道里的 5 个单词会被原样追加到system.md# INPUT部分之后——这也是system.md末尾专门预留# INPUT空段的原因。换句话说,你的 stdin 内容 = 模式最后一段的填充物,无需任何中间格式转换。

3.4 输入带编号词表时的处理

若你用的是带编号的 Diceware 输出(如12345 spontaneous),同样可以直接管道传入:

# 生成器每行输出"骰子编号 + 单词" python3 - <<'EOF' import itertools, random # 示意:用 5 组随机骰子序列模拟,7776 词表按 Diceware 惯例从 11111 起始 words = ["spontaneous","branches","embargo","intrigue","detours"] for i, w in enumerate(words, 1): rolls = str(11111 + random.randint(0, 7775)) print(rolls, w) EOF | fabric --pattern create_mnemonic_phrases -s

由于system.md明确要求忽略行首十进制数字,模型会自动只取右侧单词并按输入顺序处理,无需预处理清洗步骤。

四、进阶使用场景

4.1 结合流式与文件输出

助记句可直接存档用于间隔重复:

shuf -n 5 diceware_wordlist.txt | \ fabric --pattern create_mnemonic_phrases -s -o mnemonics.md

-o会把结果写盘(参数定义同样见 internal/cli/flags.go),便于建立自己的口令记忆库。

4.2 扩展到不同记忆需求

system.md固定输出 5 句,若需要不同句数,可自行利用 Fabric 的参数变量或简单编辑指令实现;但需要注意system.md的"词序与拼写严格不变 + 纯输出"两条约束属于安全边界,修改时应予以保留,否则会破坏口令可复现性。

4.3 结合 Fabric 模式管理

如果想了解本模式的完整提示词原文,可运行:

fabric --readpattern create_mnemonic_phrases

该命令会把 data/patterns/create_mnemonic_phrases/system.md 的内容原样打印出来(对应 internal/cli/listing.go 的PrintPattern逻辑),方便在离线环境审阅或二次创作。

五、安全性与使用注意事项

  1. 熵值不因助记而降低:助记句只是"外壳",口令的实际强度仍取决于底层随机词的数目与随机源质量。生成时应优先使用 Diceware 推荐的物理骰子方法,避免软件伪随机导致的可预测性风险;
  2. 词序是口令的一部分:助记句中的词序不可调换——system.md对顺序的严格要求对应的是口令校验的精确性要求;
  3. 生成后请原样核对:AI 生成的助记句可能存在极少数拼写或顺序偏差,使用前应对照原始加粗词表逐词核对(输出中的第一段加粗列表即为核对基准);
  4. 本模式解决"记忆",不负责"存储":请继续遵守你的口令管理习惯与威胁模型,勿因"能记住"而在低安全环境重复使用。

六、小结

create_mnemonic_phrases是 Fabric 模式体系中一个"小而精准"的密码学辅助案例:它把 Diceware 的 7776 词随机词表与 LLM 的语言创造力对接,在不触碰安全边界(词序、拼写、纯输出)的前提下产出便于背诵的助记句。通过 readme.md 的熵值说明、system.md 的指令规范,以及仓库内 patterns.go 的输入拼接逻辑,读者可以从"命令用法"与"底层原理"两个层面完整掌握:shuf -n 5抽词 →fabric --pattern create_mnemonic_phrases -s生成 → 原样核对 → 间隔重复记忆。要让这个工作流达到真正的口令安全等级,请始终记住:随机性来自词表抽样,记忆性来自助记句,而两者之间的桥梁是"词序与拼写分毫不动"这条铁律。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询