一个引擎,两种角色

Skill 是指针,知识在后端规则库。生产时蒸馏知识,运行时引擎消费——
两条流,同一个 rule_library_id 连接一切。

D 蒸馏逻辑 E 引擎逻辑
D — Distillation / 蒸馏

把专家知识变成结构化规则库

蒸馏是一次性的知识生产过程。把法规条文、专家方法论、个人准则翻译成四个结构化组件,存入 PostgreSQL 规则库。这个过程需要"方法论翻译者"——但和合规审计把法规翻译成检查项是同一种能力。

核心公式:专家知识 → [蒸馏:结构化提取] → 规则库记录。蒸馏产出的是数据,不是代码。

输入 → 处理 → 输出

输入

法规条文 / 行业标准
专家方法论 / 个人准则
团队规范 / 纪律体系

处理:结构化提取

① 拆解 check_items[]
② 设定 scoring{} 权重
③ 设计 report_template
④ 标注 metadata

输出:规则库记录

rule_library_id
check_items: [{id, title, criteria}]
scoring: {method, weights, threshold}
metadata: {type, version, author}

蒸馏产出的四个组件

组件作用示例(CCPA)示例(健身纪律)
check_items[] 逐项检查的依据 20 项法定要求 15 项每日打卡项
scoring{} 评分逻辑配置 weighted_pass_rate adherence_rate
report_template 报告生成模板 compliance_report.html discipline_report.html
metadata 版本/作者/类型 type=compliance, v1.0 type=discipline, v1.0

关键洞察:蒸馏无法完全自动化——需要"方法论翻译者"把隐性知识提取成结构化清单。但这正是我们的核心能力:合规审计就是把法规翻译成检查项,和把专家直觉翻译成检查项,是同一种结构化提取能力

// 蒸馏产出 = rule_libraries 表一条记录 { "rule_library_id": "ccpa-v1", "type": "compliance", // compliance | discipline | expert "check_items": [ { "id": "1798.100", "title": "消费者知情权", "criteria": "..." }, { "id": "1798.105", "title": "数据删除权", "criteria": "..." } // ... 20 items ], "scoring": { "method": "weighted_pass_rate", "threshold": 80 }, "report_template": "compliance_report.html" }

加载规则库,逐项检查,生成报告

引擎是每次知识消费的过程。只需两个输入:用户回答 + rule_library_id。引擎代码(加载→检查→评分→报告)对所有规则库完全相同,零改动。

核心公式:用户输入 + rule_library_id → [引擎:加载→检查→评分→报告] → 检查报告 + 审计记录

输入 → 处理 → 输出

输入

用户回答(对话/问卷/数据)
+ rule_library_id

例:ccpa-v1 / buffett-v1

处理:引擎执行

① 加载规则库
② 逐项检查(AI/规则匹配)
③ 评分计算
④ 报告生成

输出

检查报告(HTML/PDF)
合规分数 / 依从率
修复建议 + 行动项
审计记录(audit_log)

引擎执行四步

步骤动作输入输出
1. 加载 从 rule_libraries 表读取规则库 rule_library_id check_items[] + scoring{} + template
2. 检查 逐项比对用户回答与 check_items 用户回答 + check_items[].criteria 每项 pass/fail/partial + evidence
3. 评分 按 scoring.method 计算总分 各项结果 + scoring.weights 分数(0-100)+ 等级
4. 报告 用 report_template 渲染输出 检查结果 + 评分 + 模板 HTML 报告 + 行动项 + audit_log
// 引擎统一 API(规划中) POST /api/v1/engine/analyze { "rule_library_id": "ccpa-v1", // 唯一变量 "user_answers": { ... }, "format": "html" } // 换个 Skill?只改 rule_library_id: // "ccpa-v1" → CCPA 合规审计 // "gdpr-v1" → GDPR 合规审计 // "buffett-v1" → 巴菲特投资纪律 // "zeng-v1" → 曾国藩日课十二条 // 引擎代码不变。
D + E 连接

核心不变式

D 产出的每个组件,就是 E 消费的每个输入。两条流通过 rule_library_id 永久连接。

D 蒸馏产出E 引擎消费
rule_library_id加载规则库的 key
check_items[]逐项检查的依据
scoring{}评分计算的配置
report_template报告生成的模板

引擎代码零改动:compliance / discipline / expert 三类规则库的差异只在数据内容(check_items 数量、evidence_type、scoring method、branding),不在代码逻辑。从合规到纪律的扩展,边际技术成本几乎为零,但市场放大 3 倍以上。

引擎不变,内容不同

不同 Skill 的唯一区别就是传入的 rule_library_id 不同。以下三个例子共享完全相同的引擎代码路径。

维度合规检查通用清单专家方法论
rule_library_id ccpa-v1 fitness-daily-v1 buffett-v1
type compliance discipline expert
check_items 20 项法定要求 15 项每日打卡 12 项投资原则
evidence_type 文档/截图 日志/打卡 决策记录
scoring weighted_pass_rate adherence_rate principle_match
报告 合规审计报告 通用追踪报告 方法论对标报告
引擎代码 完全相同
当前实现 vs 泛化目标

从 regulations 到 rule_libraries

当前服务端的 regulations 表(71 条)本质上已经是规则库,只是只支持 compliance 类型。泛化最小路径如下。

新建 rule_libraries 表

从 regulations 泛化,加 type 字段

表结构:id, rule_library_id (unique), type, check_items (JSON), scoring (JSON), report_template, metadata

迁移现有 71 条数据

CCPA 20 + GDPR 26 + PIPL 25

从 regulations 表导入,type 统一标为 compliance

新增统一引擎端点

POST /api/v1/engine/analyze

Skill 改调新端点,rule_library_id 替代 jurisdiction 参数

新增引擎的 L2 测试

扩展测试套件

测试不同 type 的规则库是否都能正确加载、检查、评分、报告

这是一个不大的重构——核心检查→评分→报告逻辑在 Skill 端已实现,只需迁移到服务端或保持分工。引擎已有 81 项自动化测试覆盖,重构后可立即验证。