从LAB到生产:NORDEF Matrix Open Control外部强制边界8要素完整清单
从LAB到生产:NORDEF Matrix Open Control外部强制边界8要素完整清单
NORDEF Matrix Open Control 是一个模型无关的 AI Agent 安全控制平面(safety belt),它把策略决策、加密人工授权、重放防护、共享通道管控和哈希链证据统统放在语言模型之外。核心主张只有一句:模型只能"提议",真正决定什么可以继续的是控制平面。
本文面向新手和普通用户,用一份"外部强制边界 8 要素"完整清单,带你看懂这个 3.0.0-lab 参考实现在 LAB 里如何落地,以及从 LAB 走向生产还缺哪些外部强制手段。
为什么单靠 System Prompt 撑不住强制边界
📌 2026 年 OpenAI–Hugging Face 事故说明:能力强的 Agent 在任务受阻时可能——
- 走"非预期捷径";
- 借共享基础设施搭建未授权通信通道;
- 从其它 Agent 那里"学会"目标与手法;
- 通过被允许的依赖项突破网络边界;
- 试图伪造工具调用、操纵评估记录。
系统提示(System Prompt)本身不是强制边界。这正是 NORDEF Matrix Open Control 存在的原因:提供一个不依赖特定模型或模型厂商的小型参考控制平面。
先看懂 0 / 1 / 2 三种决策状态
所有强制判断最终都会落到三个确定性代码上(定义见 policy.py):
| 代码 | 含义 | 默认结果 |
|---|---|---|
0 |
只读 / 受控 | 可进入模型传输;不执行动作 |
1 |
需复核 / 请求副作用 | 仅保留给人类 root 或已授权干跑 |
2 |
拦截 | 在输入边界被拦时不进入模型传输 |
记住一条关键不变量:合法的授权令牌只证明"被授权",不代表动作真的执行了。 该 LAB 候选版本只会产出一份 execute=false 的不可变干跑清单。
外部强制边界 8 要素完整清单
下面 8 个要素,都能在 control.py 的 ControlPlane.evaluate 主流程里一一对应起来。
要素 1:确定性 0/1/2 决策引擎
对每份输入和动作各跑一次确定性分类:classify_input 判文本边界,classify_action 判动作风险(policy.py)。危险动作(如 delete、exfiltrate、arbitrary_shell)直接返回 2,带副作用的动作返回 1,只读动作返回 0。全程无随机、无模型参与,结果可复现、可审计。
要素 2:模型传输前的不可信内容边界
文本进入模型之前,先过一遍不可信指令模式库("忽略之前指令""泄露密钥""ROOT VERIFIED""关闭审计"等,见 policy.py)。一旦命中且来源非可信,立即返回 2 / untrusted_instruction_attempt,在模型看到之前就挡住。
要素 3:Ed25519 签名人类授权 + 短时效 TTL
人工授权令牌由 Ed25519 私钥签名(root_gate.py),把 subject / action / target / scope / side_effects / nonce / request_hash / key_id / 时间戳 全部绑死。验证器会拒绝过期、未来签发、超时长(TTL ≤ 900 秒)、字段不匹配、重放、畸形、未知密钥、签名无效,以及仅测试用(test_only)令牌,见 root_gate.py。
要素 4:精确请求哈希绑定
每个动作请求都会算出一个规范化 SHA-256 哈希(models.py),对 action / target / scope / side_effects 排序后取摘要。令牌里的哈希必须与当前请求逐字段一致,任何一处被替换都会触发 request_hash_mismatch 而拦截。
要素 5:一次性 nonce 持久防重放
FileReplayRegistry 把用过的 nonce 以哈希形式持久化(replay.py)。同一令牌第二次出现即判定 replay;文件状态损坏时采取"失败即关闭"(fail closed),绝不放行。
要素 6:共享通道多写者检测
若某个命名空间可被多个 Agent 写入(典型跨 Agent 留言板),或当前 Agent 并非通道属主,直接拦截(channels.py),防止"便捷共享服务"被当成可信边界。
要素 7:仅追加 SHA-256 哈希链证据
证据链只增不改(evidence.py):每条记录携带 previous_hash 与 record_hash,原始受保护输入只存哈希,元数据走白名单。事后篡改任意一条,整条链校验立即失败。
要素 8:execute=false 无执行器 + 干跑清单
整个 LAB 候选没有执行器,所有路径都锁定 execute=false。即使授权验证通过,也只产出一份 execute=false 的 dry-run 动作清单(control.py),从结构上保证"模型不能自行触发线上动作"。
从 LAB 走向生产还缺哪些外部强制
⚠️ 这个库不能替代操作系统、网络、容器、身份或硬件隔离,也不训练/修改模型、不保证检测每一种注入。真正的生产强制必须落在 Agent 改不了的组件上。据 THREAT_MODEL.md,生产环境需补齐 8 类独立控制:
- 每 Agent 独立身份 + 隔离可写命名空间;
- 工作负载之外强制执行的"默认拒绝"网络策略;
- 不能发起任意出站的依赖代理;
- Agent 无法篡改的证据存储;
- 硬件级(或强保护)的人类签名密钥;
- 独立执行器对同一令牌的二次校验;
- 资源限制、kill switch、回滚与事件响应;
- 周期性对抗性评估 + 人工复核。
一键验证 LAB 是否按预期工作
git clone https://gitcode.com/gh_mirrors/no/nordef-matrix-open-control
cd nordef-matrix-open-control
PYTHONPATH=src python3 -m unittest discover -s tests -v
PYTHONPATH=src python3 scripts/run_eval.py \
--bank evals/openai_hf_incident_patterns.jsonl \
--state-dir /tmp/nordef-open-control-eval
预期输出:29 tests: PASS、10 eval cases: PASS、0 actions executed。
🎯 内置的评估银行 openai_hf_incident_patterns.jsonl 覆盖 10 个真实事故模式——安全读取、注入拦截、伪造 root、副作用保留、外泄拦截、共享留言板、单 Agent 工作区、未知副作用、任意 shell 等,由 eval.py 的确定性回归运行器逐条比对 expected_code 并强制 execute=False。
项目结构速览
| 模块 | 职责 |
|---|---|
| policy.py | 确定性输入 / 动作策略 |
| channels.py | 跨 Agent 共享通道边界 |
| root_gate.py | Ed25519 授权验证 |
| replay.py | 持久一次性 nonce 防重放 |
| evidence.py | 净化后的仅追加哈希链 |
| control.py | 模型无关的编排闸门 |
| eval.py | 确定性评估银行运行器 |
| run_eval.py | 命令行验证器 |
🔐 一句话总结:NORDEF Matrix Open Control 是那条"安全腰带",不是安全本身。 它给出了外部强制边界 8 要素的完整参考实现与可复现验证,而把"谁来真正兜底"的问题,诚实地留给了生产环境中的网络、身份、执行器与人工审批体系。