架构错误的代价是几周重构,不是几天。最便宜的发现方式,是在写代码前先跟一个聪明人吵一架——但多数团队周二早上根本找不到那个人。这篇讲怎么用推理级模型(带 adaptive thinking 的 Claude Opus 4.7,或者 GPT-5.5 Thinking)当一个结构化的 devil’s advocate,每份设计文档大约 25 分钟抓出 3-5 个真问题。
一句话总结
- 写一页设计文档,分四节:目标、约束、方案、考虑过的替代。
- 跑一套固定的五步 prompt 序列:steelman → devil’s advocate → 最小缓解 → 替代架构 → 失败场景。
- 用推理模型,别用速度模型。截至 2026 年 6 月,也就是 Claude Opus 4.7(effort 调到 high 或 xhigh)或者 GPT-5.5 Thinking 开 Extended 思考时长。Instant / Haiku 级别的别用,批评太浅。
- 产出是一份吸收了缓解措施、显式驳回了替代方案的设计文档。交给真人 reviewer 的是这份,不是原始批评。
用哪个模型(2026 年 6 月)
批评质量最大的决定因素,就是你用的模型回答前到底有没有真的推理。两个主流选项都有一个需要你手动调高的 thinking / effort 开关。
| 选项 | 怎么开 | 上下文窗口 | 适合 | 备注 |
|---|---|---|---|---|
| Claude Opus 4.7(adaptive thinking) | Claude.ai / Claude Code 默认;做设计 review 把 effort 调到 high 或 xhigh | 100 万 token(标准价) | 长设计文档、分布式系统失败分析 | adaptive thinking 是唯一模式,模型自己决定思考多深。知识截止 2026 年 1 月。 |
| GPT-5.5 Thinking | 模型选择器里选 GPT-5.5 Thinking,思考时长设为 Extended | Plus 应用内约 320 页;完整 100 万只在 200 美元的 Pro 套餐 | 快速第二意见、交叉验证 Claude 的批评 | Plus / Business 每周最多 3,000 条 Thinking 消息;Pro 多出 Light / Heavy 两档思考时长。 |
| 速度模型(GPT-5.5 Instant、Claude Sonnet 4.6 不开 thinking) | 默认模型、关掉 thinking | — | 写文档本身,不是 review | 批评很泛。攻击那一步别用它。 |
价格(截至 2026 年 6 月):Claude Pro 每月 20 美元(按年付折合每月 17 美元,现在捆绑 Claude Code),ChatGPT Plus 每月 20 美元。两档都够你每天跑这套流程。官方页面:Claude 价格、ChatGPT 价格。
什么时候跑
任何涉及以下情况的功能开工前:新数据模型、新服务、复杂状态管理、分布式协调、支付 / auth 流,或者回滚会很痛的改动。经验法则:撤销要超过 2 天,就跑 review。
下面这些跳过:琐碎功能;团队已有标准做法的常见模式(没必要让 AI 重新考虑你的 CRUD 端点写法);注定要扔的限时 spike。
开始前准备
- 一页设计文档。bullet 就够,但必须包括:目标、约束、提议方案、考虑过的 2-3 个替代。
- 用可量化的方式想清这次设计的”好”长什么样。“p95 延迟 200ms 以下”是好;“可扩展”不是。模型按你说的标准批评,标准模糊批评就模糊。
- 打开一个调高了 thinking 的推理模型(见上表)。如果一份文档要反复迭代,把 prompt 序列存进 Claude Project 或 Custom GPT,省得重打。
五步 prompt 序列
在同一个对话里按顺序跑,设计文档只在开头粘一次。
- Steelman。 “Steelman 这个设计。给出它对的 3 个最强理由,每个都对应文档里某条具体约束。” 先逼模型替设计辩护,能避免后面变成一边倒的攻击。
- Devil’s advocate。 “现在做 devil’s advocate。找 5 个最大弱点。每个都说清:失败模式叫什么、什么时候触发、触发的代价多大。要具体——不许说’可能会慢’。”
- 最小缓解。 每条弱点问:“不动整体架构的前提下,最小的缓解措施是什么?” 这能把可修的关切和架构级阻塞分开。
- 替代架构。 “列 2 个我本应考虑过的替代架构,每个跟我的方案做显式权衡。” 如果它给出一个你真没掂量过的选项,这次 review 就赚回来了。
- 失败场景(高风险设计)。 “走 3 个现实失败场景。分区、重启或部分失败时,什么状态会变得不一致?重试逻辑在哪里变脆?”
然后把缓解措施、驳回的替代(带原因)、一节”已考虑的失败”更新进文档。这份更新后的文档才是给真人 reviewer 看的。
按设计类型用的针对性 prompt
在第 4 步之后换上对应的那条:
- 数据模型设计: “对这个 schema 走 5 个现实查询。哪些需要设计里没写的 join 或反范式?哪里会出现 N+1 模式?”
- 分布式系统: “这设计能在哪里部分失败?网络分区、或者写到一半节点重启时,什么状态会变得不一致?”
- API 设计: “给 3 个看起来对、但违反了实现里某个没写出来的假设的调用。”
- 迁移: “一步步走切换过程。哪一步系统处于新旧两条路同时在跑的状态?如果迁移在那一步停一个小时,什么会坏?“
在 Claude Code 里对着真实代码跑
如果设计涉及现有代码库,别在聊天窗口里跑,改用 Claude Code 的 plan mode。plan mode 是只读的:Claude 读相关文件、提澄清问题、产出一步步的计划,所有写工具在你批准计划前都被禁用。这意味着同一套 steelman → 攻击的序列是对着你真实的代码跑,而不是一段散文摘要——所以模型能发现比如你那个”无状态服务”设计其实读了一个模块级缓存。
要反复用,就把这套五步序列存成 .claude/agents/architecture-reviewer.md 子 agent,任何同事都能调起同一套结构化批评。子 agent 的搭法见 AI Agent 代码审查工作流。
对批评本身做质量检查
- 模型找的是你真没想过的问题,还是把你文档里写过的复述了一遍?后者也行,但价值低。
- 每条弱点能验证吗?“可能会慢”是感觉;“用户超过 50 条时这设计会发 N+1 查询”是可测的。
- 替代方案有真权衡,还是只是塞了明显更差的选项让你显得对?严格更差的是噪音。
- 缓解措施真的是最小的,还是模型偷偷重设计了?推回这种蔓延式重设计——压住它”只评论、不重写”。
先在一个已上线的设计上校准
在真用它做现场决策之前,先挑一个你已经上线、结果已知的设计跑一遍。对比模型预测的弱点和实际生产里出的问题:它抓到真问题了吗,还是只盯着理论问题?记下哪种 prompt 措辞产出尖锐批评、哪种产出含糊批评。跑过大约 10 次后你会看出规律——推理模型擅长抓竞态、缺失的失败模式、schema 演进的坑,几乎完全看不到组织 / 政治约束(它看不到你的路线图,也不知道你的 on-call 排班)。
容易踩的坑
- 问”这设计好不好”——拿到 yes-and-fluff。用 steelman 然后攻击的序列。
- 攻击那一步用了速度模型(GPT-5.5 Instant、关了 thinking 的 Sonnet 4.6)。批评停在表面。把 thinking 调高。
- 让 AI 重新设计而不是批评。压住它”只评论、不重写”,直到批评全听完。
- 跳过 steelman——拿到一边倒的攻击,错过设计的真实强项,把一个本来还行的设计过度修正。
- 把 AI 批评当权威。它揭示问题,是否重要你来定(你有模型看不到的上下文)。
- 在已经写完代码后才跑——沉没成本会让你驳回每条批评。一定要在写代码之前。
- 给真人看原始 AI 批评。给他们的应该是已经吸收了缓解措施的、被磨过的设计——这才是重点。
FAQ
- 该用哪个模型?: 截至 2026 年 6 月,带 adaptive thinking、effort 调到 high/xhigh 的 Claude Opus 4.7,或者开 Extended 思考时长的 GPT-5.5 Thinking。两个都是回答前真推理的。速度档模型(GPT-5.5 Instant、不开 thinking 的 Claude Sonnet 4.6)批评较弱——写文档可以,攻击它不行。
- 取代真人 design review 吗?: 不——它是预过滤。资深同事的时间花在一份已经过 AI 批评、且带着缓解措施和驳回替代到手的文档上,效率高得多。
- AI 批评错了怎么办?: 经常会错,没关系。错的批评也能浮现一个值得文档化的假设。只是别为不存在的问题加缓解。
- 要多久?: 用推理模型每份设计 20-40 分钟——thinking 模式比 Instant 慢。跟几周重构比,是工具箱里 ROI 最高的。
- 省略 steelman 行吗?: 别。没有它批评会一边倒,你会把一个本来基本没问题的设计过度修正。
- ChatGPT 用 Plus 还是 Pro?: Plus(每月 20 美元)就够——它含每周最多 3,000 条 GPT-5.5 Thinking 消息。只有当你的设计文档大到需要完整 100 万 token 上下文时,200 美元的 Pro 才有意义。