什么是 vibe coding,以及如何有分寸地使用它
Vibe coding 让你用对话的方式做软件,但它同样需要清晰的边界、可执行的测试,以及对结果负责的人。

简短回答
Vibe coding 是一种迭代式的软件构建方式:你用自然语言描述目标和改动,让 AI 提出代码。你负责界定每一个任务、验证行为、评估风险并决定哪些改动可以合入;工具加快的是执行速度,而不是替你承担产品责任。
能产出证据的 vibe coding 循环
速度来自反复跑一个小循环。每一轮以一次验证收尾,而不是以一眼看上去不错收尾。
想法
先说清楚问题,以及需要解决它的人是谁。
范围
选一个你能独立评审、不会混进多个约定的改动。
草稿
让 AI 在明确的边界内提出一种实现方式。
验证
跑一遍流程、评审改动,并把结论带进下一轮。
Vibe coding 指的是通过与人工智能(AI)对话来构建软件的方式。Andrej Karpathy 在 2025 年让这个说法流行起来,用它描述一种由模型主导的风格。在一个负责任的流程里,目标、边界和最终决定仍然掌握在人手里。
我们会跟着一个具体案例走:一个线下工作坊的报名页面。第一版会要求姓名、邮箱和所选场次,拒绝无效数据并显示一条确认信息。每一节都会回到这同一个功能,用来把速度和随意区分开。
Vibe coding 把意图变成一次次迭代
流程从用自然语言描述一个结果、并请工具给出代码开始。接着你观察已有的东西,指出一处改动,然后重复。价值不在于全盘接受每个回答,而在于缩短从一个决定到一次验证之间的时间。
对于工作坊报名,「做一个活动平台」一次打开了太多战线。「加一个包含姓名、邮箱和场次的表单;校验字段并确认名额」才定义了第一次迭代。你的第一个好提示词展示了如何把这个范围变成可验证的指令。
从小任务开始是一条经验法则,而不是保证。有些改动需要先协调整场迁移,或者先复核一个共享约定,才能动手改代码。合适的粒度取决于风险,以及你能否验证结果。
想法需要一个人和一个问题
有用的想法会说明谁在行动、解决的是什么困难。 在我们的案例里,感兴趣的人想选一个场次,并知道报名是否登记成功。组织方则需要完整的数据,没有重复项,也没有无效地址。
在要求界面之前先写下这些背景。这样你就能避免做出一个只有装饰性、却没有确认、名额或错误提示的页面。你也可以推迟那些不属于第一条路径的功能,比如支付、候补名单或管理员入口。
核心问题不是哪种技术看起来更新。要定义的是:对使用产品的人来说,哪个行为必须改变。 AI 可以提出组件,但它并不天然知道这场工作坊的优先级。
小范围保护了下一个决定
范围规定了什么进来、什么留在外面。第一轮里包含字段、校验和确认;把支付、账号和与外部服务的同步留在外面。这条边界让一次改动可以在一个工作时段内评审完。
当两个任务不共享同一个约定时,可以把工作拆开。你可以在另一个人准备示例数据的同时打磨确认文案,但最好不要让两个智能体同时修改报名数据结构。AI 智能体指南说明了如何应用最小权限和审批。
同时写下哪些文件或区域必须保持原样。 如果应用里已经有按钮、字段或样式规则,就要求复用它们。避免第二套实现,可以减少日后的不一致。
第一版草稿是评审材料
工具生成的是一个解决方案假设,而不是事实。 打开表单,完成一次报名,并阅读处理数据的那段代码。确认可见的提示与真实状态一致,并且不会在保存之前就出现。
尝试那些偏离顺利路径的输入。用一个没有 @ 的邮箱、把姓名留空、换一个场次、连续提交两次。如果表单接受了无效数据,就把动作、观察到的结果和期望的结果一起反馈回去。
把修复保持在同一个范围里。修校验的时候,不要顺手要一个动画或一个新面板。一次只改一个变量,才能看出是哪次改动解决了缺陷。
验证为每一轮收尾
自动化测试覆盖可重复的规则,而浏览器确认的是整体体验。对于这场工作坊,一个测试可以检查没填邮箱时会显示错误;真实流程还要确认焦点、文案,以及在 390 像素宽度下的表现。这两层回答的是不同的问题。
当流程调用外部服务时,检查控制台和网络请求。如果请求失败或写入了重复记录,一条可见的确认信息并不够。 记录你验证过什么、哪些留到了后面,这样下一次迭代就不会建立在猜测之上。
如果证据成立,就合入改动并选择下一个任务。如果失败,就带着新信息回到范围或草稿。循环因验收标准而结束,而不是因为疲劳,也不是因为模型语气笃定。
责任包含数据与权限
表单会处理姓名和邮箱,因此你需要明确的用途、保留策略和受限的访问权限。不要把真实数据粘进提示词,也不要把凭据当作上下文。 用虚构示例工作,并把密钥配置在生成内容之外。
AI 同样不应该在没有明确授权的情况下发布内容、发送邮件或修改权限。外部动作会影响其他人,而且更难撤销。在部署和任何对外沟通之前,保留一次人工审批。
在医疗、支付或法律判断这类领域,仅靠肉眼评审是不够的。要加上领域专家、安全测试和该领域自身的控制措施。Vibe coding 改变的是创建方式,而不是所需的责任等级。
最常见的失败都有可见信号
第一种失败是在核心还没验证之前就扩大产品。如果报名仍会写入重复记录,加上用户档案只会让缺陷状态成倍增加。先修好已经存在的约定。
第二种失败是在没弄懂的情况下接受依赖或架构。请它解释这次改动、评估维护成本,并运行项目自己的命令。只能在智能体会话里跑通的方案,还不算完成。
也可能出现看似合理、但测试很薄弱的代码。读一读每个测试到底断言了什么,并故意构造一个本该失败的用例。只有当测试验证的是约定好的行为时,绿色的测试套件才算证据。
扩大之前先检查这一轮迭代
在案例的每一轮结束时使用下面这些勾选项。在能为每一条给出理由之前,不要开始下一个任务。
- 这次迭代解决了工作坊报名中的一个具体需求。
- 范围排除了支付、账号和未获授权的改动。
- 有效状态、空状态和错误状态都测过了。
- 流程在键盘操作和窄屏下都能走通。
- 使用的数据是虚构的,权限是最小的。
- 发布前有人评审并授权了这个结果。
Vibe coding 是一种迭代纪律,而不是跳过控制环节的捷径。 如果你带着证据反复走完想法、范围、草稿和验证,每一轮都会为下一个决定留下更清楚的基础。
小测验
检查你的下一次迭代
选出那个让工作保持有界且可验证的决定。
1 / 3
显示答案
1. 表单看起来已经不错了。负责任的下一步是什么?
正确答案: 测试有效提交、错误状态、键盘操作和移动端显示。
外观不能证明行为;先测流程和它的各种状态,再扩大范围。
2. 第一次迭代适合放进什么任务?
正确答案: 完成一个工作坊的报名功能,并带上校验。
一个有界的功能,能让你在不混合多个约定的前提下检查输入、错误和结果。
3. 谁来决定结果是否可以发布?
正确答案: 评审并发布的人或团队。
责任属于接受改动、掌握数据并授权发布的人。
来源
- 最早提出 vibe coding 这一说法的帖子Andrej Karpathy 于 X · 访问于 2026-07-15
- Prompt engineeringOpenAI · 访问于 2026-07-15
- Prompt design strategiesGoogle AI for Developers · 访问于 2026-07-15
常见问题
不会写代码可以做 vibe coding 吗?
可以在不熟悉语法的情况下起步,但你需要学会描述状态、读懂报错并验证结果。产品风险越高,越需要专业的技术评审。
开始需要什么工具?
任何能提出并修改代码的工具都可以用来练习。根据你的环境、权限和预算来选,并从一个你能完整验证的任务开始。
vibe coding 能用于真实产品吗?
如果团队补上测试、评审、安全、可观测性和维护,它可以成为真实产品的一部分。生成出来的原型不会因为看起来完整就等于可上线。
如果 AI 引入了缺陷,谁来负责?
接受并发布这次改动的人或团队。借助 AI 写代码并不免除检查数据、权限、无障碍和行为的义务。

