为什么指挥 AI 时你需要防护栏
AI 并不知道你的应用本该做什么。它只是在向看起来合理的模式靠拢。这意味着它会乐此不疲地:
- 为了"修复报错"而删掉一个它不理解的检查
- 在你只要求它改一个文件时,却重构了三个文件
- 引入一个 happy path 不会暴露出来的隐蔽 bug
- 在它根本没运行过代码的情况下,自信地告诉你已经做完了
防护栏把"相信我"变成"拿出证据"。目标是构建一个让东西很难被意外搞坏的系统,这样你就能一直说"先试试看",而不必屏着呼吸。
把这些防护栏想象成一条流水线,每一处改动在抵达真实用户之前都必须穿过它。每道关卡都廉价而自动,其中任何一道都能把一个坏改动当场拦下:
代码变更
│
▼
┌────────┐ ┌────────┐ ┌────────┐ ┌──────────┐ ┌────────┐
│ LINT │ ▶ │ TYPES │ ▶ │ TESTS │ ▶ │ CI GATE │ ▶ │ DEPLOY │
│ 样式 │ │ 形状 │ │ 行为 │ │ 全部通过 │ │ 上线 │
└────────┘ └────────┘ └────────┘ └──────────┘ └────────┘
│ │ │ │
▼ ▼ ▼ ▼
✗ FAIL ────────────────────────────▶ 阻止合并
(在到达用户之前修复)
这件事在 AI 身上比在人类队友身上更重要,有一个更深层的原因。一个删掉校验检查的人类,通常知道自己在冒险,并且能感到那份分量。AI 什么也感觉不到。它会移除一个守卫、重写一个文件、然后报告成功——无论这个改动是绝妙还是灾难性的,都用同样欢快的语气。你读不出它的肢体语言,因为它根本没有肢体语言。防护栏就是它的肢体语言——它是关于这份工作是否真正稳妥,你能得到的唯一诚实信号。