Vibe Coding
氛围编程是指通过向 AI 模型描述需求来构建软件,并接受生成的代码而不阅读代码;这个术语诞生于 2025 年。
氛围编程是指用日常语言向 AI 模型描述想要的功能,然后不阅读它生成的代码就接受代码,只根据程序表面上能否运行来判断结果。Andrej Karpathy 是 OpenAI 创始成员之一,曾任特斯拉 AI 负责人;他于 2025 年 2 月将这种实践称为“一种新型编程”,并形容其特点是“你完全顺着感觉来,拥抱指数级增长,忘记代码本身的存在”。他描述了自己通过语音与 Cursor 的 Composer 对话、不看差异就点击“全部接受”,并在没有任何说明的情况下粘贴错误消息的做法,还称这种方式“用来做周末的一次性项目还不错”。几个月内,这个词就远远超出了程序员圈子;《柯林斯词典》将“vibe coding”评为 2025 年度词汇。Cursor、Claude Code 和 Replit Agent 等编程智能体,以及 Lovable、Bolt 和 v0 等应用构建工具,让没有编程经验的人也能从提示词开始,构建并部署 Web 应用。
氛围编程的工作方式#
用户描述想要的行为并测试结果,AI 智能体则负责编写、编辑和调试代码。每一轮的结果可能是运行成功、出现错误后由用户粘贴回来,或者看起来不对劲而需要重新描述:
这种方法之所以可行,是因为大型语言模型(LLMs),尤其是经过代码训练的推理模型,如今能够为 Web 前端和 Python 脚本等常见技术栈生成可运行的程序;此外,编程工具的智能体运行框架可以自行运行程序并读取错误,无需人工协助。这种方法适合原型、内部工具和只有作者本人使用的个人软件,因为这类场景中 Bug 的代价很低,而速度最重要。
氛围编程与相关实践#
- AI 辅助编程:使用 LLM 编写代码,再由开发者审查并理解代码。Simon Willison 在文章《并非所有 AI 辅助编程都是氛围编程》中划分了两者的界限:如果你审查并充分测试了 LLM 编写的代码,而且能向他人解释它,那么这就是软件开发。
- 智能体式编程:编程智能体从头到尾完成任务,这些工具也正是氛围编程使用的工具。专业团队会在开发流程中保留代码审查、测试和持续集成(CI)。
- 低代码和无代码平台:通过可视化构建工具,让非程序员使用预制组件组合应用。氛围编程则会生成任意语言或框架下的常规源代码。
- 生成式 AI:能够生成文本、图像和代码的更广泛技术。氛围编程是使用这项技术的一种方式。
使用氛围编程构建计算机视觉应用#
计算机视觉原型是常见的氛围编程项目,因为只需一个简短脚本,就能在网络摄像头画面中检测、计数或跟踪对象。生成的代码是否最新,取决于模型的训练数据;因此,只凭记忆工作的智能体可能会推荐过时的模型权重或参数。Ultralytics Agent Skills为 Claude Code、Codex、Cursor 和其他兼容智能体提供了模型选择、数据集准备、训练、推理和导出流程。这些流程以固定到某个 ultralytics 版本的目录为依据,并要求智能体在目录与已安装包的 yolo checks 和 yolo cfg 输出不一致时,以已安装包的输出为准。像“在我的数据集上训练一个 YOLO26检测器并将其导出为 ONNX”这样的请求,就会按照技能文档中的训练和导出流程执行,而不是依赖模型对旧版本的记忆。
未经审查代码的风险#
Karpathy 指出,代码“会变得超出我平时的理解范围”,因此后续的修改和修复也会依赖模型;没有人查看的地方就会累积技术债务。拥有 Shell 访问权限的智能体可以删除文件或运行破坏性命令,因此编程工具会让它们在智能体沙箱中运行,并在执行高风险操作前征求许可;智能体读取的依赖项或网页也可能携带提示词注入。安全漏洞也可能以同样的方式随软件发布:Veracode 于 2025 年针对 80 项编程任务对 100 多个 LLM 进行测试,结果发现生成代码在 45% 的情况下引入了安全漏洞;Java 的失败率超过 70%,Python、C# 和 JavaScript 则在 38% 到 45% 之间。










