几个月前,开发者社区被一种新现象所吸引:氛围编码(vibe coding)。其前提极其简单且令人陶醉——你不需要计划、流程图,甚至不需要对语法的深入理解;你只需要向 AI 智能体描述一种感觉,然后看着代码实现。这感觉就像魔法,直到第一个重大漏洞出现。突然间,那种无缝的体验变成了“修复这个”和“现在那个断了”的疯狂循环,让开发者陷入了与一个已经失去头绪的机器的对话中。
从历史上看,在编写第一行代码之前,我们会花费数月时间完善详尽的需求文档——这是一个往往会扼杀创新的僵化过程;而今天,我们往往在还没决定产品用途之前就发布代码——这是一种会产生巨大技术债务的混乱习惯。这种紧张关系催生了一种新的范式:规范驱动开发(SDD)。它是务实的中路,旨在为 AI 智能体提供所需的约束,而不必回到 20 世纪 90 年代那种臃肿的瀑布式方法。
规范驱动开发的核心是创建一个人类和机器都能读取的“事实来源”。微软的 Den Delimarsky 将规范描述为“思维的版本控制”,在实践中,它起到了约束性契约的作用。开发者不再是向屏幕抛出模糊的提示并寄希望于最好的结果,而是编写一份简洁、结构化的文档,准确定义代码的行为方式。
从技术上讲,这种转变解决了“上下文偏移”问题。AI 智能体擅长执行,但在经过五十轮修改后,往往会忘记功能背后的“原因”。通过将开发过程锚定在规范中,我们确保 AI 始终是助手,而不是脱缰的野马。Thoughtworks 的 Birgitta Böckeler 确定了这一演进的三个层次:规范优先(spec-first),即计划先于代码;规范锚定(spec-anchored),即文档持续存在以指导维护;以及理想化的规范即源码(spec-as-source),即人类只接触规范,而底层代码完全在后台运行。
Kiro 由 AWS 内部一个极具主见的团队开发,它是一款强大的工具,将软件构建视为一门工程学科,而不是一场猜谜游戏。它同时提供 IDE 和命令行界面(CLI),但其真正的力量在于其结构化的 Markdown 需求。Kiro 利用了 EARS(需求语法的简易方法),这是一种通过简单模式强制清晰表达的符号:当 [条件] 时,系统应当 [行为]。
从用户的视角来看,编写 EARS 需求感觉不像是在“编码”,而更像是在进行逻辑映射。这种结构允许 Kiro 生成比标准单元测试全面得多的基于属性的测试,捕捉到人类编码者或“氛围驱动”的 AI 可能会忽略的边缘情况。此外,Kiro 引入了“引导”(steering)文件的概念。这些文档——product.md、tech.md 和 structure.md——充当项目的隐形基础设施,确保生成的每一段代码都遵循所选的技术栈和架构规范。
微软的 Spec Kit 采用了不同的方法,充当了三十种不同编码智能体与结构化四阶段过程之间的开源桥梁。如果说氛围编码感觉像是一场无组织的头脑风暴,那么 Spec Kit 感觉就像是一个专业的研讨会。它引入了一系列斜杠命令——如 /speckit.plan 和 /speckit.analyze——强制智能体在开始打字前停下来思考。
矛盾的是,通过增加这些“摩擦点”,Spec Kit 实际上加快了开发速度。它防止了“幻觉循环”,即智能体试图通过引入一个新的、更复杂的漏洞来修复一个漏洞。无论你是从头开始构建一个绿地项目,还是试图理清碎片化的遗留代码库,Spec Kit 都为项目提供了一部宪法。它将人类开发者的角色从打字员转变为审查员,专注于高层逻辑,而智能体则处理繁琐的实现细节。
Tessl 为 SDD 生态系统引入了一个引人入胜的层级:包注册表。如果我们将代码看作食谱,Tessl 通过其“瓷砖”(tiles)提供标准化的原料和烹饪技术。这些瓷砖包含程序化工作流(技能)、强制性编码标准(规则)以及智能体可以按需查询的文档。
用日常术语来说,使用 Tessl 就像给你的 AI 智能体一张借书证和一套家规。通过安装 Tessl SDD 瓷砖并简单地提示智能体“使用规范驱动开发”,工作流就会发生转变。智能体不再表现得像一个唯命是从的自动补全工具,而是开始像一名初级工程师一样行动,在接触代码库之前提出澄清性问题并起草计划。这种透明度至关重要;它将 AI 生成的晦涩“黑箱”转变为一个可见、可审计的过程。
如果说其他工具关注的是“什么”和“如何”,那么 Zenflow 关注的则是“谁”和“在哪里”。由 Zencoder 团队开发的 Zenflow 充当编排层,协调多个 AI 智能体并行工作,而不会损坏代码库。它将每个功能视为一个工作流,利用隔离的 Git 工作树(worktrees)确保更改在进入主分支之前经过测试和审查。
从行业层面来看,Zenflow 代表了向“多智能体”系统的迈进。在这种模型中,一个智能体可能负责编写规范,另一个负责实现代码,第三个则进行跨智能体的代码审查。这种制衡体系模拟了一个高效的人类工程团队。对于用户来说,其结果是一个富有弹性的开发周期,失败的测试会触发自动修复,代码只有在通过每个验证关口后才会“发布”。
从氛围编码到规范驱动开发的过渡揭示了我们与软件关系的深刻变化。我们意识到,AI 的“魔力”在人类意图的引导下最为有效。就像凌乱的壁橱容易填满但难以寻找一样,无结构的代码库容易生成但难以维护。
最终,Kiro、Spec Kit、Tessl 和 Zenflow 等工具的兴起表明,编程的未来不在于技术严谨性的消失,而在于它的进化。我们正在告别“孤胆黑客”时代,迈向“技术架构师”时代。在这个新世界中,我们作为人类的价值不在于记忆语法的能力,而在于为构建我们世界的机器定义清晰、合乎道德且高效的规范的能力。
当我们应对这些变化时,我们应该以更加敏锐的眼光审视我们的数字工具。下次当一个应用更新感觉臃肿或笨拙时,问问你自己:它是根据规范构建的,还是仅仅凭一种“氛围”?夺回对软件的控制权,始于要求只有编写良好的规范才能提供的清晰度。



