Fabric `audit_transparency` Pattern 深度指南:用五维透明度审计让 AI 决策可解释、可问责
audit_transparency 是 Fabric 开源框架中一个面向“透明度审计”的 AI Pattern。它把 LLM 塑造成一名“透明度审计员”,用来评估影响他人的决策、系统或行动,是否能用受影响者能够理解的语言解释清楚,并判断其不透明究竟是必要的还是用来掩盖伤害。读完本文,你将掌握该 Pattern 的伦理依据、五维审计框架、8 步操作流程、结构化输出格式,并能直接用 fabric -p audit_transparency 对 AI 系统、政策、合约与治理规则执行真实审计。
Pattern 概述与适用场景
Fabric 将这类可复用能力称为 Pattern——一组存放在仓库中、可以被任意主流 LLM 调用的提示词(prompt)体系。audit_transparency 属于其中的伦理/审计类 Pattern,在 pattern_explanations.md 中与 audit_consent(评估同意是否真实而非被制造)相邻归类,共同服务于“AI 治理与权力制衡”这一主题。
本 Pattern 的核心任务定义(出自 data/patterns/audit_transparency/system.md)非常明确:
透明原则:每一个影响他人的决策,都应当能够以受影响者能理解的方式被解释。
但需要澄清的是,“透明”不等于公开一切。真正的透明是“按需披露”——只披露受影响方为了理解与质疑决策所需的信息,同时保护商业机密、安全实现与个人隐私。
为什么透明度值得专门用一个 Pattern 来审计
Pattern 说明中给出了一组极为犀利的论断:“不透明 + 权力 = 强制的伪装”(Opacity combined with power is coercion's favorite disguise)。当掌握权力的一方对弱势一方保持不透明时,会产生三类连锁后果:
- “同意”失去意义——你无法同意一件你不理解的事;
- 问责无从谈起——你无法挑战一个你看不见的东西;
- 纠错机制失灵——错误隐藏在复杂性背后,无人能修正。
该 Pattern 的起源带有一定的实验色彩:据其说明文档记载,它来自对 Ultimate Law(终极法则)伦理框架的跨模型评估——2026 年共有 19 个模型(来自 10+ 组织)参与评估,其中 5+ 个模型一致指出“透明度”是该框架缺失的第一号原则,并提议增补为第 8 条原则:“每一个影响他人的决策,都必须能以受影响方理解的方式解释。” 与它同源配套的 Pattern 还包括仓库中的 audit_consent(审计同意是否真实)与 ultimate_law_safety(无自愿受害者最小边界约束)。本 Pattern 补上的是这样一块拼图:即便系统技术上“非强制、基于同意”,只要它足够不透明,同意的意义就会被架空——透明度正是让“同意”与“问责”从理论落到现实的机制。
五维透明度框架(核心骨架)
README 将透明度拆解为五个可独立检验的维度,每个维度对应一个需要回答的关键问题:
| 维度 | 关键问题 |
|---|---|
| 决策透明 Decision | 受影响方能否看到决策是如何做出的? |
| 算法透明 Algorithmic | 系统行为能否用平实的语言解释? |
| 财务透明 Financial | 成本、费用与资金流向是否可见? |
| 治理透明 Governance | 规则是否在生效前就可见? |
| 数据透明 Data | 人们是否知道自己被收集了什么数据、数据如何被使用? |
system.md 进一步为每个维度给出了更细的可审计子问题,这套子问题正是审计时逐条检查的检查表(checklist):
- 决策透明:决策过程对受影响方可见吗?决策标准是否被明确陈述且可检验?受影响方能预测决策会如何做出吗?例外与推翻(override)情况是否可见?
- 算法透明:系统行为能否用非技术语言解释?输入、权重与输出是否可理解?受影响方能否理解某个特定结果为何发生?是否存在“解释权”(right to explanation)?
- 财务透明:成本、费用与收入流是否可见?定价机制可否解释?是否存在未披露的隐性成本或交叉补贴?受影响方能核实自己是否被公平对待吗?
- 治理透明:规则及其变更是否在生效前可见?规则制定过程是否对被治理者开放?执法行为及其理由是否公开?被治理者能否通过可见的流程挑战决策?
- 数据透明:人们是否知道哪些数据被收集?是否知道数据如何被使用、共享和留存?能否访问、更正或删除自己的数据?数据泄露是否被及时披露?
实操用法:在 Fabric 中运行一次透明度审计
该 Pattern 的使用方式和 Fabric 其他 Pattern 完全一致——通过 -p(pattern 名称)参数指定。在安装并配置好 Fabric(含默认模型设置)后,可以直接把待审计对象的描述通过标准输入(stdin)喂给它,以下命令示例均直接取自 README:
# 审计一个 AI 系统:判断其决策是否可解释
echo "GPT-4 determines loan eligibility" | fabric -p audit_transparency
# 审计一项政策:评估自动化的内容审核决策
echo "Content moderation decisions are made by automated systems" | fabric -p audit_transparency
# 检查一份合约
cat employment_contract.txt | fabric -p audit_transparency
# 审计治理规则
echo "Platform rules can change at any time without notice" | fabric -p audit_transparency
Pattern 在仓库中的组织与加载机制
从源码结构看,这类 Pattern 的存放与加载遵循一套约定。每个 Pattern 是一个目录,其中核心提示词文件固定命名为 system.md:
- 仓库中已内置大量 Pattern 目录(如
audit_transparency、audit_consent、ultimate_law_safety等),其默认系统提示词文件名为system.md,该约定在 internal/plugins/db/fsdb/db.go 中通过SystemPatternFile: "system.md"定义; - 加载时,internal/plugins/db/fsdb/patterns.go 会拼出
data/patterns/<pattern名>/system.md这一路径并读取文件内容作为交给 LLM 的系统提示词; - 若
.env中配置了自定义 Pattern 目录(CustomPatternsDir),则自定义同名 Pattern 优先于内置 Pattern,加载逻辑见 patterns.go,这允许你 fork 或增强audit_transparency后用自己的版本覆盖默认行为; - Pattern 还支持
{{变量}}占位符与{{input}}输入注入,整个“模板变量解析 → 输入注入”过程由 GetApplyVariables 完成,而初始克隆/更新 Patterns 目录的逻辑在 internal/tools/patterns_loader.go。
换句话说,fabric -p audit_transparency 的完整调用链大致是:解析 -p 参数 → 在 Patterns 存储中找到 audit_transparency → 读取其 system.md → 将模板变量与你的 stdin 输入注入提示词 → 交给配置好的默认模型生成审计报告。因此你可以随时查看 data/patterns/audit_transparency/system.md 来精确了解模型“被要求做什么”。
8 步审计流程:从识别对象到系统级评估
system.md 为审计过程规定了一条可复现的操作流水线,每步都对应一个独立的判断动作:
- 识别决策或系统:要审计什么?谁做决策?谁受影响?
- 绘制不透明地图(Map the opacity):信息在何处被隐藏、模糊或不可获取?这种不透明是有意的还是偶然的?
- 测试可解释性:决策逻辑能否用一段非专家能懂的段落陈述?如果不能,为什么不能?
- 测试可获取性:信息是否“存在但被埋没”(如深埋在法律文书、技术规范里)?它是否以受影响方能使用的语言和格式呈现?
- 测试权力对齐:不透明是否让有权势的一方获益?如果双方角色互换,强势方是否愿意接受同样的不透明?
- 测试正当性:不透明是否有正当理由?合法的理由包括:安全(针对具体威胁而非泛泛而谈)、真正的复杂性(并附有可理解的摘要)、他人隐私(而非机构决策的隐私)。
- 测试问责:若决策出错,是否存在可见的纠错机制?受影响方能触发复审吗?
- 评估累积性不透明:单次决策可能微不足道,但系统性不透明会叠加放大。整个系统对其治理对象而言是否仍然可理解?
结构化输出:一份可复用的审计报告模板
与多数审计类 Pattern 一样,audit_transparency 不仅要求模型“想一想”,更要求它输出固定结构的报告,便于人读、归档与对比。其输出模板(出自 system.md)分为如下板块:
① SYSTEM/DECISION ANALYZED——一句话说明被审计对象是什么。
② STAKEHOLDER MAP(干系人地图):以表格列出各方角色、信息获取程度与权力层级,例如:
| Party | Role | Information Access | Power Level |
|---|---|---|---|
| [party] | Decision maker / Affected / Observer | Full / Partial / None | High / Medium / Low |
③ TRANSPARENCY AUDIT(五维逐项审计):每个维度给出 [Yes/No/Partial] 判定并附具体证据,例如算法透明维度包括:
- Explainable in plain language?(能否用平实语言解释)
- Right to explanation exists?(是否存在解释权)
- Evidence: [specifics]
④ OPACITY ANALYSIS(不透明点分析表):
| Opacity Found | Justified? | Who Benefits? | Who is Harmed? |
|---|---|---|---|
| [description] | [Yes: reason / No] | [party] | [party] |
⑤ THE REVERSAL TEST(角色反转测试)——这是全篇最锋利的判断工具,README 与 system.md 均引用了同一句话:
“Would the decision-maker accept this level of opacity if they were the affected party?”(如果决策者自己是受影响方,他能否接受这种程度的不透明?)
⑥ EXPLAINABILITY CHECK:尝试用一段非专家能懂的段落解释该系统,并判定 Success? 为 Yes / Partially / No — the complexity is genuine / No — the complexity serves opacity 之一——注意后两种“No”被刻意区分,因为真正的复杂与用来掩盖的复杂在伦理上截然不同。
⑦ TRANSPARENCY VERDICT(最终判定):在五级量表上定级——TRANSPARENT(透明)/ MOSTLY TRANSPARENT(大体透明)/ PARTIALLY OPAQUE(部分不透明)/ SIGNIFICANTLY OPAQUE(严重不透明)/ DELIBERATELY OBSCURED(刻意掩盖)。
⑧ RECOMMENDATIONS:在不损害正当利益(安全、隐私、竞争优势)的前提下,如何让系统更透明。
判定分级的三类典型案例
为了校准输出质量,system.md 内置了三类对照案例,可以作为审计判定的“校准基准”:
- Example 1:刻意掩盖(Deliberately Obscured)——信用评分算法。它影响每个人的金融准入,但评分标准专有、无解释权,受影响方既无法预测也无法质疑分数。判定:
DELIBERATELY OBSCURED——不透明利于评分者、损害被评分者。 - Example 2:大体透明(Mostly Transparent)——开源软件项目。代码公开、决策在公开论坛进行,但治理结构非正式,关键决策偶尔在私聊频道发生。判定:
MOSTLY TRANSPARENT——在开放系统里存在轻微治理不透明。 - Example 3:有正当理由的不透明(Justified Opacity)——安全漏洞披露。在补丁就绪前临时隐藏完整细节以防被利用。判定:
TRANSPARENT加有时限的正当不透明——具体的安全理由、有时限、且最终有利于受影响方。
这三例恰好演示了文章反复强调的边界:真正的不透明判定,永远要结合“谁受益、谁受害、理由是否具体、是否有时限”来判断,而非一刀切。
边界、限制与可证伪性(IMPORTANT NOTES)
system.md 的最后一部分专门划定了该 Pattern 自身的伦理边界与适用限制,理解这些能避免误用:
- 透明度不要求揭示一切,只要求揭示受影响方理解与挑战决策所需的部分;
- “太复杂说不清”不是万能借口:如果一个系统复杂到没有任何受影响方能理解,这本身就是需要标记的问题;
- 透明是“不对称”的:机构决策应当透明,个人私密信息应当受保护——二者并不矛盾;
- 该框架是可证伪的(falsifiable):如果透明度要求让系统无法运转、或确实危害了真正的安全,那么要求本身应当被调整——这与
ultimate_law_safety所强调的“错误不是恶,拒绝改正才是”在精神上一脉相承。
这一“可证伪”属性在 Fabric 的审计类 Pattern 族中具有共性,也意味着你完全可以按需修改 system.md 来强化某一维度(例如补充行业特定法规的披露要求),再以自定义 Pattern 方式覆盖内置版本。
小结
audit_transparency 的价值在于把抽象的“透明”拆解成五个可检验的维度、八个可执行的操作步骤、一套固定结构的报告模板和一个最终五级判定,使其可以交给任何主流 LLM 稳定复现,也让人与 AI 对“这个系统到底透不透明”的讨论有了共同语言。在 Fabric 生态中,它与 audit_consent、ultimate_law_safety 共同构成一套“权力制衡”的审计工具箱——当你要上线一个会做出影响他人决策的 AI 系统、要审查一份复杂政策、或要评估一项平台治理规则之前,先跑一遍 echo "..." | fabric -p audit_transparency,用角色反转测试问一句“如果我是受影响方,我能理解、能质疑这一切吗”,往往能比任何合规检查表更早暴露问题。
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证件照制作算法。Python07
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