首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Vibe Coding:一场被误读的范式转移 ——从「氛围」到工程化的完整专业解析

Vibe Coding:一场被误读的范式转移 ——从「氛围」到工程化的完整专业解析

原创
作者头像
用户12502707
发布于 2026-09-24 10:20:49
发布于 2026-09-24 10:20:49
1700
举报

一、开篇:为什么一个玩笑话会成为一个时代的技术关键词

2025 年 2 月,Andrej Karpathy 在 X 上发了一条近乎自嘲的推文:

"There's a new kind of coding I call 'vibe coding', where you fully give in to the vibes, embrace exponentials, and forget that the code even exists."

他描述的状态是:对着 Cursor Composer 说话(甚至用 SuperWhisper 几乎不碰键盘),要一些"愚蠢"的改动——把侧边栏内边距减一半、按钮换个颜色;代码跑起来就对了,报错就把红字贴回去让它自己修。他自己在这个项目里几乎没有手写一行代码。

这句话之所以引爆行业,不是因为定义精确,恰恰是因为它不精确。它准确命名了一种当时已经发生、但还没有名字的体验:当大语言模型的代码能力越过某个阈值后,人与代码之间的"语法层"被抽空了,交互界面从"写"变成了"说"和"看"。

随后几年,这个词迅速出圈:Merriam-Webster 将其列入新兴俚语,Collins 词典把它评为年度词汇,"vibe"前缀衍生出 Vibe Design、Vibe Writing、Vibe Marketing;职业标签也出现戏仿式的更新,"Senior Developer"被写成"Vibe Coder"。与此同时,质疑声同步到来:吴恩达称其为"危险的误导性概念",GitHub 开发者 Willem Delbare 撰文讨论其隐性成本,Karpathy 本人后来也澄清自己在做 real coding,并在 2026 年初提出用"智能体工程(Agentic Engineering)"来替代这个说法。

理解这一褒一贬之间的张力,就是理解 Vibe Coding 的全部。它既不是革命,也不是骗局,而是一次控制权再分配:从"人写每一行"变成"人定义目标、AI 生成实现、人验收结果"。这种分配方式在特定区间里效率极高,在区间之外则代价惨重。专业的讨论必须从这里开始——先划边界,再谈好处。


二、概念澄清:Vibe Coding ≠ AI 辅助编程

这是最容易混淆的地方。我们可以把相关概念按"人的控制强度"排成一条光谱:

表格

下载为表格

导出为图片

模式

人在干什么

AI 在干什么

控制强度

传统编程

逐行编写、设计、调试

不参与

最高

AI 补全(Copilot 早期形态)

写主体,接受行/函数级建议

局部补全、样板生成

高

AI 结对(Agent 辅助)

审计划、审代码、做决策

读库、规划、改多文件、跑测试

中高

Vibe Coding

说意图、看效果、给感觉反馈

生成—运行—自修—再迭代

低

Spec / 规范驱动开发

写契约、定验收标准、终审

严格按契约实现

高(但前置成本大)

Vibe Coding 的两个决定性特征,使其与其他模式区分开来:

1. 意图优先(Intent-First)。 起点不再是"这个函数怎么写",而是"我需要一个带日期过滤和折线图的营收仪表盘"。语法、数据结构、文件组织全部下沉为 AI 的责任域。

2. 运行验证代替逐行审查(Run-to-Verify / Vibe Check)。 这是最激进、也最受争议的一条。开发者有意弱化对生成的逐行阅读,转而通过"能不能跑、跑起来对不对、看起来是不是那个味儿"来判断。代码在这里变成了中间产物——像汇编语言一样,除了少数底层工程师,大多数人不再需要读它。

第一条特征基本没有争议,也是真正的生产力来源;第二条则是所有风险的入口。把这两条拆开看,后面所有的结论都能推导出来。


三、技术底座:Vibe Coding 为什么在 2025 年才成立

很多人误以为 Vibe Coding 只是"让 ChatGPT 写代码",忽略了它依赖一整套刚刚成熟的技术条件。这些条件缺一不可:

(1)模型能力越过"可用阈值"。 上下文窗口扩大、推理质量提升、工具调用(function calling / MCP)稳定,使得模型能一次性读完一个中等规模仓库、跨文件修改、执行终端命令并读取运行结果。没有"能跑起来并看到结果"这个闭环,Vibe Check 就无从谈起。

(2)Agent 化 IDE 与沙箱运行时。 Cursor、Windsurf、Claude Code 这类工具提供的不是更好的补全,而是一个可执行的对话环境:模型可以改文件、起服务、打开预览、捕获报错、再改。Replit、Lovable、Bolt.new 这类在线平台则进一步把"部署"也抹平了——从意图到可访问 URL 只需一次对话。Vibe Coding 的工作流本质上是"见(See)→ 说(Say)→ 跑(Run)"的循环,这个循环的延迟必须低到不打断心流,模式才成立。

(3)训练数据的长尾覆盖。 Web 前端之所以成为 Vibe Coding 最先爆发的领域,并非偶然:React + Tailwind + 组件库的组合在训练语料中密度极高,且视觉结果可即时验证。相比之下,冷门语言、私有协议、深领域业务逻辑的生成质量断崖式下降。这解释了为什么有人觉得"AI 无所不能",有人却觉得"连我的项目都跑不起来"——两者都没错,只是站在了数据密度的两端。

(4)自然语言作为新的接口层。 语音输入、截图投喂、设计稿直出代码,这些多模态通道把"描述意图"的成本压到了极低。当开口比敲键盘更快时,行为模式必然改变。

需要清醒认识的是:这套底座的能力曲线是不平滑的。 Karpathy 曾用"参差智能(jagged intelligence)"来形容——它能谈天说地,却可能在数草莓里有几个 r 时翻车。Vibe Coding 的全部工程问题,几乎都可以归结为:在一个能力不平滑的系统上,如何建立可预测的交付流程。


四、标准工作流:把"凭感觉"做成可重复的动作

"氛围"听起来很玄,但落到操作上,成熟的实践者遵循的是同一套高度结构化的循环。区别只在于,新手把这个循环交给直觉,老手把它交给纪律。

4.1 最小闭环

文本

编辑

代码语言:javascript
复制
1① 描述意图(Prompt)
2      ↓
3② AI 生成 / 修改 / 运行
4      ↓
5③ Vibe Check:跑起来了吗?对吗?是我要的那个味儿吗?
6      ↓
7④ 反馈:定位偏差 → 回到 ②
8      ↓
9⑤ 收敛:冻结成果,留下记录

关键在于第 ④ 步的反馈质量。低质量的反馈是"不对,再改改""感觉不太对"——这会让 AI 在解空间里随机游走,越改越乱,最终形成社区里常说的"死亡螺旋"。高质量的反馈具备三个要素:可观察的现象 + 期望的行为 + 约束条件。例如:

  • ❌ "登录有点问题。"
  • ✅ "空密码提交时前端直接报 500,没有表单校验提示;期望:密码为空时禁用提交按钮并显示内联错误文案;不要改动现有的 token 刷新逻辑。"
4.2 五个高频失控场景(附对策)

根据大量实践者的反馈,失控几乎总是以以下几种固定形态出现:

场景一:AI 把"微调"理解成"重写"。 你只想改一个样式,它顺手重构了整个组件。 → 对策:显式声明修改边界("只改 X 文件,不动 Y""保持原有接口签名不变"),并在会话开始前锁定禁止范围。

场景二:范围失控。 你要求加一个字段,它顺便加了权限系统、国际化、通知中心。 → 对策:明确"只做我要求的部分,不要添加额外功能",并采用小步提交、每步验收的节奏。

场景三:代码不完整。 返回片段、省略逻辑、留 // TODO。 → 对策:要求输出完整可运行版本,并用编译器和测试作为客观裁判,而不是靠肉眼判断是否齐全。

场景四:上下文失忆。 对话轮次多了之后,模型开始遗忘之前的约定,甚至混用语言和风格。 → 对策:定期归纳整理、开新会话;把稳定下来的规范写进项目级规则文件(如 .cursorrules、AGENTS.md),让它每次动手前先读。

场景五:意图误读累积。 几轮之后产物偏离原始目标,但每一轮看起来都"差不多"。 → 对策:保留一份简短的目标陈述(可放在 GOAL.md),每若干轮回看一次;必要时果断回档重来,而不是继续修补。

4.3 一个被严重低估的动作:冻结与沉淀

Vibe Coding 最大的隐性成本不是生成慢,而是资产不沉淀。对话即上下文,会话一关,决策依据就消失了。因此专业做法要求在每个闭环结束时做三件事:

  1. 把最终实现的关键决策写进文档(为什么选这个方案、放弃了什么);
  2. 补上测试用例,把"跑起来对了"这件事固化成可重复执行的检查;
  3. 把有效的提示词存进模板库,把踩过的坑写进规则文件。

不做这三步,Vibe Coding 产出的就不是软件,而是一堆只有 AI 记得怎么修的临时脚本。


五、边界:什么时候该用,什么时候绝对不该用

这是全文最重要的一节,也是多数入门文章刻意模糊的部分。

5.1 舒适区(强烈推荐)
  • 从 0 到 1 的原型、POC、技术预研 Demo
  • 一次性脚本、数据清洗、临时工具、内部小工具
  • UI 视觉试错、交互快速迭代、设计稿转代码
  • CRUD、样板代码、单元测试初稿、文档与注释
  • 个人项目、短期活动页、用完即弃的需求
  • 学习新技术时的探索性编码(低成本试错)

在这些场景里,错误的边际成本极低,速度的边际收益极高。Vibe Coding 在这里的效率提升是真实的,原型周期从月级压缩到小时级的案例并不罕见。

5.2 灰色区(可以用,但必须加护栏)
  • 存量项目的增量功能、线上 Bug 修复
  • 规范明确的业务模块(需人工 review)
  • 第三方服务对接与集成适配层
  • 两人以内小团队的日常迭代

这里的正确用法是把 AI 当作高速初稿撰写器,而不是交付者。架构师先把规范和接口契约定死,AI 生成初稿,接着自动跑静态检查与单元测试,最后由资深工程师 code review 后合入主干。人始终在回路里,签字画押的始终是人。

5.3 禁区(强烈不建议纯 Vibe)
  • 资金链路、账务清算、库存移动等需与审计对账的逻辑
  • 权限、风控、鉴权、密钥管理
  • 隐私数据处理、医疗与政务等强监管合规场景
  • 长期维护的核心生产系统、多人协作的大型代码库
  • 深度性能优化、高并发与高可靠性要求场景

理由非常朴素:这些领域的正确性必须是可证明的,而不能是"感觉对了"。 你不能对财务总监说"我跑了一下,看起来账是平的"。此外,多项独立安全研究显示,AI Agent 生成的代码在业务逻辑漏洞与授权逻辑缺陷上尤为脆弱——因为人类开发者靠常识就能判断"这个操作不该被允许",而 Agent 没有常识,只能依赖显式指令。有意思的是,同一批研究也发现,AI 生成的代码反而较少出现 SQL 注入、XSS 这类传统顽疾。这说明问题不在"AI 写得烂",而在"AI 不懂你的业务"。这个区分至关重要,因为它决定了补救方向:靠加强领域约束和人工审查来弥补,而不是指望换个模型。


六、风险清单:隐性成本的四个维度

Vibe Coding 的批评者往往言之有据。把这些批评整理成结构化的风险清单,比单纯站队更有价值。

1. 技术债务的隐蔽性。 生成代码常见的毛病包括:命名随意、抽象错误、逻辑重复、状态管理混乱、缺少错误边界、嵌套过深、无注释。它们在短期内完全能跑,甚至跑得不错,但半年后会变成"代码堆积团",偿还成本高到不如重写。更麻烦的是,债务的形成速度远快于审查速度——生成只要几分钟,读懂可能要几小时,于是安全检查环节在实践中被系统性跳过。

2. 安全与合规。 除上文提到的业务逻辑漏洞外,还有硬编码凭证、API 端点缺少速率限制、只处理"快乐路径"、依赖包幻觉(可能被抢注植入恶意代码)等问题。若涉及私有数据,把生产日志贴给公有云模型本身就是一个合规动作,需要提前评估。

3. 可维护性与团队协作。 高度个人化的编程导致风格、命名、组织方式千差万别,合并冲突多,新人上手慢。已有开源项目明确拒绝纯 Vibe Coding 产出的贡献,理由是"无法维护、责任不清"。这不是偏见,而是维护者的现实生存问题。

4. 人的能力退化。 这是最深远也最难量化的一条。过度依赖会导致基础编程能力萎缩,当遇到 AI 解决不了的问题时,开发者可能已经丧失了手动处理的能力。而对非技术背景的使用者来说,更棘手的是他们无法判断生成物的质量——"看起来没问题"不等于"真的没问题",安全漏洞和性能缺陷往往是隐形的。

顺带一提效率数据的另一面:虽然大量实测显示重复性任务提速显著(CRUD 类 40%–60%、单测生成节省 60% 以上手写时间等),但也有严谨实验发现,资深开发者在使用 AI 工具后完成同等任务的总耗时反而有所增加。原因并不神秘:节省的是打字时间,增加的是审查、纠偏、返工和上下文切换的时间。净收益取决于任务性质与使用者的判断力,而不是工具的标称指标。


七、从 Vibe 到 Agentic Engineering:范式的自然演化

Karpathy 在 2026 年初提出用"智能体工程"替代 Vibe Coding,这个转向本身就是一份最好的说明书。它说明两件事:

第一,"氛围"这个词从一开始就是个临时的、带有自嘲性质的标签,它的历史使命是降低心理门槛——让不敢碰代码的人敢开口,让资深工程师放下"必须亲手写"的执念。这个使命已经完成。

第二,一旦大规模采用开始,注意力必然从"能不能生成"转向"能不能管住"。后者是纯粹的工程问题:如何约束 Agent 的行为边界、如何做可审计的变更、如何做回归验证、如何在长周期里维持一致性。

行业内已经自发演化出一套范式分层,按约束强度从低到高大致是:

Smell(反模式)→ Vibe(即兴试错)→ Plan(先出计划再编码)→ Glue(只做成熟能力的粘合适配)→ Spec(契约驱动、严格验收)

绝大多数团队踩坑的根源,不在于工具能力不足,而在于场景与范式错配:简单迭代过度设计,核心业务随性开发。因此,成熟的团队不再争论"要不要用 Vibe",而是建立一张明确的映射表:什么场景用哪种范式、谁有权批准、验收标准是什么。

同时,工具链的重心也在迁移:从"更强的生成"转向"更强的检查"。业界已经开始讨论"vibe coding checking agents"——既然发明了生成的 Agent,下一步就该发明审查的 Agent。这个方向大概率是正确的,但请注意:自动化审查永远只能覆盖可形式化的部分,业务正确性那最后一环,仍然必须是人。


八、组织与人:被低估的那一半战场

技术层面的讨论已经很多,但真正决定成败的往往是组织层面。

角色重塑是真实的,但不是均匀的。 开发者的价值确实从"写代码"上移到了"定义问题、拆解需求、判断质量、做架构决策"。然而这个上移过程存在一个残酷的前提:你必须先懂,才能判断。 一个完全不懂代码的人可以做原型,但做不了交付;一个资深工程师用了 AI 可以十倍速,但一个初级工程师用了 AI,可能只是十倍速地制造问题。所谓"AI 拉平了门槛",拉平的是起跑线,不是天花板。

团队结构正在分化成双轨制。 一条是探索流:产品经理、业务顾问、少量全栈,重度使用 Vibe,允许失败,重视速度;另一条是交付流:资深架构师与工程师,负责把验证过的意图"硬化"成合格资产,掌握工程规范、安全审查和最终发行权。两条轨道之间需要清晰的交接协议,否则探索流产出的东西永远上不了生产,交付流则会抱怨上游全是垃圾。

新的基本功正在形成。 未来最有价值的从业者,是那些能把模糊的业务意图拆解成高精度提示词、能用精确的自然语言驱动 AI 产出符合领域约束的半成品、并且具备审视生成物是否靠谱的工程直觉的人。这项能力既不是纯技术,也不是纯产品,而是两者的交界地带。

最后,也是最容易引发失败的一点:不要把 Vibe Coding 当成裁员加速器。 现实中已经反复出现这样的剧本:管理层认为"产品经理都能说出软件了,还要那么多开发干嘛",于是砍人头、压成本;结果是活儿没少、人少了,剩下的工程师一边加班填坑一边被迫使用自己不信任的工具,反馈不真实的提效数据;最终转型烂尾,核心骨干流失。技术评估上明明可以提效 30%,最后连 5% 都没落到。这不是工具的失败,而是信任的失败。引入这类工具的第一原则应该是:它解放的是重复劳动,不是人;它的产出应该用来提高交付质量和做以前没资源做的事,而不是用来证明人可以被替换。


九、给不同角色的落地建议

给个人开发者 / 创作者: 放心用,但要给自己立三条规矩——(1)项目超过某个规模就必须引入测试和 lint;(2)每周做一次"读一遍自己代码"的对抗性审查;(3)重要节点手动重写核心模块,保持手感。Game Jam、独立小工具、内容型应用都是绝佳的练习场。

给专业工程师: 别抵触,也别全盘接受。把 AI 当成一个看过全世界代码、但从没在你公司干过活的天才实习生:他的活儿不能直接交,但参考价值极大。重点投资三件事:架构能力、调试能力、以及"把意图写成契约"的能力。前两项让你兜得住底,第三项让你跑得起来。

给技术管理者: 先定边界,再推工具。写清楚哪些场景鼓励用、哪些禁止用、review 流程怎么改、代码归属和责任人怎么认定。同时一定要做预期管理:前三个月大概率看不到提效数字,因为团队在学习曲线上。衡量指标应从"代码行数/工时"转向"需求吞吐、缺陷率、返工率、上线周期"。

给非技术背景的尝试者: 你可以做出令人惊讶的东西,但请诚实标注它的成熟度。原型就是原型,不要把它包装成产品去融资或上线收钱。如果真要走向生产,请找一个懂行的人来做终审——这笔钱省不得。


十、结语:氛围是入口,工程是出口

回顾这几年,Vibe Coding 最重要的贡献或许并不在于"让 AI 写代码"——这件事早在它被命名之前就在发生了。它的真正贡献在于,用一个不够严谨但极具传播力的词,完成了一次全行业的心理松绑:它让"不看代码也能做出东西"从羞耻变成了正当,让非程序员获得了创造的入场券,也让程序员得以承认自己不必再为每一行样板代码负责。

但松绑不等于放任。任何范式一旦从个人玩具走向生产系统,就必须重新长出骨架:约束、契约、审查、测试、责任归属。Karpathy 从 vibe coding 走向 agentic engineering,正是这条路径的缩影。

所以更准确的结论是:

Vibe Coding 不是一个终点,它是一个过渡态。它是人机协作在新能力曲线上的第一个自然姿势——笨拙、高效、危险、充满创造力。它的历史任务是把人从语法里解放出来;接下来的任务,是让人学会在更高的抽象层上重新负起责任。

氛围是入口,工程是出口。只在入口徘徊的人,最终会得到一堆跑得快但修不了的代码;直接从出口往里走的人,会错过这个时代最大的杠杆。正确的做法是从入口进来,带着清醒的边界意识,一路走到工程里去。


延伸阅读方向(可自行检索):Karpathy 关于 vibe coding 与 agentic engineering 的原文与后续澄清;Collins 年度词汇官方释义;AI 生成代码安全性的独立研究(Tenzai 等机构的测评报告);Cursor / Claude Code 官方关于大型代码库的最佳实践指南;关于 Plan Mode 与 Spec-driven 开发的工程实践讨论。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、开篇:为什么一个玩笑话会成为一个时代的技术关键词
  • 二、概念澄清:Vibe Coding ≠ AI 辅助编程
  • 三、技术底座:Vibe Coding 为什么在 2025 年才成立
  • 四、标准工作流:把"凭感觉"做成可重复的动作
    • 4.1 最小闭环
    • 4.2 五个高频失控场景(附对策)
    • 4.3 一个被严重低估的动作:冻结与沉淀
  • 五、边界:什么时候该用,什么时候绝对不该用
    • 5.1 舒适区(强烈推荐)
    • 5.2 灰色区(可以用,但必须加护栏)
    • 5.3 禁区(强烈不建议纯 Vibe)
  • 六、风险清单:隐性成本的四个维度
  • 七、从 Vibe 到 Agentic Engineering:范式的自然演化
  • 八、组织与人:被低估的那一半战场
  • 九、给不同角色的落地建议
  • 十、结语:氛围是入口,工程是出口
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档