---
order: 23
date: 2026-08-05
summary: ——给机器立的规矩，只有会失败的那部分算数
---

# 断言与劝诫

**——给机器立的规矩，只有会失败的那部分算数**

每个律师都见过这样两种条款。一条写：“乙方应积极配合甲方开展相关工作。”另一条写：“乙方逾期交付的，每日按合同总价万分之五支付违约金。”表面上都是义务，但律师一眼就能分辨哪条是真的——**没有违约责任的义务条款，是许愿。** 前一条违反了什么都不会发生，它存在的意义是让双方在签字时感觉良好；后一条违反了会掉钱，所以它才配叫规矩。

这个区分是法律最古老的常识之一。奥斯丁给法律下的定义干脆就是“以制裁为后盾的命令”——没有制裁跟着的不是法律，是道德劝告。程序法里甚至有一对现成的术语：**训示期间**与**不变期间**。前者过了没有后果，法官迟延宣判并不导致判决无效；后者过了权利消灭，上诉期一过，再好的理由也救不回来。霍姆斯的坏人视角把这件事说到了底：**一条规则的真实含义，是违反它时会发生什么。违反之后什么都不发生的规则，含义为零。**

现在把这双眼睛转向一个新行当：给 AI 立规矩。

## Prompt 是弱劝诫

今天指挥一个 AI 工作流的标准方式，是在提示词里写规则：“必须引用原文，不得杜撰”“每个要件都要有对应事实”“不确定时必须说明”。字字铿锵，句句“必须”。但用法律人的眼光看，这些全是第一种条款——**写在 prompt 里的规则，违反了什么都不会发生。**

它弱在三个地方。

第一，**概率合规**。模型不是执行指令，模型是在指令的影响下采样。一条“必须”改变的是输出的分布——把概率推向合规的方向——而不是设定边界。它大多数时候被遵守，而这恰恰是最危险的性质：大多数时候。

第二，**静默失败**。合同条款被违反，至少对方会发现；prompt 被违反，没有任何声音。一条杜撰的引文和一条真实的引文，在文面上一样流畅、一样自信。劝诫最阴险的地方不是会被违反，而是**违反了没人知道**。

第三，**自报无效**。你可以在 prompt 里追加一条：“完成后自查以上要求是否满足。”模型会答复：已检查，全部满足。那不是检查报告，那是从分布里采样出来的安慰话——它说“检查过了”和它杜撰引文，用的是同一套生成机制。用劝诫去核验劝诫，等于让被告给自己写无罪判决。

## 断言：会失败的规矩

工程界对付这个问题的办法，和合同法的办法同构：给规矩配上后果。这类会失败的规矩，程序员叫它**断言**——写成代码的检查，违反即报错。它的全部尊严在于两点：**失败要响，失败要挡路**——检查不清零，成果不出门。

一条规则能不能从劝诫升格为断言，取决于它能不能被机械地验证。而能验证的，比想象中多得多。

“必须引用原文”可以升格：把原始材料落成文本，每条事实主张附上逐字引文，几行代码做子串比对——引文在材料里找不到，红灯，流程停下。杜撰引文这个大模型最著名的恶习，在这道检查面前物理性失效。“每个要件都要有对应事实”可以升格：大前提列出的构成要件逐一核对有无对应的涵摄，少一个即失败——“以偏概全”从文风问题变成可检出的结构缺陷。“不确定时必须说明”也可以升格：存在没有坐实的要件时，结论必须是条件式语气，确定式直接拦下——**依据变薄而语气未降，不是措辞瑕疵，是机械可识别的红灯。**

甚至“过程”也可以断言。要求推理在事实与规范之间往返迭代（《往返的目光》），怎么知道它真的往返过，而不是一遍写完、再补一句“经反复推敲”？办法是：每一轮把状态快照落盘，由脚本比对相邻两轮的差异——收敛不收敛，不听它说，重新算。**复算，不询问**——这是断言与劝诫在方法上的分水岭。

断言还有一个劝诫永远给不了的性质：它的失败会回流。报错信息进入下一轮生成，模型在“这条引文脱靶”的具体指控下重写——这正是本系列写过的考场效应（《写不下去的判决书》《可以被弹劾的结论》），只不过这一次，坐在考场里的是机器。知道终点有一道不讲情面的检查在等，和知道终点没人检查，生成出来的东西是不一样的。

## 三级阶梯

劝诫和断言之上，其实还有第三级。合同法里比违约责任更硬的是**交易结构**：怕对方挪用资金，与其写“不得挪用”（劝诫），或写“挪用即赔”（断言），不如把钱放进共管账户——挪用在结构上不可能发生。工程里的对应物是类型系统与架构：最好的检查，是让非法状态根本无法表示。

于是两边各有一架三级阶梯：许愿的条款——会失败的条款——违约不可能的结构；注释——断言——类型。每上一级，规矩就少依赖一分自觉、多依赖一分必然。而 AI 时代的讽刺在于：一个握着全部三级工具的行业，管理史上最不可靠的执行者，用的却主要是第一级。所谓“提示词工程”，按合同法的标准衡量，大部分内容是在精心措辞一份没有违约责任的合同。

纪律因此只有一句：**凡是能下沉的规则，全部下沉**——能做进结构的做进结构，能写成断言的写成断言，prompt 里只留真正需要判断、无法机械核验的东西。留下的不是残余，是精华：劝诫的正当用途本来就是引导判断，而不是保证行为。

## 断言兜不住的

最后要说清边界，否则这套办法会变成新的迷信。

迪杰斯特拉的名言在这里原样适用：测试只能证明缺陷存在，不能证明缺陷不存在。断言验得出引文脱靶，验不出定性错误；验得出要件缺漏，验不出那条逐字命中的事实其实答非所问；验得出往返确实发生过，验不出目光落下去的那一刻看没看对。**断言兜的是下限：它保证目光走过了每一站、每一步都钩住了实物——至于看对了没有，仍然是判断，而判断该归谁，《断点》已经说过了。**

但兜住下限本身就是大事。法律人不会因为违约金条款保证不了对方真心履约，就退回去写“应积极配合”。

给机器立法和给人立法，原来是同一门手艺：写“应当”容易，配上后果才算数。写在 prompt 里的是道德期许，写进校验器的才是法律——**这件事，法律人本来就该是最懂的人。**
