Vibe Coding 开发实战指南

这篇文章介绍了“Vibe Coding”的核心原则与工作流,强调在AI辅助开发中应从“打字员”转变为“架构师”。文章提出了编写规范说明、上下文工程、计划-执行-验证循环等五项关键实践,并结合开源工具 Mistral Vibe 演示了如何高效、安全地进行生产级代码开发。

Image

目前几乎每个开发者都在使用 AI 编写代码,但很少有人能真正用好它。

一项随机对照试验发现,经验丰富的开发者在使用 AI 编码工具时,速度反而慢了 19%。然而,这些开发者却认为自己的速度提高了 20%。这种自我感觉与实际生产力之间存在近 40 个百分点的巨大差距。

Image

问题不在于工具,而在于使用工具的实践方法。缩小这一差距并不需要激进的变革,只需掌握一些简单的实践方法并转变思维方式。

本文将介绍这些核心原则,并将其付诸实践。这些基础知识适用于任何 AI 编码工具。在动手操作部分,我们将使用 Mistral Vibe,这是一个开源的 CLI 编码 Agent,具备专业工程师进行 Vibe Coding 所需的一切功能。

纯 Vibe Coding 与 AI 辅助开发的区别

在开始实践之前,有必要了解使用 AI 编写代码时的真实状态。行业内已经形成了一个光谱,你所处的位置决定了你的产出结果。

纯 Vibe Coding 意味着不加审核地接受 AI 的输出。这是 2025 年初的一种说法:“忘掉代码的存在”。这对于临时原型和周末实验很有效,但不适用于生产环境

数据清晰地表明了这一点:

  • 45% 的 AI 生成代码引入了安全漏洞。
  • 在对 470 个 PR 的分析中,AI 共同编写的代码的安全漏洞率高出 2.74 倍。

“能运行”与“生产就绪”之间的差距是巨大的。

AI 辅助开发 则位于光谱的另一端。你利用 AI 加速实现,但保持对代码的完全理解和所有权。你编写规范、审查 diffs、运行测试,并能向他人解释每一行代码。

AI 是打字员,而你才是工程师。

Image

这里有一个关键的思维模型转变:在传统开发中,大约 70% 的认知精力用于将想法转化为语法;而在 AI 辅助开发中,情况发生了反转——70% 的精力用于清晰地思考要构建什么,以及验证 AI 产出的内容。

Image

你的角色并没有缩小,而是发生了改变。你不再是打字员,而是架构师。

核心实践方法

在那些从 AI 辅助开发中获得真实、持续价值的开发者中,有五种实践方法始终如一。这些方法与“编写更好的 Prompt”无关。

1. 编写规范先于 Prompt (Spec before you prompt)

最大的错误是过早地进行 Prompt。

“帮我写一个任务管理器”只会产生垃圾代码。而一个定义了技术栈、模式、视图和身份验证的 15 行规范,可以在一次会话中生成一个可运行的原型。

一份好的规范包含三个支柱:

  • 意图:你要构建什么以及为什么要构建。
  • 约束:技术栈、架构模式、不该做的事情。
  • 验收标准:定义“完成”的可测试条件。

Image

你不需要 20 页的 PRD,一个涵盖这三点的 Markdown 文件就足够了。

对于较大的功能,可以尝试让 AI 在编写代码前先“面试”你。让它探测你的需求,询问边缘情况,并权衡利弊。面试结束后,让它编写一份规范文档,然后开启一个全新的会话来执行该规范。

2. 上下文工程优于 Prompt 工程

这是 AI 辅助开发中最被低估的技能。上下文工程是设计 AI 在任何给定时刻可获取的信息。这比你如何巧妙地措辞请求重要得多。

上下文窗口是共享资源,随着窗口填满,性能会下降。以下是三个实用规则:

Image

  • 开启新会话:为新任务启动新会话。不要让之前功能的陈旧上下文污染新的实现。
  • 即时上下文检索:与其预加载整个代码库,不如维护轻量级引用(文件路径、模块名),并使用 grep 等工具根据需要动态加载数据。
  • 聚焦不可推断的信息:让上下文文件专注于 AI 无法推断的内容,如项目约定、命名模式、架构约束和安全要求。AI 可以阅读代码,但读不到团队的潜规则

3. “计划 → 执行 → 验证”循环

Vibe Coding 是一场对话,而非一蹴而就。移动速度最快的开发者会将工作分解为细小的、可验证的步骤。

  • 计划 (Plan):定义此特定步骤的目标和约束。让 AI 在编写代码前先思考计划,这会迫使模型进行推理并发现边缘情况。
  • 执行 (Execute):让 AI 生成代码、测试或文档。
  • 验证 (Verify):审查 diffs,运行测试,提供具体的、可操作的反馈。

Image

关键在于将复杂任务分解为原子单元。AI 在处理项目的前 80% 时表现出色,但在边缘情况和集成上容易停滞。

4. 测试是基石

自动化测试是保证生产级 AI 辅助开发质量的最重要实践。

如果没有测试:

  • Agent 可能会在未实际测试的情况下声称某项功能正常。
  • 任何新更改都可能悄悄破坏不相关的功能。
  • AI 生成的代码倾向于“看起来正确”但可能包含微妙的逻辑错误。

测试驱动开发 (TDD) 与 Agent 配合得非常好。先写测试,确认测试失败,然后让 Agent 实现代码使测试通过。

5. 安全与审查不可妥协

安全是 AI 辅助开发风险最集中的地方。研究显示,40% 的代码补全建议在安全敏感场景下是不安全的。

三种降低风险的策略:

  • 安全优先的上下文:在项目上下文文件中包含安全指令(如“始终使用参数化查询”)。
  • 自我反思循环:在生成代码后,提示 Agent 在人工审查前先自查安全漏洞。
  • 供应链警惕:AI 可能会建议不存在的包或引入未经审查的依赖项,务必验证依赖。

Image

黄金法则:不要提交你无法向他人解释的代码。

需警惕的反模式

  • 无休止的错误循环:AI 引入 Bug,你描述 Bug,AI 通过引入另一个 Bug 来“修复”它。此时应停止循环,亲自阅读代码,找到根因。
  • 理解鸿沟:交付你不理解的代码。这会导致以后无法调试。
  • 会话漂移:长会话积累了陈旧上下文。当 AI 开始失去连贯性时,请开启新会话。

使用 Mistral Vibe 付诸实践

Mistral Vibe 是一个开源的 CLI 编码 Agent,具有以下特点:

  • 开源:基于 Apache 2.0 协议。
  • 可自托管:可以在本地硬件上运行,代码不出本地。
  • 模型无关:可以灵活切换不同的 AI 模型提供商。
  • 内置成本控制:通过标志位硬性限制会话成本。

Image

Agent 模式:匹配任务信任度

Mistral Vibe 提供了不同的模式:

  • 默认模式:每次执行工具(写文件、运行命令)都需要人工批准。
  • 计划模式 (Plan mode):只读模式。用于探索代码库、创建计划,而不写入任何内容。
  • 自动编辑模式 (Accept-edits mode):自动批准文件编辑,但仍询问 shell 命令。
  • 全自动模式 (Auto-approve mode):跳过所有确认,适用于格式化或文档等低风险任务。

Image

实战演示:从理解到交付 PR

以下是在单个代码库上的连续工作流:理解项目、计划新功能、实现、验证并交付 PR。

1. 理解代码库

Mistral Vibe 会探索项目结构,阅读文件并理解它们之间的关系。这是开发者最常跳过的步骤,但也是最值得投入的步骤。通过 @ 文件引用系统,你可以精确地引导 AI 了解特定模块。

2. 计划与实现功能

在编写代码前,先切换到计划模式。例如,要求 Mistral Vibe 为“删除账户”功能创建计划。Mistral Vibe 会生成结构化计划:需要更改哪些文件、端点长什么样、如何处理数据库迁移等。

一旦计划看起来正确,就执行实现。Mistral Vibe 会使用目标搜索替换来修补文件,并在写入磁盘前显示完整的 diff 预览。

3. 使用 Subagent 进行验证

功能实现后,我们可以委派一个 Subagent 在隔离的上下文窗口中运行验证任务。

Image

Subagent 的好处在于:

  • 上下文整洁:主 Agent 的上下文不会被 Subagent 探索过程中的琐碎信息污染。
  • Token 效率:Subagent 的工作会被压缩成摘要返回给主 Agent。

4. 使用自定义技能 (Skills) 交付

代码提交后,可以使用 Skills 扩展 Mistral Vibe 的功能。Skills 是定义在 Markdown 文件中的可重用组件。

例如,我们可以创建一个 ship-pr 技能,它会自动分析当前分支、生成 PR 描述、推送到远程仓库并使用 GitHub CLI 创建 PR。

总结与核心洞察

AI 赋予的速度是一种超能力,但过度自信是一个陷阱。

获益最多的开发者是将工程纪律带入过程的人:编写规范、制定计划、严格审查、反复验证。工具放大的是你的判断力,而不是取代它

从规范开始,将工作分解为步骤,验证一切。像对待初级开发者的拉取请求一样审视 AI 的输出。这就是 2026 年 Vibe Coding 的正确方式。

  • 原文链接: x.com/akshay_pachaar/sta...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
akshay_pachaar
akshay_pachaar
江湖只有他的大名,没有他的介绍。