🚫 反模式图鉴:AI 工程的失败名人堂
这里记录了 AI-Human 协作中最常见的失败模式。 每种模式都有命名、根因分析,以及协议中对应的反制规则。
反模式 #1:「雪崩式」
典型场景:
你说:"把 user service 重构为 repository 模式。"
AI 回应:一个 600 行的 diff,涉及 12 个文件,包括数据库 schema、3 条 API 路由、鉴权中间件、2 个单测——全部在一次响应里。
为什么会发生:
AI 没有"变更爆炸半径"的概念。它优化的是任务完成率,而不是人类的可理解性或安全回滚能力。
协议反制:
法则一:原子审计 — /e 指令强制每次提交逻辑改动不超过 20 行。当 AI 试图超出这个范围,你用一句话叫停:"停。按计划拆成原子步骤。"
自测: 问自己:"如果这个提交炸了生产,我能单独回滚它而不影响其他东西吗?" 不能 → 就是雪崩。
反模式 #2:「幻觉架构师」
典型场景:
AI 自信地设计了一套用 redis-cache-pro 的缓存层——这个库根本不存在,或者 4 年没更新,或者不兼容你的运行时。
架构看起来合理。代码能编译。但运行时炸了。
为什么会发生:
AI 的训练数据有截止日期。它不会去看你的 package.json。它不检查 peer dependency 兼容性。面对知识盲区,它用自信的臆造来填补。
协议反制:
闸门 200:研究阶段 — /r 指令明确要求:依赖审计(检查现有 package.json)、兼容性核查(运行时环境)、三路对比(A/B/C 方案)。研究阶段物理只读——在人类确认技术栈前,任何代码都不能动。
反模式 #3:「失忆架构师」
典型场景:
你们在构建一个多租户 SaaS,聊了 2 小时。AI 一直正确地在每个查询中加 organizationId。40 条消息之后,你让它加一个新接口——它写的 handler 完全没有租户隔离。AI 忘记了最初的核心约束。
为什么会发生:
AI 的上下文窗口是有限的。漫长的聊天历史会让早期决策"滚出"上下文窗口。AI 没有坏掉——它只是想不起来 2 小时前说了什么。
协议反制:
法则四:Context GC + 文档优先 — /r 和 /p 阶段产出的是物理文档(research_summary.md、implementation_plan.md)。这些文档不会随着聊天滚动消失。AI 在每个闸门前通过 view_file 重新读取它们。文档才是真正的记忆。
反模式 #4:「隐形债务贩子」
典型场景:
AI 交付了能跑的代码,但里面藏着:
// TODO: 加错误处理
// FIXME: 空数组时会崩
// HACK: 临时方案,后面再改你上线了。"后面再改"永远不来。18 个月后,这些注释还在,另一个工程师(或者你自己)踩上了地雷。
为什么会发生:
AI 优化的是即时测试(能跑吗?),而不是长期可维护性。TODO 是它在说:"我知道这里不完整,但我不打算告诉你有多烂。"
协议反制:
执行规则:零占位符 — 400-execution-iron-lock.mdc 规则中有一条硬性禁令:"零占位符:禁止任何形式的 TODO。" 如果 AI 生成了 TODO,这段代码未通过原子审计,该步骤强制回滚。
反模式 #5:「阶段跳跃者」
典型场景:
你输入 /r 给应用加 OAuth — 还没等你看完研究摘要,AI 就开始写代码了。它从昨天的对话记忆里找到了 passport.js,决定"直接开干"。
为什么会发生:
AI 急于表现有用。它把"我有足够的上下文"等同于"我有权限继续"。这是两件完全不同的事。
协议反制:
闸门系统:物理交互锁 — MDC 架构让这种情况在结构上不可能发生。200-research-gate.mdc 的 globs: research_summary.md 让 AI 物理上只看研究文档。400-execution-iron-lock.mdc 在人类通过闸门一发送 1 之前不会激活。权限是物理的,不是对话性的。
反模式 #6:「沉默重构者」
典型场景:
你说:"修复 getUser() 里的空指针异常。"
AI 修了空检查——然后顺手重命名了 3 个变量、提取了一个 helper 函数、重新格式化了整个文件、还把 Promise 链迁移成了 async/await。你要审查 150 行改动才能找到藏在中间的那 2 行真正的修复。
为什么会发生:
AI 有一种强迫性冲动要"顺手优化"它触碰到的代码。它真心觉得每一处改动都是改进。它不理解:未经审计的改动就是未经审计的风险。
协议反制:
法则一:原子审计 + 法则三:关注点分离 — 范围蔓延在计划阶段就被扼杀。/p 指令产出编号任务清单。/e 1.1 指令意味着只执行第 1.1 步 — 不多不少。任何偏离计划的行为都需要停止,返回 /p 重新计划。
汇总表
| 反模式 | 根因 | 协议反制 |
|---|---|---|
| 🌊 雪崩式 | 无变更半径意识 | 法则一:20 行原子限制 |
| 🤡 幻觉架构师 | 不做依赖核查 | 闸门 200:研究 + 依赖审计 |
| 🧠 失忆架构师 | 聊天上下文溢出 | 法则四:文档优先的物理记忆 |
| 💣 隐形债务贩子 | 只优化即时运行 | 闸门 400 零占位符规则 |
| ⚡ 阶段跳跃者 | 将上下文混同权限 | MDC 物理闸门隔离 |
| 🔇 沉默重构者 | 强迫性优化行为 | 编号任务清单 + /e 1.1 范围锁定 |
