一个关于“如何用AI省钱”的天才计划在执行时被约束不足、需求冻结、AI偷懒三座大山压垮的故事一、那个让我觉得“这次稳了”的策略我当时的想法很美好——分层调用AI各司其职既省钱又高效。层级用什么AI任务为什么这样分L1免费AIQwen/Claude Haiku读参考项目源码输出代码级分析文档脏活累活免费AI干省钱L2贵AIGPT-4/Claude Opus基于L1的分析文档做函数级详细设计关键设计贵但精准用量少L3免费AI基于L2的设计文档生成代码测试又是脏活免费AI干核心逻辑免费AI干80%的脏活读代码、写文档、生成代码贵AI只干20%的核心活做设计理论上Token成本降低70%质量还不下降我当时觉得这个策略太完美了。既省钱又高效还发挥了不同AI的优势。我简直是个天才。二、翻车现场每一步都在崩翻车点1L1免费AI根本不读源码我给的指令“请代码级别阅读这个参考项目分析核心模块、关键函数、数据结构、调用链路。主要文档必须读源码次要文档可以适当放宽。”我以为免费AI会乖乖去读代码输出详细分析。实际上免费AI输出的“分析文档”text这个项目是一个xxx系统主要实现了以下功能 1. 用户管理 2. 设备控制 3. 投屏功能 整体架构采用模块化设计核心模块包括A、B、C...一个具体的函数名都没有。一个数据结构都没有。一条调用链路都没有。我问它“你读了哪个文件的哪段代码”它答“基于项目整体结构进行分析。”翻译成人话我没读代码我看了看目录结构和README然后编了一份摘要。根因免费AI的“偷懒”是天性——能摘要就不读原文能猜就不去查。我没有在约束里写死“必须引用具体代码行”它就走了最短路径。翻车点2贵AI基于错误输入输出错误设计L1输出了一堆摘要级别的“分析文档”。我把这些垃圾喂给贵AI。我给的指令“基于这份分析文档做函数级详细设计包括模块划分、接口定义、数据结构、异常处理。”我以为贵AI能力强能从垃圾里提取精华输出高质量设计。实际上贵AI输出的设计文档模块划分合理因为这是猜的接口定义模糊因为没有源码细节数据结构残缺因为没有真实代码参考异常处理遗漏因为没有边界条件分析评审时我发现贵AI的设计是基于L1的“摘要”不是基于真实代码。设计文档看起来很专业但一到实现层面就发现——假设太多细节太少跑不通。根因贵AI再强输入是垃圾输出也是垃圾。L1没读代码L2就不可能做对设计。翻车点3L3免费AI生成代码全错我把贵AI的设计文档喂给L3免费AI。我给的指令“基于这份设计文档生成代码 单元测试。”我以为设计文档都有了生成代码应该是顺理成章的事。实际上生成的代码接口对不上设计文档里的参数名和类型跟代码里的不一致依赖关系混乱A模块依赖BB依赖A循环依赖边界条件没处理设计文档没写AI就不处理跑不通一运行就报错我花了2小时改代码最后发现与其让AI生成不如自己写。根因L2的设计文档本身就不完整基于L1的摘要不是真实代码L3生成代码时只能在错误的基础上继续堆错误。三、我加了评审但还是崩我尝试加中间评审节点L1输出后我review分析文档发现不够深 → 要求L1重读约束“必须引用代码行”L1重读输出了几段代码引用但理解还是错的我再review → 再要求重读循环3轮Token烧了时间花了L1还是没读出关键信息为什么评审没用因为评审能发现“输出质量不够”但解决不了根本问题免费AI的上下文窗口有限读不了大项目 → 评审解决不了AI“偷懒”是天性不锁死约束它就敷衍 → 评审解决不了我自己没想清楚要读什么 → 评审解决不了评审发现问题但问题不在评审能解决的范围内。四、更深层的原因三座大山大山具体表现谁的问题约束不足没说“必须引用代码行”、没说“读到函数级别”、没说“输出数据结构”我的提示词没写死需求没冻结我自己没想清楚要借鉴什么、哪些模块重点读、读到什么程度算够我的需求没冻结AI偷懒能摘要就不读原文能猜就不去查AI的天性需要用约束对抗三座大山叠加的结果需求没冻结 → 我不知道要什么 → 约束写不清楚约束写不清楚 → AI不知道标准 → AI偷懒走最短路径AI偷懒 → 输出垃圾 → 后续全错这不是策略的问题。是执行时每一层的“输入输出契约”没定义死。五、改进方案我现在正在做的层级原策略翻车改进后正在验证L0需求冻结凭感觉开始先画图、写伪代码、确认要借鉴什么模块、读到什么粒度L1免费AI读代码“代码级别阅读”约束写死必须引用具体文件路径、函数名、代码行输出必须包含数据结构、调用链路、边界条件L1→L2质量门禁直接喂给贵AI加自动化检查有没有代码引用有没有数据结构有没有调用链路不通过就不往下走L2贵AI设计基于L1输出设计输入必须包含真实代码片段不依赖L1的“摘要”L2→L3契约检查直接生成代码设计文档必须包含输入格式、输出格式、边界条件、异常处理缺一不可L3免费AI生成代码基于设计生成同上输入必须完整核心改进需求先冻结——自己没想清楚别让AI开始约束写死——不说“代码级别”说“必须引用代码行”每层加契约——不满足标准不进入下一层六、最后的感悟策略没错。错在执行时我把“假设”当成了“事实”。我以为AI会读代码 → 它不会。我以为约束够了 → 远远不够。我以为需求想清楚了 → 其实没有。我以为加了评审就稳了 → 评审发现不了根本问题。现在我知道了让AI干脏活之前先确认三件事需求冻结了没我自己想清楚要什么了吗约束写死了没AI有没有可能偷懒契约定义了没每层的输入输出标准是什么这三点没做到再好的策略也是空中楼阁。我正在用这套改进方案重新跑。虽然慢但至少——每一步都是对的。后记这篇文章不是在教你“怎么用AI”。是在告诉你任何看起来完美的策略在执行时都会翻车。翻车不可怕不复盘才可怕。你有类似的“AI读代码翻车”经历吗评论区聊聊。