外观
16 · 设计公理
Why not “perfect”
用户问过一个直击灵魂的问题:「我们的自动审批功能存在完美的代码吗?」。答案是:不存在,也不该追求。三个原理性理由 ——
- 语义鸿沟:代码只能做语法/文本层判断,真实危害在语义层(symlink 逃逸、命令别名、语义含糊的命令)。静态规则再细也摸不到语义。
- 评审者本身是 LLM:会被提示注入、会犯错、会退化 —— 所以有熔断、有 reasoning-blind、有「高危永远人的事」。
- fail-open / fail-closed 是本质权衡:不是可以消除的缺陷,是两个方向的选择。
所以自动审批追求的是「fail-closed 正确性」而非完美:不确定就拒绝/问人 误拒远好于误放 决议可溯源可审计 每个保护边界都有反向契约测试。
TIP
🛡️ 一句话总结:小事快快过,中事边问边看 LLM,大事一定找人; 拿不准就说「不」;谁决定的记下谁;干过的全都写进审计。