Vibe Coding:氛围编程
一句话解释Vibe Coding氛围编程是一种用自然语言描述想法让 AI 编程工具生成、修改、运行和调试代码开发者主要通过观察结果和继续提要求来推进软件开发的方式。更直白地说你不再逐行写代码而是说出你想要的效果让 AI 先写出来再通过运行结果、报错信息和继续提示来迭代。为什么最近变火Vibe coding 这个词通常归功于 Andrej Karpathy 在 2025 年 2 月发布的一条 X 帖子。他描述了一种新的编程体验开发者“顺着感觉走”让 AI 生成代码接受改动运行程序把错误再丢回给模型直到结果大体可用。Karpathy 原本描述的是一种轻松、实验性、甚至有点自嘲的周末项目玩法但这个词很快被整个行业拿来概括 AI 编程的新变化。它变火有几个原因。第一AI 编程工具真的变强了。早期 Copilot 更像补全器主要帮你写一行或一个函数到了 Cursor、Claude Code、Codex、GitHub Copilot coding agent、Replit Agent、Lovable、Bolt 等工具流行后AI 可以跨文件修改、生成界面、运行测试、解释报错甚至独立完成一些小型任务。第二自然语言开始成为编程入口。过去写软件需要先学语法、框架、构建工具、部署流程现在用户可以从一句“帮我做一个待办事项 app”开始让模型先生成原型。第三产品原型速度大幅提升。很多人并不是要写一个长期维护的大系统而是想快速验证一个想法一个管理页面、一个小工具、一个自动化脚本、一个演示网站。Vibe coding 很适合这种低风险、快速反馈的场景。第四2025 年 Collins Dictionary 把 “vibe coding” 选为年度词汇让它从开发者圈层扩散到大众语境。这个选择并不代表它一定是严谨工程方法而是说明它准确捕捉到了 2025 年软件创作方式的变化。第五AI Agent 和 Tool Use 的成熟让“只靠聊天生成代码”变成“AI 可以进入开发环境做事”。当模型能读文件、改文件、运行测试、调用终端、提交 PR编程就从“生成代码片段”变成“协作完成任务”。但也正因为它变得太火vibe coding 的含义开始被滥用。很多人把任何 AI 辅助编程都叫 vibe coding这会混淆一个关键区别认真阅读、测试、理解 AI 生成代码是 AI-assisted software development完全不看代码、只看结果和感觉推进才更接近 Karpathy 原始语境里的 vibe coding。它解决了什么问题降低入门门槛不会完整写代码的人也能用自然语言生成小工具或原型。提升原型速度想法可以快速变成可运行界面适合探索和验证。减少样板代码页面布局、CRUD、测试脚手架、配置文件等重复劳动可以交给 AI。改善学习体验初学者可以边提需求、边看代码、边问解释。加速小型自动化个人脚本、一次性数据处理、内部小工具可以更快完成。帮助开发者突破空白页不知道从哪里开始时先让 AI 生成一个可改的版本。推动自然语言编程用户表达意图模型把意图转换成代码和操作。它真正解决的是“从想法到第一个可运行版本”的摩擦而不是自动解决软件工程中的所有长期问题。核心概念1. Intent意图Vibe coding 的输入通常不是精确技术规格而是用户意图做一个页面左边是任务列表右边显示详情。 风格清爽一点支持新增、删除、标记完成。这和传统编程不同。传统编程需要把意图翻译成具体代码vibe coding 则让 AI 先完成大部分翻译。人的角色从“逐行实现者”转向“意图表达者、结果评估者和方向调整者”。2. Fast Feedback Loop快速反馈循环Vibe coding 的核心不是一次性提示而是快速循环说出想法AI 生成代码运行或预览发现问题继续描述修改再生成、再运行。描述想法AI 生成代码运行/预览观察结果继续提要求或贴报错这个循环越短vibe coding 越流畅。它像在和一个高速搭积木的助手配合你负责方向它负责快速堆出东西。3. Accept All信任式接受Karpathy 原始描述里一个很有代表性的动作是直接接受 AI 的改动而不是逐行审查 diff。这正是 vibe coding 的快乐来源也是风险来源。你可以极快前进但代码可能逐渐超出你的理解范围。一旦出现 bug、安全问题或架构混乱你可能不知道该从哪里修。所以“Accept All” 适合低风险探索不适合严肃生产代码。4. Run-and-Repair运行并修Vibe coding 中开发者常常不仔细分析错误而是把报错信息复制给 AI让它修。这在很多情况下有效因为现代模型能理解堆栈、包管理错误、类型错误和常见框架问题。但它也可能形成“随机修到能跑”的模式问题表面消失了底层设计却越来越乱。5. Semantic Layer语义层编程传统编程语言要求精确语法。Vibe coding 把自然语言放在更高层用户说“让 sidebar 更紧凑”“这个按钮点了没反应”“把登录改成邮箱验证码”AI 负责把这些语义意图转成代码。这不是完全替代编程语言而是在编程语言上方增加了一层“意图接口”。6. Code Ownership代码所有权Vibe coding 最大的问题之一是代码所有权变得模糊。如果你没有读过、理解过、测试过代码你是否真的拥有它如果它出问题你能维护吗如果它泄露数据、产生安全漏洞、违反许可证责任算谁的从工程角度看代码所有权不是“谁让 AI 生成的”而是“谁能解释、维护、验证和负责”。工作原理Vibe coding 的典型流程可以拆成四层。第一层是表达意图。用户用自然语言、截图、草图、语音或示例描述想要的功能。第二层是 AI 生成。模型根据上下文生成代码、配置、命令或文件改动。第三层是执行反馈。工具运行代码、构建项目、执行测试、显示页面或返回错误。第四层是人类判断。用户看结果是否符合预期再继续提示或决定结束。这套流程依赖几个基础能力LLM 能理解自然语言需求编程模型能生成较完整代码IDE 或 Agent 能读写项目文件工具能运行和测试代码用户能判断结果是否可接受上下文能持续携带项目状态。如果这些能力缺一环vibe coding 就会变得卡顿。例如模型不了解项目结构会改错文件没有测试错误很难发现用户无法判断质量就容易把问题带到生产环境。典型应用场景1. 个人小工具例如批量重命名文件、整理 CSV、生成 Markdown 表格、做一个本地网页表单。这个场景非常适合 vibe coding因为风险低、反馈快、需求通常很个人化。2. 周末原型和 Demo想验证一个产品想法可以让 AI 快速生成页面、路由、假数据、简单后端和部署配置。即使代码不完美也能帮助你判断想法是否值得继续。3. 学习编程初学者可以先让 AI 做出可运行程序再逐段询问“这段代码是什么意思”“为什么要这样写”“能不能改成更简单的版本”不过学习时不能只看最终结果。真正有价值的是把 AI 生成物当教材而不是当魔法。4. UI 调整和样式迭代“把按钮变小一点”“让侧边栏更紧凑”“移动端布局乱了修一下”这类视觉反馈很适合 vibe coding。因为用户能直接看结果反馈明确。5. 脚手架和样板代码创建项目结构、添加配置、写基础 CRUD、生成测试模板AI 往往很擅长。开发者可以用 vibe coding 快速搭骨架再进入更严谨的工程阶段。6. 探索陌生框架当你不熟悉某个框架时可以先让 AI 生成一个最小可运行例子。你不必从文档第一页开始而是先有一个活的项目再反向学习。和其他概念的区别概念核心含义和 Vibe Coding 的关系AI-assisted coding用 AI 辅助写代码但人类审查和理解更严谨、更适合生产Vibe Coding主要凭自然语言和运行结果推进可能不读代码更快、更实验、更高风险Agentic CodingAI Agent 跨文件执行任务、运行测试、提交改动可以包含 vibe coding也可以很工程化No-code用可视化组件搭应用Vibe coding 用自然语言生成真实代码Low-code少量代码加平台配置Vibe coding 依赖 AI 生成代码Pair Programming两个人共同理解代码AI pair programming 更强调人机协作和审查Prompt Engineering优化提示词Vibe coding 依赖 prompt但目标是生成和迭代软件AI Workflow可控流程编排生产级 AI 编程应从 vibe coding 升级为 workflowVibe coding 和专业 AI 辅助开发的区别最重要的区别是你是否理解并负责代码。维度Vibe Coding专业 AI 辅助开发代码审查可能很少看 diff必须阅读关键改动测试经常靠手动试用单元测试、集成测试、CI安全容易忽略有安全检查和依赖审计适合场景原型、个人工具、学习团队项目、生产系统责任边界模糊人类开发者负责维护性可能快速恶化需要设计和重构这不是说 vibe coding 没价值而是它适合特定阶段。把它当原型工具很好把它当生产工程方法就危险了。一个简单例子假设你想做一个小工具把一段会议记录转换成待办清单。你可能对 AI 说帮我做一个本地网页工具。 左边是文本框用来粘贴会议记录。 右边显示提取出的待办事项包括负责人、截止时间和任务描述。 先用纯 HTML、CSS、JavaScript不要后端。AI 生成代码后你打开页面发现结果还行但样式不好。你继续说界面太挤了。把左右两栏改成卡片布局移动端上下排列。 待办事项用表格展示如果没有负责人就显示“待确认”。运行后发现一个报错Uncaught TypeError: Cannot read properties of undefined你把报错贴给 AI它修复。最后你得到一个能用的小工具。自然语言描述工具想法AI 生成前端代码浏览器预览继续描述 UI 和行为调整AI 修改代码运行时报错把报错交给 AIAI 修复得到可用原型这就是 vibe coding 最舒服的地方你可以很快从想法走到可运行版本。但如果你要把它给公司同事使用下一步就不能继续只凭感觉。你需要检查是否会把会议记录发到第三方服务是否有数据隐私风险是否能处理长文本是否有测试是否有错误提示是否能导出结果代码是否容易维护。这一步开始就从 vibe coding 进入工程化。常见误解误解 1Vibe coding 等于所有 AI 编程不是。用 AI 生成代码、再认真审查、测试和理解是 AI 辅助开发。Vibe coding 更强调不深入阅读代码、通过结果和提示快速推进。把所有 AI 编程都叫 vibe coding会掩盖严肃工程实践和低风险实验玩法之间的差别。误解 2Vibe coding 说明程序员不重要了不对。它降低了写出第一个版本的门槛但软件工程远不止写代码。真实软件还需要需求判断、架构设计、数据建模、安全、性能、可访问性、测试、部署、监控、维护、团队协作和责任承担。这些并不会因为 AI 能写代码而消失。误解 3只要能跑就是成功能跑只是第一步。代码可能有安全漏洞、隐私泄露、性能问题、边界条件错误、依赖风险和维护困难。Vibe coding 很容易产生“演示可用生产危险”的代码。误解 4不会编程的人最适合 vibe coding 生产应用不会编程的人可以用 vibe coding 学习和做个人工具但生产应用需要理解风险。越是不懂代码越难判断 AI 生成物是否安全、可靠、可维护。这不是排斥初学者而是要区分学习探索和对外发布。误解 5安全检查可以以后再补很多安全问题不是最后扫一下就能补好的。认证、权限、数据存储、输入校验、密钥管理、日志脱敏、依赖选择都需要从设计阶段考虑。如果一开始就把高风险系统 vibe 出来后面修可能比重写还难。未来趋势1. 从 Vibe Coding 到 Agentic Engineering随着 AI 编程 Agent 变强行业会逐渐从“凭感觉生成代码”转向“有计划、有测试、有审查的 agentic engineering”。也就是说AI 仍然写大量代码但流程会更工程化明确需求生成计划小步修改自动测试安全扫描人类审查CI/CD回滚机制。2. AI 编程工具会更像开发团队成员未来 AI 编程工具不会只在 IDE 里补全代码。它们会读 issue、开分支、修改多个文件、运行测试、生成 PR、解释变更。GitHub Copilot coding agent、Codex、Claude Code、Cursor Agent 等都在推动这个方向。3. 安全和治理会成为核心能力随着 AI 生成代码进入更多系统安全风险会被放大。OWASP LLM Top 10、Cloud Security Alliance 等组织已经开始关注 AI 生成代码、prompt injection、供应链风险、越权工具调用和不安全输出处理。未来团队会需要AI 生成代码标记强制代码审查自动测试覆盖依赖漏洞扫描secret scanningSAST/DASTsandbox权限控制生产发布审批。4. 教育会改变Vibe coding 会改变编程学习路径。初学者可能先学“如何描述需求、如何读 AI 生成代码、如何测试、如何调试”再深入语法和底层原理。但基础仍然重要。越理解计算机、网络、数据库和软件设计越能有效指挥 AI也越能发现 AI 的错误。5. 原型和生产会更明确分层未来更成熟的团队会明确区分Vibe prototype快速验证想法Engineering hardening重构、测试、安全、性能Production release审查、监控、权限和维护。这比争论“vibe coding 好不好”更有用。问题不是能不能 vibe而是什么时候该停止 vibe进入工程化。小结Vibe coding 是用自然语言驱动 AI 生成和迭代代码的开发方式。这个词由 Andrej Karpathy 在 2025 年 2 月提出并在 2025 年迅速流行。它的核心体验是描述想法、AI 生成代码、运行观察、继续提示、快速迭代。Vibe coding 适合低风险原型、个人工具、学习探索、UI 调整和样板代码生成。它不等于所有 AI 辅助编程如果你认真审查、测试并理解代码那更接近专业 AI-assisted development。最大风险是代码超出人的理解范围带来安全、隐私、维护和技术债问题。对外发布或生产系统不应只靠 vibe coding需要测试、审查、安全扫描、权限控制和版本管理。未来趋势不是“程序员消失”而是开发者从逐行编码更多转向意图表达、架构判断、审查验证和 AI 协作。最健康的态度是用 vibe coding 加速探索用工程纪律负责交付。参考资料Andrej Karpathy, original X post coining “vibe coding”, 2025: https://x.com/karpathy/status/1886192184808149383Simon Willison,Not all AI-assisted programming is vibe coding (but vibe coding rocks), 2025: https://simonwillison.net/2025/Mar/19/vibe-coding/Simon Willison,Vibes, 2025: https://simonwillison.net/2025/May/1/vibes/Ars Technica,Will the future of software development run on vibes?, 2025: https://arstechnica.com/ai/2025/03/is-vibe-coding-with-ai-gnarly-or-reckless-maybe-some-of-both/Collins Dictionary,Word of the Year 2025: https://www.collinsdictionary.com/us/woty/AP News,AI is transforming how software engineers do their jobs. Just don’t call it ‘vibe-coding’, 2025: https://apnews.com/article/09f35ccc7545ac92447a19565322f13dGitHub,GitHub Copilot: Meet the new coding agent, 2025: https://github.blog/news-insights/product-news/github-copilot-meet-the-new-coding-agent/GitHub Newsroom,GitHub Introduces Coding Agent For GitHub Copilot, 2025: https://github.com/newsroom/press-releases/coding-agent-for-github-copilotOWASP,Top 10 for Large Language Model Applications, 2025: https://owasp.org/www-project-top-10-for-large-language-model-applications/Cloud Security Alliance,The AI Velocity Gap, 2026: https://labs.cloudsecurityalliance.org/research/csa-whitepaper-ai-velocity-gap-development-security-capacity/Songwen Zhao et al.,Is Vibe Coding Safe? Benchmarking Vulnerability of Agent-Generated Code in Real-World Tasks, 2025: https://arxiv.org/abs/2512.03262Ian J. Watson,Vibe coding: programming through conversation with artificial intelligence, 2025: https://arxiv.org/abs/2506.23253下一篇Context Engineering上下文工程