这两年,AI 编程的讨论非常热闹,但越热闹,越容易掩盖一个事实:我们并没有真正进入“工程级 AI 编程时代”。
大多数人正在经历的,只是一个“看起来很强、但长期不稳定”的阶段。
1、AI 编程的真实现状
现在的 AI 编程,已经具备几个非常惊人的能力:
可以一次性生成上千行可运行代码
能快速理解自然语言描述
能跨语言、跨框架迁移思路
但与此同时,一个越来越明显的问题正在出现:
AI 写代码的能力越强,项目越容易失控。
在真实项目中,常见现象包括:
同一个需求,今天和明天生成的实现逻辑完全不同
上下文一复杂,模型开始自相矛盾
修 Bug 的时间,逐渐超过“自己写”的时间
项目越来越依赖“当前这次对话”,而不是稳定结构
这不是模型的问题,而是使用方式的问题。
2、什么是 Vibe Code
所谓 Vibe Code,并不是一个官方术语,而是社区里逐渐形成的共识性叫法。
它描述的是一种非常典型的 AI 编程状态:
用自然语言描述一个模糊目标
依赖 AI 自由理解、自由发挥
根据运行结果不断“微调指令”
靠多次生成逼近一个“差不多能用”的状态
它的本质只有一句话:
“我知道我想要什么,但我并没有把它想清楚。”
Vibe Code 的优势也很明显:
但它的致命问题同样清晰:
没有稳定结构
没有明确边界
没有可复现性
无法规模化协作
Vibe Code 更像是在“聊天中写代码”,而不是在做工程。
3、什么是Spec
规范驱动开发(Specification-Driven Development, SDD),简称为”Spec Coding“
Spec Coding将开发过程组织成一系列清晰的、人与AI强协同的阶段,例如规范、规划、任务、实现,
其中一条至关重要的规则是:在当前阶段未被完全验证之前,绝不进入下一阶段。这种机制强制引入了纪律性,确保了每个步骤的质量。
很多人一听到 Spec,就会联想到:
但在 AI 编程语境下,spec 的角色已经发生了根本变化。
在 AI 时代,Spec 的核心价值是:
把“模糊意图”变成明确约束
把“可能性空间”压缩到可控范围
把“模型自由发挥”变成受限执行
一句话定义:
Spec 是人类给 AI 的“问题定义层”,而不是给程序员看的说明书。
一个好的 spec,通常至少包含:
- 系统目标
- 边界与约束
- 行为定义
- 模块拆分
当这些东西被写清楚后,
AI 生成代码,本质上只是一次“执行行为”。
4、当前主流的 Spec 驱动框架,在解决什么问题?
近一年,围绕 AI 编程,逐渐出现了一批 spec-first / spec-driven 的开源实践,它们并不是要替代 IDE,而是重构人和 AI 的协作方式。
4.1 Lean Spec / Spec-first Flow
这类框架强调一个原则:
先写 spec,再写代码;spec 不变,代码可重来。
典型特征:
把需求拆成多个独立 spec 文件
每个 spec 都是可验证的
AI 只负责在 spec 约束下生成实现
适合场景:
中大型项目
需要长期维护的系统
个人但“认真做”的产品
4.2 OpenSpec / 结构化规范方案
这一类更强调结构化与标准化:
统一 spec 的语法结构
把 spec 当作一种“中间语言”
支持自动拆解、组合、验证
它们试图解决的问题是:
不同人写的 spec 能不能互相理解
spec 能不能被工具链消费
spec 能不能成为长期资产
4.3 Agent + Spec 协作模式
这是目前最前沿的一类探索:
Spec 负责定义目标与边界
多个 Agent 各自负责实现、验证、重构
人类只在 spec 层做决策
在这个模式里:
人类负责“想清楚”,AI 负责“反复做对”。
5、那我们到底应该怎么用?
这里没有复杂结论,只有一条非常清晰的分界线:
探索阶段可以 vibe,交付阶段必须 spec。
实际建议:
原型、Demo、个人玩具
要上线、要维护、要协作
真正值钱的能力
6、未来 AI 编程一定会走向哪里?
几乎可以确定的是:
vibe code 不会消失
但它只会停留在“灵感层”“探索层”
而进入生产系统的 AI 编程,一定会:
更强调规范,而不是自由
更强调可复现,而不是一次成功
更强调系统一致性,而不是局部聪明
更强调 spec,而不是 prompt
Spec 会成为人类对 AI 的“主权边界”。
Vibe code 最大的问题,不是“不高级”,
而是它默认把“没想清楚”当成一种正常状态。
而工程的本质,从来只有一件事:
把模糊世界,变成清晰约束。