Vibe Coding 开发工作流:从意图描述到工程化落地的演进
什么是 Vibe Coding,以及它不是什么
Vibe Coding(氛围编程)由 Andrej Karpathy 于 2025 年提出,核心不是"不写代码",而是"不纠结代码"。开发者负责描述意图、运行结果、反馈方向;AI 负责生成和修改。代码从"手写"变成"对话产物"。Karpathy 的原话描述了那种沉浸状态:“你完全沉浸于编程氛围中,看到东西、说出东西、执行东西,然后大部分时候它就能用。”
但必须澄清一个关键区别:Vibe Coding 不等于无代码/低代码。无代码平台输出的是封闭配置,而 Vibe Coding 生成的是原生可读、可修改、可独立部署的完整源码,可以自由二次开发、接入 CI/CD、进行工程化迭代。它不局限于任何预设组件,边界只取决于大模型的认知边界。
实战闭环:描述 → 生成 → 运行 → 报错 → 迭代
Vibe Coding 的工作方式可以压缩成一个极简循环:
whilenotdone:code=ai.generate(describe_intent())# 描述意图,AI 生成代码result=run(code)# 运行验证prompt=result.errorifresult.errorelsenext_feature()# 报错原样回传``` 重点不是一次写对,而是让代码始终可运行,然后一小步一小步往前推。实战中有一个待办 API 的经典示例:用一句话让 AI 生成 FastAPI 的待办接口,跑通后再逐轮加 SQLite、加前端、加 Docker、加鉴权——每次只加一个功能,坏了好回滚。## 工具选型:没有最强,只有最合手Vibe Coding 的载体是一批"AI 原生"工具,它们的共同点是把大模型嵌进开发回路,但侧重不同。Cursor 是 AI 原生 IDE,擅长多文件编辑和 Tab 智能补全;Claude Code 是终端 Agent,擅长长任务、跨文件重构和命令行工作流;Windsurf 的 Cascade 强调上下文感知的多步编辑;Cline 是 VS Code 开源插件,支持自托管模型、透明可控;GitHub Copilot 适合在熟悉代码库里加速填空。 选工具的第一原则:先用手边最顺的,跑通闭环比纠结"哪个最好"重要十倍。等痛点出现——比如总丢上下文、总改错文件——再针对性换。## Prompt 不是许愿,是写"验收合同"新手最大的坑是把 prompt 当搜索引擎,丢一句"帮我写个商城"就等奇迹。好的 prompt 更像一份验收合同:写清输入、输出、约束、边界、测试。一个可复用的骨架包含五个要素:上下文(给模型"地图",比如项目是 FastAPI 单体、已有 models.User)、目标(定义做什么,比如新增导出 Excel 的接口)、约束(划定边界,比如不引入新依赖、遵循现有分层)、验收(明确完成标准,比如返回200加含表头的文件、附测试)、风格(统一口味,比如中文注释、函数不超过40行)。 另一个重要的技巧是描述症状而非命令修复。别只说"修复登录 bug",要描述"用户反映 session 超时后登录失败,检查 token 刷新逻辑,先写一个能复现问题的测试,再修复它"。信息越具体,AI 的修复越精准。## 迭代循环:质量的关键杠杆"多试几次"谁都会说,但怎么试差别巨大。一个有限预算(最多3轮迭代)的对比实验揭示了规律:naive 策略(无反思、线性试)解决率约87.6%、平均收敛2.17轮;adaptive 策略(后期加速)解决率99.1%、收敛1.81轮;reflect 策略(每轮反思错误)解决率99.2%、收敛1.73轮。 结论很直观:不是"试更多次"有效,而是"每次都从错误里学"有效。落地成动作就是——每次报错,别只丢回一句"fix it",而要说"错误是 X,原因是 Y,请在 Z 处加防御"。这个习惯单次看起来差别不大,累计起来就是99%和87%的差距。## 两个被低估的护身符:Git 与上下文管理Git 是你的时间机器。Vibe Coding 改得快、改得猛,一旦模型把项目"改崩",没有版本记录会非常痛苦。铁律:每完成一个可运行的小步就 commit,任何一步翻车都能 checkout 回到上一个好状态。 上下文管理要拿捏"刚刚好"。两类错误最常见:给太少,模型不知道你在用什么框架;给太多,关键约束被淹没在噪声里。经验法则是先给"最小可运行上下文",按需逐步补充;把核心约束(技术栈、不可破的规矩)放在 prompt 开头。另外,随着对话轮次增加,上下文会膨胀、模型会漂移,完成一个功能模块后开新会话专注下一个任务,能有效避免"上下文腐烂"。## 最佳实践清单综合各家经验,一份可直接照做的清单:约束先行——启动前明确技术栈、数据库模型、权限模型、编码规范,把硬性约束写进初始 prompt,避免 AI 自由发挥导致架构漂移;最小可验证迭代——不一次性要求 AI 完成整个大型项目,按模块拆分,每完成一个模块就执行测试;测试即契约——优先让 AI 生成单元测试和接口测试,用测试用例作为判断代码是否合格的标准,而不是主观"观感";独立安全审计——Vibe 生成的代码必须经过独立安全审查,禁止直接上线;保留人工重构节点——连续多轮迭代后安排人工重构,清理 AI 补丁式代码,维持项目架构健康。## 风险与边界:Vibe Coding 不是生产万能钥匙Vibe Coding 存在显著的工程短板。技术债快速堆积是最大问题——AI 会不断叠加补丁修复 bug,长期不做重构,代码结构混乱,后期维护成本急剧上升。安全漏洞风险也不容忽视——自动生成的接口、鉴权逻辑、SQL 语句容易存在注入、越权、敏感信息泄露等缺陷,快速迭代过程极易忽略安全校验。此外还有隐性逻辑幻觉(代码语法可运行但业务逻辑有隐性错误)、依赖与环境陷阱(本地沙盒正常、生产构建失败)。 因此,核心交易、支付、医疗、金融等高风险系统,必须人工审查、测试和监控。Vibe Coding 适合探索和原型,不适合盲目裸奔上生产。## 从 Vibe Coding 到 Agentic Engineering2026年,随着 AI 生成代码在生产环境中引发的事故越来越多,业界开始反思,Karpathy 也提出了 Vibe Coding 的进阶形态——Agentic Engineering(智能体工程)。核心缺陷在于 Vibe Coding 的评价标准单一化:它把"现在看起来能不能跑"当成了唯一标准,而忽略了安全性、可维护性、边界测试、性能等其他维度。当代码生成的成本趋近于零,"验证代码"和"架构设计"的成本就成了最大的瓶颈。 Agentic Engineering 的三大核心纪律:意图拆解——不再给 AI 一个宏大的"创世指令",而是由人类架构师将大需求拆解为具备明确输入输出契约的独立任务,分发给不同的 AI Agent;强制验证循环——AI 写完代码后不能直接合入,必须强制编写单元测试,甚至引入另一个审查 Agent 寻找安全漏洞和性能瓶颈;架构护栏——通过严格的规则文件、类型系统和 CI/CD 流水线给 AI 戴上"镣铐",AI 只能在人类划定的架构沙盒内行动。## 结论:Vibe Coding 没有死,它退回了最擅长的领域Vibe Coding 适合的领域是0到1:原型、MVP、内部工具、一次性脚本、技术探索。它极大地缩短了"从想法到反馈"的时间,降低了"一个想法值得被做成软件"的最低门槛。而在1到 N 的生产级迭代中,团队需要的是 Agentic Engineering 的纪律——人的架构判断力、业务理解与质量管控,是整个体系不可替代的核心。 用一句话总结:用 Vibe 探索,用规范建造。Vibe Coding 是强大的生产力工具,而不是完全自主的软件开发黑盒。它改变的是工程师的工作重心——从写代码转向定义意图、设计系统、制定校验规则、把控产品质量。