当前AI编程工具面临的核心痛点并非模型能力不足,而是“沟通的单向性”——AI不会主动追问、澄清、自检。本文提出:将传统瀑布模型的“阶段性-契约化”思想引入AI编程,并对其进行“迭代式”改进,可系统性地解决这一问题。核心论证包括:瀑布模型的本质价值在于建立“确定性锚点”;AI编程的真正瓶颈不在上下文长度,而在于缺乏结构化的协作框架;“迭代式瀑布”通过“全局逆向校验”等机制,将AI从“会道歉的猜测者”转化为“可审计的协作者”。

一、问题的重述:AI编程的“越帮越累”现象

当前AI编程工具的使用体验存在一个普遍悖论:模型越强,开发者越累。典型场景如下:

开发者提出一个需求,AI执行后产生了意料之外的改动——修改了不相关的代码、采用了奇怪的写法、反复犯同一个错误。当开发者指出问题时,AI频繁道歉,但既不理解错在哪里,也没有能力追问正确做法。开发者不得不花费更多时间回滚、纠正、重新解释。

这一现象的本质原因,并非“开发者把AI当成了人”,而是沟通的单向性。人类协作中存在双向的追问、澄清、确认机制,直至共识达成;而当前的AI交互模式是“输入→输出”,AI不会主动发起澄清,只能基于模糊输入进行猜测,并以道歉作为对错误输出的回应。

道歉之所以令人崩溃,恰恰因为它是一种空洞的仪式——它既不代表理解,也不代表改进,只是对失败的单向确认。

二、对流行解决方案的批判性审视

针对上述问题,目前存在两种主流思路,但均有其局限。

思路一:提升模型能力。 认为只要模型更强、上下文更长、推理更准,问题就会消失。Claude Code等工具正是这一思路的代表。但实践表明,更长的上下文反而放大了问题——模型更容易在细节中迷失,产生更多幻觉,且成本线性增长。核心缺陷在于:将复杂性转嫁给了模型的黑盒能力,而非通过工程化手段拆解复杂性。

思路二:优化提示词技巧。 认为只要开发者写得足够详细、足够结构化的提示词,就能获得稳定输出。这一思路的问题在于:它将沟通失败的责在完全归于开发者,而忽略了AI作为协作方的责任——它仍然不会追问、不会自检、不会逆向验证。提示词再长,也是单向的。

以上两种思路的共同盲点是:试图用“更长的输入”或“更强的模型”来掩盖“协作框架的缺失”。而真正的问题在于,我们还没有为AI编程建立一套结构化的、契约化的协作范式。

三、瀑布模型在AI编程中的价值重估

3.1 瀑布模型的本质:阶段性与契约

传统瀑布模型在软件工程中常被诟病为“僵化”、“难以应对变化”。但在AI编程的语境下,其核心价值值得重估:

  • 阶段性:将软件开发过程分解为业务分析、需求分析、设计、开发、测试等阶段,每个阶段有明确的起止点。

  • 契约化:每个阶段产生标准化的输出产物,作为下一阶段的输入契约。上游的交付物就是下游的“确定性锚点”。

这一结构的价值在于:它强制建立了“暂停-验证-传递”的机制,而不是让信息在无限长的上下文中流动和退化。

3.2 “确定性锚点”替代长上下文

您之前提出的观点——“不依赖长上下文,依赖标准化产物”——在瀑布框架下获得了清晰的阐释。

在传统AI编程模式中,开发者试图让一个模型记住所有信息:业务背景、需求细节、设计决策、代码现状……上下文越长,模型的“记忆负担”越重,遗忘和混淆的概率越高。

而在瀑布框架下,每个阶段的AI只需要处理当前阶段的输入契约上一阶段产出的确定性内容。上下文被刻意保持短小(16K-32K足够),但每个产物都是完整、标准、可验证的。

这符合人类工程经验:优秀的团队协作不是靠每个人记住所有事,而是靠清晰的接口文档、规范的设计稿、可执行的测试用例。

3.3 为什么“长上下文”是伪解决方案

长上下文本质上是在用“容量”掩盖“结构”的缺失。类比人类协作:一个会议持续8小时,全程录音,然后你把录音文件发给一个新加入的同事,说“所有信息都在里面了,你看着办”。这显然不是高效协作。

高效协作依赖的是:会议纪要(结构化摘要)、行动项(明确契约)、设计文档(标准化产物)。上下文长度是能力的上限,但不是效率的保障。 瀑布框架提供的正是这种“结构化摘要”的生成和传递机制。

四、迭代式瀑布:对传统模型的必要改进

引入瀑布思想的同时,必须承认传统瀑布的两个主要缺陷,并进行针对性改进。

4.1 传统瀑布的缺陷

  1. 阶段间耦合过强:上游一旦出错,下游全部失效,且后期修正成本极高。

  2. 缺乏对“变化”的适应:需求变更需要回溯多个阶段,流程僵化。

4.2 迭代式改进:横向迭代 + 全局逆向校验

您提出的“迭代式瀑布”通过两个机制解决了上述问题:

横向迭代:每个瀑布阶段内部,允许多次快速迭代——“需求澄清 → AI执行 → AI校验 → AI全局校验”。这意味着你不需要在一个阶段内“一次性做对”,而是通过多次低成本试错逼近正确结果。每次迭代的范围小、回滚成本低、反馈速度快。

全局逆向校验:这是整个范式中最关键的一环。在每次迭代的末尾,AI需要逆向对照之前所有过程已输出的确定性内容,检查本次修改是否存在矛盾或引入风险。

全局校验的本质是建立一个“向前追溯”的影响分析机制。传统开发中,修改代码后需要回归测试——检查是否破坏了已有的功能。全局校验在AI编程中扮演了同样的角色,但它更彻底:它不仅检查代码层面,还检查需求层面、设计层面、业务层面的一致性。

4.3 从“道歉”到“偏差报告”

当这套机制运行起来后,AI的行为模式发生了根本性变化:

  • 传统模式:AI执行 → 出错 → 道歉(“对不起我理解错了”)

  • 迭代式瀑布:AI执行 → 全局校验 → 输出偏差报告(“本次修改违反了第X条确定性内容,建议修正为Y”)

道歉是空洞的,偏差报告是可操作的。开发者不再需要对着屏幕生气,只需要审阅报告、做出决策、进入下一轮迭代。

五、案例推演:手机号校验功能

以下通过一个简化案例,展示迭代式瀑布的运作逻辑。

初始需求:“给注册功能增加手机号校验”

传统模式的问题路径

开发者直接向AI提出上述需求 → AI猜测校验规则(可能是任意规则)→ 输出代码 → 开发者发现不符合预期 → 回滚 → 补充说明 → AI再次猜测 → 循环往复。每一次失败都伴随着AI的道歉和开发者的挫败感。

迭代式瀑布的执行路径

阶段一:业务分析 - 迭代1

  • 需求澄清:开发者提出“支持手机号注册” → AI追问“是否需要短信验证?” → 开发者确认“不需要,只做格式校验”

  • AI执行:输出业务分析结论文档

  • AI全局校验:与已有业务逻辑(邮箱注册)对比,确认无冲突

  • 输出确定性内容:【业务结论】用户注册需支持手机号格式校验,不触发短信

阶段二:需求分析 - 迭代1

  • 需求澄清:开发者提出“11位数字校验” → AI追问“空值处理?非数字字符的返回格式?” → 开发者补充

  • AI执行:输出需求规格

  • AI全局校验:与【业务结论】对照——业务说“只做格式校验”,需求中是否包含了非格式内容?确认没有。

  • 输出确定性内容:【需求规则】11位数字、空值返回“手机号不能为空”、非数字返回“格式错误”

阶段三:开发 - 迭代1

  • 需求澄清:AI声明边界“只修改user_service.py,新增validate_phone函数,不改动其他文件” → 开发者批准

  • AI执行:输出代码

  • AI全局校验:与【业务结论】【需求规则】逐条对照——代码是否实现了所有规则?是否超出了业务边界?是否遗漏了空值处理?

  • 输出偏差报告(如有):检测到错误信息“手机号无效”与需求规则中的“格式错误”不一致,建议修正

结果:开发者在AI输出偏差报告后,只需确认修正指令,而非从头排查问题。

六、可工程化实现

迭代式瀑布范式的另一优势在于:它可以被固化到Agent框架中,而非完全依赖开发者手动执行。

具体实现思路:

  1. 确定性内容存储:建立一个结构化存储,记录每个阶段输出的“确定性内容”,支持版本管理和追溯。

  2. 全局校验引擎:实现一个校验模块,能够将当前修改与存储中的所有确定性内容进行一致性检查。

  3. 澄清对话模板:为每个阶段预设澄清问题模板,引导AI主动追问关键信息。

  4. 边界声明机制:在执行任何代码修改前,强制AI输出执行边界,经确认后方可执行。

这些机制不需要依赖模型的“超长上下文”或“超强推理能力”,而是通过工程化的流程设计来弥补模型在追问、自检、追溯方面的天然缺陷。

七、结论

本文的核心论点是:AI编程的真正瓶颈不在于模型的上下文长度或推理能力,而在于缺乏结构化的协作框架

瀑布模型的“阶段性-契约化”思想,在AI编程语境下具有被重估的价值——它通过建立“确定性锚点”,将无限膨胀的上下文替换为短小、标准、可验证的产物。而对传统瀑布的“迭代式”改进——横向迭代与全局逆向校验——则解决了其僵化和耦合过强的问题。

迭代式瀑布沟通范式的本质,是将AI不会主动做的事——追问、澄清、自检、逆向追溯——全部变成流程中的强制阶段。当这些机制运转起来,AI的“道歉”变成了结构化的“偏差报告”,开发者从“与一个会道歉的模糊工具对话”升级为“管理一个需要明确流程规范的协作者”。

这不是对瀑布模型的复古,而是在AI时代对其价值的重新发现与工程化重构。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐