今天想简单聊聊 Vibe Coding 和 Spec-driven 的开发新模式。
Vibe Coding
“If I were a teenager or graduate today, I would learn how to communicate with AI systems.”
— Jensen Huang, CEO of NVIDIA

狭义上的 Vibe Coding
Google 是这样定义的:
Vibe Coding 是一种新兴的软件开发实践,它使用人工智能(AI)根据自然语言提示生成功能代码,从而加快开发速度,并让应用构建变得更加容易,对于那些编程经验有限的用户尤其如此。
https://cloud.google.com/discover/what-is-vibe-coding
该术语由 AI 研究人员 Andrej Karpathy 于 2025 年初创造,用于描述一种工作流,其中开发者的主要角色从逐行编写代码转变为通过对话风格更浓的过程指导 AI 助理生成、完善和调试应用。这样,开发者就可以腾出时间和精力思考大方向或应用的主要目标,而 AI 则负责编写实际代码。
在实践中,Vibe Coding 通常有两种主要的应用方式:
- Pure Vibe Coding: 在这种最探索性的形式中,用户可能会完全信任 AI 的输出能够按预期工作。它最适合用于快速构思。在这些场景中,速度是首要目标。
- Responsible AI 辅助开发:这是该概念的实际专业应用。在这种模式下,AI 工具充当功能强大的协作者或 “编程搭档” 。用户会指导 AI 操作,然后审查、测试并理解 AI 生成的代码,因此对最终产品拥有完全的所有权。
从这里就能看出,“用户指导 AI 操作” 成为了最核心问题。
广义上的 Vibe Coding
广义上的 Vibe Coding 是由开发者群体衍生出来的一种 “心流(Flow)” 状态,是一种在开发者社区中逐渐流行起来的文化现象或工作方式。它强调在一种轻松、沉浸、有 “氛围感” 的状态下进行编码,注重情绪、节奏、环境与创造力的融合,而非单纯追求效率或产出。
在安静、舒适或有特定背景音乐(如 lo-fi、chillhop、氛围电子乐等)的环境中专注编码,享受写代码的过程本身。不是为了赶 deadline 或完成任务,而是出于兴趣、探索或创造的欲望。追求代码的简洁性、可读性、甚至 “美感”,就像在创作一件艺术品,并与 AI 协作。
这也是为什么独立游戏《放松时光:与你共享Lo-Fi故事》刚发布就达到了 10 万多的下载量,虽然没有获得 “Steam 2025 轻松惬意奖”,但市场反响足以证明了 Vibe Coding 心流的影响力。


总之,Vibe Coding 的本质就是:
Prompt → Code
是即时生成代码,边试错边调整。如果工程量很大的话,会导致 AI 的上下文长度过长。所以,Specification-driven Development 出现了,它是分阶段的开发,本质是:
Prompt → Requirements → Design → Tasks → Code → Review
通过优先定义需求文档、系统设计和任务清单,确保代码逻辑清晰且与业务目标对齐。即,需求文档、系统设计和任务清单成为了 Single Source of Truth!

This is the true vibe coding
Spec-driven Dev
Github Blog 发布的《Spec-driven development with AI: Get started with a new open source toolkit》指出,我们把编码代理当作搜索引擎来对待,而应该把它们当作思维严谨的结对程序员来对待。它们擅长模式识别,但仍然需要明确的指令。
Github 通过 Spec Kit 来规范驱动开发。开发者的主要职责是引导;编码代理会完成大部分编写工作。
它分为四个阶段,每个阶段都有明确的检查点。但关键在于:每个阶段都有特定的任务,只有当前任务完全验证后才能进入下一阶段。
具体流程如下:
- 明确说明(Specify):开发者只需提供构建目标及其原因的概要描述,编码代理即可生成详细的规范。这并非关乎技术栈或应用设计,而是关乎用户体验以及成功的定义。谁会使用它?它能解决他们的什么问题?他们将如何与之交互?哪些结果至关重要?可以将其视为绘制您想要创建的用户体验图,然后让编码代理填充细节。至关重要的是,这会成为一个动态的文档,随着您对用户及其需求的了解不断加深而持续更新。
- 计划阶段(Plan):现在进入技术层面。在这个阶段,开发者需要向编码代理提供所需的技术栈、架构和约束条件,编码代理会生成一份全面的技术计划。如果您对某些技术有标准要求,请在此处说明。如果您需要集成遗留系统、满足合规性要求或达到性能目标等,所有这些都需要在此说明。您还可以要求生成多个计划方案,以便比较和对比不同的方法。如果您将内部文档提供给编码代理,它可以将您的架构模式和标准直接集成到计划中。毕竟,编码代理在开始工作之前需要了解游戏规则。
- 任务(Tasks):编码代理会将规范和计划分解成实际工作。它会生成可审查的小模块,每个模块都负责解决特定问题。每个任务都应该是可以独立实现和测试的;这一点至关重要,因为它为编码代理提供了一种验证自身工作并确保项目按计划进行的方法,这几乎相当于为你的 AI 代理实施测试驱动开发流程。
- 实施(Implement):您的编码代理会逐一处理任务(或在适用情况下并行处理)。但不同之处在于:您(开发人员)无需审查数千行的代码,而是审查针对特定问题的重点更改。编码代理知道它应该构建什么,因为规范告诉了它。它知道如何构建,因为计划告诉了它。它确切地知道要做什么,因为任务告诉了它。
现在的 AI 我该如何组合使用呢?
历史是螺旋上升的,技术也一样。一般来说,优先使用当下排名靠前的模型,会有更好的效果。排名可在 LiveBench 上查看。

当然,我也把我目前的经验分享一下:
| 名称 | 评价 |
|---|---|
| Gemini | 文字功底较好,适合 Specify |
| ChatGPT | 较为全面,适合在 Plan 阶段讨论并生成多份全面的技术计划,新技术的使用等 |
| Claude Code | 在 Tasks 阶段进行代码生成 |
| CodeX | 在 Code Review 阶段使用,能够找出 Claude Code 的代码很多问题(CodeX 能比 Claude Code 发现更多潜在的问题) |
最后,推荐下斯坦福的 Vibe Coding 课程 CS146S: The Modern Software Developer,学习 AI 变成和 CI/CD 自动化测试。

