谈谈Vibe编程(氛围编程)

Vibe编程已经出现半年了,这半年也尝试了很多工具和构建了一些小的应用,这篇文章也谈谈我对于Vibe编程的理解。

Vibe编程

Vibe编程中文翻译是氛围编程,2025年2月3日,前OpenAI联合创始人、前特斯拉人工智能主管Andrej Karpathy在社交平台X上发布了一条看似平常却引发全网热议的推文,其大意是说:

复制代码
有一种新的编码方式,称之为Vibe编程;它让你完全沉浸在氛围中,拥抱指数级增长,甚至忘记代码的存在。    

Karpathy用一种近乎诗意的语言描述了他的编程体验:"这已经不能算是真正的编程了,我只是看看、说说、运行、复制并粘贴,然后程序就能运行了。 ",这句话瞬间击中了无数开发者的内心,因为它精准地概括了一种全新的软件开发体验,在短短48小时内,这条推文获得了超过50万次转发,Vibe编程的话题迅速登上全球趋势榜。

我理解的氛围编程就是将 AI 工具当成你的编码助手,您就是一个架构师或者产品经理,其两者的分工是架构师或者产品经理描述详细的产品形态,编码助手负责所有的编码和部署工作。

Vibe编程和传统编程的差异

在传统编程中,开发者必须同时处理多个层次的抽象------不仅需要了解操作系统,还需要了解编程语言的细节,可能一不小心就出现内存泄漏或者 panic,每一行代码都必须实现,可能遇到常用的库也需要自己重新实现一遍。

在Vibe编程中,开发者似乎已经不需要关心编程语言了,由于底层大模型是全能的,从 C/C++Rust,从 JS 到偏门的 Web 框架,开发者转变为架构师,不再需要关心编码细节。

但是有个问题必须要注意:如果你真的想成为一个优秀的Vibe编程工程师,你还是需要懂数据结构、算法和设计模式等基础知识和行业经验知识,为什么?

  • 底层模型不一定能完全遵循规则,可能实现的算法不一定是最优的,你需要了解算法,并且将模型纠正过来
  • 行业经验知识有很多沉淀或者规则,大模型能了解通用知识,但是行业知识甚至私有化知识不一定能遵循,所以你需要读懂行业代码

所以对于复杂的系统架构、专业领域知识等,传统编程的精确性和可控性仍然不可替代,而快速原型开发、个性化应用等场景,Vibe编程的优势则更加明显。

Vibe编程工具推荐

以下是排名靠前的工具和LLM模型:

从上面看有很多Vibe工具是被大家在长期使用的,下面我重点介绍几个氛围编程的工具。

1. Lovable:lovable.dev/

Lovable设计哲学是"零技术门槛",你不需要理解什么是前端、后端,也不需要知道数据库如何工作,只需要描述清楚想要什么,Lovable就会处理所有技术细节。

它特别适合产品经理、设计师或创业者快速验证商业想法。

2. V0:v0.app/

Vercel推出的快速构建原型的工具,V0主要专注于前端界面生成,它的强项是创建美观、现代的用户界面,V0基于shadcn/ui和Tailwind CSS,生成的代码不仅功能完整,还遵循软件设计最佳实践。

3. bolt.new:bolt.new/

bolt.new特别合快速原型开发和MVP验证,内置了与Netlify的部署集成,可以一键将项目部署到生产环境,也集成了github,Figma等常用的程序员和产品经理的工具。

bolt.new的最大优势是整个编辑器都在浏览器中运行,无须下载安装任何软件,这降低了技术门槛,它支持多种技术栈;通过使用不同的技术组合,能帮你将逐渐理解前端、后端、数据库等概念的区别和联系。

4. Cursor,TRAE和其他vscode copilot

这些工具应该大家都不陌生,可能已经成为大家日常使用的一部分了,就不过多介绍了,对于氛围编程来说,这些工具其实是辅助,主要解决:

  • 如何选择最好的LLM模型,更好的生成工程
  • 如何处理长上下文,解决幻觉或者需求不遵循问题
  • 如何集成MCP或者Agent,实现高度自动化 ....

Vibe编程实践

1. 熟练掌握Prompt

PromptAI 时间的必备技能,我之前写过很多 Prompt 技能,这里就不再赘述了,就总结几个比较常用的:

  • 少样本提示,让 AI 模拟样例完成任务
  • 角色提示,比如以产品经理角度观察问题,就写"你是专业的产品经理",以程序员角度完成工作,就写"你是专业的后端程序员,需要处理..."
  • 思维链提示,这块可以用于解决程序bug,比如出现什么问题,可能是什么原因,排查路径可能是什么,让AI更快速的解决或者深入解决问题
  • 思维树提示,将问题分解为多个实现路径,让AI决定先实现哪个方案,再实现下一步,类似 plan 计划
  • Prompt 尽量提示样例,并给出明确的指令解决哪一个问题,而不是泛化
  • 告诉模型应该做什么,不应该做什么,当然这里不一定一次就能给出完整的,可以让模型多次输出后,总结一些约束规则

更多的 Prompt,可以参考:mp.weixin.qq.com/s/q5O32QOIY...

2. 四步法

如果要用好Vibe编程,可以尝试这4步:

(1)找到问题

如果你要尝试氛围编程,先不着急开始让 AI 开始帮你干活,你需要做好的就是分析问题,分析你需要的是什么,这个产品或者项目会有什么问题,风险点有哪些。

这个阶段你需要像一个非常有经验的产品经理,亦或是一个非常老练的项目经理,将问题找出来,一步一步拆解。

(2)转换问题,提出解决方案

这个阶段主要是对问题的细化,解决方案是什么,选项具体的技术方案,比如选择后端是 golang,选择的 golang 的框架是什么,是否需要采用微服务架构,部署的方案选择是什么,这一部分需要有经验的程序员调研其各个 AI 的工具链是否完善。

所以我觉得氛围编程会涌现类似 SupeBase 这样的全栈产品作为基础设施,解决前后端的部署和数据存等问题。

(3)实现最小可行性(MVP)

通过上面两个步骤,这一步就是开始让 AI 干活了,这一步骤需要掌握的最重要的技能就是 Prompt,将你的问题,解决方案,产品思路通过细化的 Prompt 给到 AI,当前阶段有些实践如下:

  • MVP 的原则是什么?最小化产品,这一步骤切记不要求将功能全部实现,AI 也不能接受这么多输出。
  • 目标验证工程的可行性,将"不需要的功能"告诉 AI 不要实现,做一些约束,输出的越多,需要改的就越多。
  • Prompt 一定是清晰的,比如说:"帮我做个编程网站",改为"创建一个蓝白色调的技术博客网站,主要分享Python编程教程,首页展示最新5篇文章的摘要和封面图片,文章支持代码高亮显示,右侧边栏包含文章分类、标签和作者简介,底部有评论功能。 "
  • 掌握具体化描述,最有效的练习方法是"5W1H":Who(用户是谁)、What(做什么功能)、When(什么时候使用)、Where(在什么环境下使用)、Why(为什么需要)、How(如何实现)。

(4)完善和优化方案

这一步骤是最难的,当 AI 将产品拆解为工程,并实现代码运行的 demo,但是可能会经历如下问题:

  • 运行出现错误,怎么解决?
  • 产品的 demo 不符合实际的要求?
  • 想修改按钮的逻辑,但是让 AI 修改可能改出几百行代码?
  • 修改颜色或者大小等属性,AI 一直不能理解,最后不得不亲自动手? ...

遇到如上问题怎么办?这里很多问题其实我也无法给出具体的方法,我给一些经验:

  • 错误反馈技巧:直接复制错误信息比描述更有效,比如编译报错,将报错信息直接贴给 AI

  • 先读一下大概的代码,当你知道需要修改那部分样式或者功能,可以直接指定当前文件或者给出具体的哪些行,这样 AI 能更准确的了解你的需求

  • 优化当前 demo,可以给出明确的要求,比如:

    复制代码
      请为应用添加如下精细化改进。    
      1. 视觉优化:使用现代的渐变背景,卡片式设计显示记录,添加适当的阴影效果。    
      2. 图标支持:为不同类别添加相应的图标(餐饮用餐具图标,交通用汽车图标等)。    
      3. 颜色区分:收入记录显示为绿色,支出记录显示为红色。    
      4. 动画效果:添加和删除记录时有平滑的过渡动画。    
      5. 个性化设置:用户可以自定义类别和对应的图标颜色。    
  • 将大的优化改为小的优化,每次只修改一个功能点

  • 提供参考样例,比如你的实现可以参考 xxx 网站的颜色和布局,哪些功能不需要等
    ....

验证Vibe编程的可能性

基于以上实践,我用 TRAE 尝试实现了一个 SimpleMath,主要解决在工作中要演示动画的问题,其中github如下:

github.com/linkxzhou/S...

以下是我的拆解步骤:

(1)第一步:找到问题

开始的时候我已经先想好我需要做什么,其实我的目标很简单,不需要复杂的功能,只需要结合了人工智能和可视化技术,让用户通过简单的文字描述就能生成精美的数学动画。

(2)第二步:提出解决方案

其实实现生成数学动画的方案有很多,用python也可以,用web展示也可以,但是选择不同的语言又有不同的技术栈,这样就变成了一颗决策树,对于 AI 直接让他干活肯定是不行,怎么办?

  • 自己先收集资料,这里的可行的实现方案有哪些?
  • 用什么技术栈,最好选择你自己熟悉的,这样出现问题,可以排查,另一个也可以鉴别 AI 是不是走偏
  • 大概的架构方案是什么?
  • ...

最后根据以上的综合考虑,我选择 p5.js,参考 Manim 方案实现,技术栈就用 Vue,为了整个项目简单部署,就没有选择后端方案。

(3)第三步:让 AI 实现MVP

完成前面两步骤,就可以开始让 AI 实现最小化需求,于是我简单描述我的 Prompt 如下:

markdown 复制代码
你是专业的Vue的开发者,现在要基于p5.js实现类似Manin的各种数学和算法演示项目,要求如下:
1. 基于Vue
2. 使用p5.js实现动画效果
3. 在AI对话框内输入,自动生成代码,放入p5.js框架内运行,展示动画效果
4. 使用openai的标准API
3. 样式布局:
- 左边是对话框架,类似AI对话框
- 右边是展示p5.js的演示动画效果
- 有设置的功能,选择模型,设置模型的参数等
- 页面简洁,清晰,不要有多余的功能(不需要登录)

这个时候 AI 工具会将如上需求拆解,细分,然后等你的想法和 AI 的想法是否一致,如果一致就开始编码。

(4)第四步:优化

优化这个步骤是最难的,如果你有编程基础可能还能看懂代码,分析出现的问题,如果只是产品,那遇到一个比较难的问题可能就会卡住很久,不过像 TRAE 等工具已经将生成的工程放到整个沙盒环境,从编译到控制台报错,都可以让 AI 基于错误找到问题的地方,这个还是挺方便的。

除了上述问题,在这个项目中遇到我到底要不要加一个后端接口的问题,由于没有加后端接口,发现使用 p5.js 重新渲染动画一直会报错,让 AI 尝试了十几次以后,问题还是没有解决,怎么办?只能修改方案,可能模型并不知道使用 p5.js 动态加载会出现一系列的 bug,于是架构师出马了,开始换方案,Prompt 如下:

markdown 复制代码
p5.ts 改为生成代码,从后端返回,然后加载到动画展示区域,应该需要改如下功能:
1. 增加express作为后端框架
2. 生成的代码传给express,express自动返回一个动态的URL
3. 动画展示区域展示返回的URL
这样就能解决动态加载p5.js的生成代码了

...

经过一系列的折腾,终于完成了,效果如下:

Vibe编程的思考

从各种网上的结论怎么看 Vibe编程 这个概念的呢?有两种不同的声音:

有人说:"氛围编程看似捷径,但本质是死路"

为什么这么说,可能很多人没有使用氛围编程写过生产代码,如果用代码上线过,的确可能会发生问题,看似逻辑是正确的,没有工程师当监工,这些代码只能永远存在仓库中。

氛围编程或许让功能上线飞快,但需要真正支撑生产环境的,是懂系统、能排查、懂业务逻辑的工程师。

我认可这种结论,作为一个工作10年的后端工程师,线上的任何一行代码都必须要保证准确,一旦内存泄漏,或者使用了某些全局变量,或者没有判空等,可能当时不会发现,运行几天以后就挂了...。

氛围编程毕竟用 AIAI 不一定 100% 准确,特别是复杂的问题,现在做一个假设,将一个复杂的问题拆分为 10 个步骤,假设 AI 每个步骤都能按照 98% 遵循,根据出问题的概率叠加,0.98 进行 10 次相乘,就只有 80% 左右的概率不出现问题,所以问题的确在 AI 上叠加。

有人说,可以让 AI 多次检查,多写测试用例,多做代码覆盖,其实对于一个黑盒来说,AI 是裁判也是运动员,怎么能做到一定正确呢?

也有人说:"氛围编程是未来,将改变编程的新范式"

我认为任何一种新的效率提升的范式都会受到旧思想的阻挠,又会被一群看到希望的人追捧,就像当年重新塑造经济范式的 BTC

反对的观点是氛围编程不能 100% 解决问题,但是真实情况是的确能提效,你想像一下当你想了解某个知识点,以前的思考习惯是自己整理资料,而且资料的内容可能杂乱,导致你的系统性思考是复杂的,现在 AI 按照你的想法帮你整理资料,并实现代码逻辑,是不是好像多了一个助手,肯定能提效。

就像我上面自己实现的 SimpleMath 开源项目,如果要我自己实现,至少需要3-5天,但是用 AI 写代码并优化,只花了5个小时。

如果你没有尝试氛围编程,可以尝试一下,你可能刚开始不适应,但是你的确能获得惊喜,不过前提是你接受这种方式,并且有一定的编程基础。

参考

(1)《玩转氛围编程》

(2)mp.weixin.qq.com/s/RGQOYAiiV...

相关推荐
水印云3 小时前
AI配音工具哪个好用?7款热门配音软件推荐指南!
人工智能·语音识别
Luke Ewin3 小时前
FunASR的Java实现Paraformer实时语音识别 | 一款无需联网的本地实时字幕软件
java·人工智能·语音识别·asr·funasr·paraformer·sensevoice
先做个垃圾出来………3 小时前
PyTorch 模型文件介绍
人工智能·pytorch·python
浅醉樱花雨3 小时前
vosk语音识别实战
人工智能·python·语音识别·asr·vosk
IoT砖家涂拉拉4 小时前
从“找新家”到“走向全球”,布尔云携手涂鸦智能开启机器人新冒险
人工智能·机器人·ai助手·ai智能体·ai机器人
xz2024102****4 小时前
最大似然估计:损失函数的底层数学原理
人工智能·算法·机器学习·概率论
TY-20254 小时前
【CV】OpenCV基本操作④——算术操作
人工智能·opencv·计算机视觉
聚客AI4 小时前
🙈AI Agent的未来:工具调用将如何重塑智能应用?
人工智能·agent·mcp
幂简集成5 小时前
通义灵码 AI 程序员低代码 API 课程实战教程
android·人工智能·深度学习·神经网络·低代码·rxjava