AI 合规不是一个产品功能,也不是所有团队通用的清单。它是一套带版本的决策系统,把具体的法域、角色、用途、条款、日期和过渡规则连接到工程控制与可复核证据。本文围绕 EU AI Act、中国生成合成内容标识规则和自愿性的 NIST AI RMF,说明如何建设这层控制平面。
如果需要 EU 高风险系统的深度实施清单,请阅读 EU AI Act 开发者安全清单;如果需要 Article 6 与高风险控制设计,请阅读 高风险系统工程指南。本文只承接跨法域适用性、证据契约与变更管理,避免三个页面竞争同一意图。
核心要点
- 严格区分有约束力的法律、监管指南、自愿框架、工程控制与证据产物。
- 使用当前分阶段时间线:Article 50 自 2026 年 8 月 2 日适用,Annex III 高风险规则自 2027 年 12 月 2 日适用,Annex I 产品嵌入式高风险规则自 2028 年 8 月 2 日适用。
- 不要把机器可读标记、可见标签、来源元数据和数字水印当成同一种机制。
- 中国规则需要先判断适用范围和角色;适用场景下的元数据义务不等于数字水印普遍强制。
- NIST AI RMF 1.0 是正在修订的自愿框架,是控制语言而不是法律证书。
- 法律、角色、预期用途、地域、模型、数据、工具、传播路径或事件发生变化后必须重新分类。
五个不能混为一谈的层次
| 层次 | 能证明什么 | 不能证明什么 |
|---|---|---|
| 有约束力的法律 | 特定主体和事实下的义务 | 每种架构唯一正确的实现方式 |
| 监管指南或实践守则 | 解释或被认可的合规路径 | 可以替代法律文本 |
| 自愿框架 | 风险语言和控制结构 | 法律适用性或认证 |
| 工程控制 | 实现某项要求的机制 | 该要求必然适用或已完整满足 |
| 证据产物 | 某版本在某条件下发生了什么 | 法律结论本身 |
水印检测器可以是一项控制,它的测试报告可以是证据,但两者都不能自动证明 Article 50 适用于某个具体产品,也不能证明实现方式已经充分。
先建立适用性记录
每次发布都应解决或明确升级以下字段:
| 维度 | 必须记录 |
|---|---|
| 法域 | 国家或地区、市场投放和输出使用事实 |
| 角色 | 提供者、部署者、进口商、分销商、平台或其他主体 |
| 系统 | 预期用途、影响的决定、用户、模型与工具边界 |
| 来源 | 精确法律、条款、指南、标准、修订状态与检索日期 |
| 分类 | 适用、不适用、不确定或禁止,以及完整理由 |
| 负责人 | 法律、产品、安全、数据和运营批准人 |
| 变更触发器 | 强制重新评估的事实与最长复核周期 |
不要把控制库复制进发布工单就称为适用性评估。同一个技术系统在预期用途、客户流程或运营角色变化后,可能进入不同分类。
EU AI Act:使用修订后的时间线
AI Act Service Desk 当前时间线已经纳入 Digital Omnibus 修订:
| 日期 | 官方里程碑 | 工程影响 |
|---|---|---|
| 2025 年 2 月 2 日 | 一般规定、AI 素养和禁止实践适用 | 按适用范围维护素养证据与禁止用途门禁 |
| 2025 年 8 月 2 日 | GPAI 义务与治理适用 | 区分 GPAI 提供者与下游角色 |
| 2026 年 8 月 2 日 | Article 50 透明度规则适用;适用规则开始执法 | 按场景测试提供者标记/检测与部署者披露义务 |
| 2026 年 12 月 2 日 | 新增禁止实践与 Article 50(2) 过渡安排适用 | 识别 2026 年 8 月前已投放的相关合成内容系统 |
| 2027 年 12 月 2 日 | Annex III 高风险规则适用 | 准备用途型高风险控制与证据 |
| 2028 年 8 月 2 日 | Annex I 产品嵌入式高风险规则适用 | 对齐 AI 与受监管产品的保证生命周期 |
这些日期只是计划输入,不是分类结论。每个决定都应记录当前合并文本、适用过渡规则和所依据的指南。
Article 50 不是一条通用水印规则
欧盟委员会对不同责任作了区分:
- 相关生成式 AI 系统提供者处理生成或操纵内容的机器可读标记和检测,并考虑技术可行性与公认技术水平。
- 部署者针对深度伪造内容,以及特定面向公众的重要事项文本,承担披露或标注责任。
- 透明度《实践守则》是自愿工具,而适用的 Article 50 义务属于法律要求。
因此,应分别测试 API 响应、聊天界面、下载、复制、裁剪、转码、编辑、再次发布和平台接入路径。记录机器可读标记在哪里保留、可见披露在哪里呈现、哪种转换破坏了来源链。不要宣称一份 C2PA Manifest、一个不可见信号或一个角标可以满足所有场景。
中国规则:显式标识、元数据与水印不是一回事
《人工智能生成合成内容标识办法》自 2025 年 9 月 1 日施行。其适用范围与符合算法推荐、深度合成和生成式 AI 服务相关规定情形的网络信息服务提供者相关。
| 机制 | 正式规则中的定位 | 工程测试 |
|---|---|---|
| 显式标识 | 适用场景下用户可感知的文字、声音、图形或界面提示 | 可见性、文案、位置、无障碍、导出 |
| 隐式标识 | 适用情形下写入文件元数据的规定信息 | 字段、编码、完整性、传播 |
| 数字水印 | 作为隐式标识技术之一受到鼓励 | 声明转换下的可检测性与误报控制 |
| 平台提示 | 基于元数据、用户声明、显式标识或检测痕迹 | 接入、声明、重新标注与审计链 |
官方答问明确,多媒体数字水印和文本隐式标识因技术难点或成本问题不作普遍强制要求。这个限定非常重要:元数据不等于数字水印,受到鼓励的水印也不等于所有内容必须添加“双水印”。
第九条还规定了在满足用户协议责任与依法留存日志等条件后,提供无显式标识内容的特定路径。不要把其中“不少于六个月”的记录要求泛化为所有 AI 日志。每类证据都应定义目的、访问策略、保留依据、删除行为和法律留置路径。
NIST AI RMF:映射控制,不虚构认证
NIST 当前仍发布 AI RMF 1.0,说明它正在修订,并将其定位为自愿框架;NIST AI 600-1 是生成式 AI Profile。
| 函数 | 有用产物 | 发布复核问题 |
|---|---|---|
| GOVERN | 责任图、政策登记表、例外记录 | 谁能批准、暂停或退役系统? |
| MAP | 用例、受影响群体与数据流清单 | 范围和伤害假设是否仍然成立? |
| MEASURE | 评测清单、切片、不确定性、事件指标 | 证据是否覆盖实际部署版本与环境? |
| MANAGE | 缓解、接受、升级与回滚记录 | 剩余风险是否有人负责并持续监控? |
可以把 NIST 结果映射到适用义务,但必须保持来源层次独立。“已映射 NIST”不等于“符合 EU AI Act”;当前官方框架仍是正在修订的 AI RMF 1.0。
义务—控制—证据账本
每个义务与事实组合使用一行记录:
| 字段 | 示例 |
|---|---|
source_id |
eu-ai-act:article-50-2 |
source_version |
合并文本与已通过修订标识 |
subject_and_scope |
提供者;指定输出路径;EU 市场事实 |
obligation |
机器可读标记与可检测性 |
control_id |
synthetic-output-marking-v4 |
test_id |
export-transformation-suite@sha256:... |
evidence_uri |
受限访问的不可变报告 |
decision |
通过、失败、例外或不适用 |
approved_by |
具名法律与工程负责人 |
reassess_on |
来源、模型、格式、角色或传播变化 |
以下零依赖校验器只检查发布机制,不作法律判断:
from dataclasses import dataclass
from datetime import date
ALLOWED_DECISIONS = {"pass", "fail", "exception", "not_applicable"}
@dataclass(frozen=True)
class EvidenceGate:
source_id: str
source_version: str
role: str
obligation: str
control_id: str
test_id: str
evidence_uri: str
decision: str
approved_by: tuple[str, ...]
review_due: date
def validate_gate(gate: EvidenceGate, release_date: date) -> None:
required = (
gate.source_id, gate.source_version, gate.role, gate.obligation,
gate.control_id, gate.test_id, gate.evidence_uri,
)
if any(not value.strip() for value in required):
raise ValueError("来源、范围、控制、测试与证据不能为空")
if gate.decision not in ALLOWED_DECISIONS:
raise ValueError("未知决定")
if gate.decision in {"pass", "exception"} and len(gate.approved_by) < 2:
raise ValueError("需要法律与工程双重批准")
if gate.review_due < release_date:
raise ValueError("适用性复核已过期")
gate = EvidenceGate(
source_id="eu-ai-act:article-50-2",
source_version="consolidated+digital-omnibus",
role="provider",
obligation="标记适用的合成输出",
control_id="marking-v4",
test_id="transform-suite:sha256-8f1",
evidence_uri="evidence://restricted/report-842",
decision="pass",
approved_by=("legal-owner", "engineering-owner"),
review_due=date(2026, 10, 1),
)
validate_gate(gate, release_date=date(2026, 8, 9))
print("发布证据仍在有效期内")
# 输出:发布证据仍在有效期内
生产门禁还应确认引用产物真实存在、签名或哈希匹配、批准人有权限、例外具有到期日,并且证据库实施隐私控制。
重新分类与运营控制
以下任一变化都应重新执行适用性判断和测试:
- 法律、修订、监管指南、实践守则或技术标准变化。
- 提供者、部署者、平台或合同角色变化。
- 预期用途、受影响决定、用户群或地域变化。
- 模型、Prompt、工具权限、数据集、检索源或供应商变化。
- 输出格式、导出路径、标识机制或传播平台变化。
- 事故、投诉、绕过、漂移或新识别的受影响群体。
运营证据不只要能创建,还要能删除。应维护来源到产物的血缘、租户与对象授权、隐私脱敏、保留到期、法律留置、删除传播、事件保全与回滚。防篡改日志可以保护完整性,但不能变成无限期保存 Prompt、密钥或个人数据的仓库。
发布复核
上线前至少要求:
- 每个法域和角色都有当前适用性记录。
- 引用精确条款与过渡规则,而不是只写法规名称。
- 每项义务都有负责人、控制、测试、证据与未决例外。
- 测试覆盖正常、对抗、多语言、导出、删除与故障路径。
- 具备资质的法律和领域人员独立批准。
- 明确重新评估触发器、监控信号、回滚权限与复核日期。
这套流程产生的是可辩护的工程记录,不是自动法律结论。正式文本与官方指南仍是权威来源。