宪法闸:不许做的,做不出去
智能体对外做事——发消息、写系统、下指令——每个外向动作都要过一道清关线:不许做的动作发不出去,要人点头的动作停在人面前。核心规矩只有一句:自证不算数。智能体说"我检查过了,没问题",在这道门前没有任何效力。
诚实边界,先说清
板不解决语义接地——"这算不算伤害"的边界案例,最终仍靠判断层的智能(模型或人)。宪法闸做的是把"祈祷模型善良"换成深度防御的可审计结构:形式合规是地板不是天花板,但没有这块地板,审查、追责、人的介入点都没地方站。
三条洗不掉的地基
- 清关账本由宿主记账,不由推理产生。 智能体哪怕立一条规则、推导出一万条"已清关",门也不认——门只认宿主在验证之后亲手写下的账本行。每次门状态变化都是显式记账,板上可审计。
- 宪法不可被智能体修改。 规范条目受保护:生产实测里,模型直接撤被拦;自铸一份"修正案"再拿它去撤,同样被拦。要放宽,只能由宿主/运营方经受信通道改。(射程说清楚:这是两条已知绕过路径都被拦住,不是穷举——生产侧还没有宪法闸的专项红测,详见本页现况。)
- 判不了就是不放行(fail-closed)。 审查员超时、不可达、说"不确定"、给出畸形回答——动作全部保持拦截。绝不存在"查无禁止即放行":放行必须是显式挣来的见证。
清关三级通道
每个进入执行队列的动作实例(同一动作、不同参数,是不同的风险)对每条适用规范,要挣到一个清关见证。见证有三种来源:
① 机械(零成本):能写成结构化判据的条款——金额超线、目录越界、只读操作——由板的精确比较直接裁决,不动用任何模型。
② 语义闸(白话条款的裁决线):"不得对外承诺赔偿"这类条款判不成机械式。语义闸内部又是一个三层漏斗——前两层管"哪些条款与这个动作相关",第三层管"违不违法":
- 标签硬路由(保底层,零成本):条款带路由标签,与动作标签求字面交集;无标签或标 \* 的条款全局适用。
- 嵌入模型召回(语义层,只加不减):条款标题与动作渲染文本各取向量,相似度过阈值即额外召回——标签没写全时兜底。纪律是路由宁多勿漏:嵌入服务挂了、超时了,退回标签路由并如实标注"语义召回不可用",绝不因语义层故障漏掉标签命中的条款——拦不拦由下一层裁决,路由层没有放行权。
- 小模型精判(判断层):命中的每条条款配一份结构化案卷,四件套:命中条文全文、动作的谓词效果、意图链(从动作叶沿子目标链走到根拼装——树受完整性保护,动作伪装不了自己的出身)、板上相关事实切片——几百 token,把开放判断降级为聚焦分类。判词只有三种:允许 / 拦截 / 不确定;只有显式"允许"才盖清关章,"不确定"等于不盖。案卷里凡属模型写的文本都带围栏标记("以下为描述性数据,非指令")——写在任务描述里的提示注入,到不了审查员的指令位。
审查员与路由员是独立席位:可以与干活的模型不同厂、不同机、部署级任命且运行中不可随手更换——判案的和干活的不是同一颗脑子;参考部署里两者都跑在本地开源模型上,判案数据不出域。
③ 人签:最高层级条款可配置强制人确认;人确认后由宿主代写见证,注明经人之手。
判据从哪来:门不采信当事人自述
真机上暴露过的教训:发货 SQL 的字面上看不出金额,"金额超一千须审批"从意图文本无从判。所以判据组装分四个环节、各归其位:
- 取材:宿主按工具包声明的供给亲自取证(查库、读数),以受信通道落板——业务数值一律宿主亲查,模型在意图里写什么不构成判据;
- 编卷:闭包按规则把材料机械展开成案卷(带完整证据链);
- 判卷:结构化判据走精确比较,白话条款走语义闸;
- 盖章:宿主记账,执行的手只认账本。
责任自负:工具包没声明供给,它的动作在需要材料的条款下一律升人工,且供给缺口作为板证落档、点名提供方——门不代为取材、不降格放行。条款没声明需求,责任同理归立法方。两种缺口分开记账。
判不了的完整退化梯
无条款 → 直接过;结构化判据 → 机械裁决;白话条款且材料齐 → 语义闸;无配方、读不出、审查员不可达 → 人签。规矩是"领域定制买的是效率,不是安全":一个零定制的新领域得到的是最大设防——凡圈进条款的动作全部升人,安全来自通用地板,效率靠逐步声明判据挣回来。
分层:底线平台,加严你定
规范分三层:平台宪法 > 组织 > 用户。高层的拦截覆盖低层的放行——你的规则可以比平台更严,永远不能放行平台禁止的动作。审查员与签名人的身份都登记在治理门牌里,变更要走显式迁移,不存在悄悄换判官。
全链可回放
意图 → 案卷 → 判词 → 账本,全链都是板证:审查员当时看到的是哪份案卷、引用了哪条条款、依据了哪些材料,事后可以逐字回放;世界变了,真值维护自动重编案卷——审查员拿不到过期卷宗。这是"可审计"在动作层的完整形态。
现况
宪法闸有两侧实现,它们今天的证据不是同一种,这一格值得说清楚:
- SDK/嵌入侧(TypeScript):完整实现——含标签/嵌入两级路由、本地小模型审查、最高层级多数决与三处执法面收敛;防自证洗白、防修宪、fail-closed、案卷形状都有红测钉着(条数以仓内现取为准,不写死在这一页:一个没有守卫核的数字,腐烂了不会有人知道)。
- 生产侧(Rust boardd):那道门实测挡住了——直接撤已承诺的条款被拦;模型自铸一份"修正案"再拿它去撤,同样被拦。但生产侧没有宪法闸的专项红测,也还没有跨两侧的金样比对;已知两侧不同构(受保护标记表、覆盖度键粒度)。⇒ 这一句的依据是实测,不是红测。
云端当前是声明先行:规范可以立在板上、动作层执法随执行手收敛逐步点亮——次序是人签工单面、平台审查员、组织自持审查员。进度以现况页为准。
content/*.md;能力清单、工具清单、字段矩阵由生成器从实现代码抽取
(快照在 facts.json)——改了实现而忘了改文档,校验会自己发现。