关于“Vibe Coding”的效果,近期一项研究给出了更冷静的观察。过去一年,自前OpenAI创始成员Karpathy提出后,“Vibe Coding”的概念让整个AI编程赛道热度飙升。大语言模型厂商们以极快的速度迭代其编程能力,智能编程工具也从最初的“超级自动补全”进化到了具备一定自主性的Agentic时代。
流行的叙事似乎暗示,开发者只需将需求丢给AI,然后“跟着感觉走”,剩下的交给模型自动完成即可。然而,回到真实的软件开发环境中,职业工程师真的是这样使用AI工具的吗?一项来自学界的最新研究,给出了一个可能与网络氛围截然不同的答案:专业开发者极少完全放手,他们始终牢牢掌控着编码过程。

这项研究在HackerNews等开发者社区也引发了广泛讨论。

一项基于真实工作场景的硬核研究
这项研究的论文标题直指核心:《Professional Software Developers Don’t Vibe, They Control》(专业软件开发者从不凭感觉,他们掌控一切)。研究团队来自加州大学圣地亚哥分校与康奈尔大学,成员包括软件工程与程序分析领域的资深学者。他们旨在从真实的工程实践出发,探究两个关键问题:
- 观察 13位资深工程师 在真实项目中如何使用AI编程工具。
- 调研 99位职业开发者 的实际使用习惯与决策逻辑。
这些参与者均为拥有3至25年经验的在职专业人士,他们处理的任务来自正在维护的真实代码库,而非实验性的演示项目。

研究采用了对13位参与者的实际工作环节进行观察与访谈的形式。在观察中,工程师们使用了当时主流的AI编程工具,如Claude Code、Cursor、Windsurf、GitHub Copilot等,模型选择以Sonnet和GPT-5为主。

这项研究本质上想回答一个核心问题:当AI开始承担一部分编码工作时,职业工程师如何确保自己对整个过程的控制力?
核心发现一:开发者极少完全“放手”
如果你期待看到工程师将任务完全丢给AI并等待结果的画面,那么这项研究的结果可能会让你感到意外。

研究发现,工程师很少让AI智能体长时间自主执行任务。即使智能体生成了一个包含几十个步骤的完整计划,开发者通常也只会允许其一次执行1到2步。在每一步执行完毕后,工程师会停下来检查代码变更、运行测试、评估结果,然后再决定是否继续。这意味着,节奏和决策权始终掌握在人类手中。
研究指出:“在与智能体协作时,资深开发者通过在提示与规划中提供清晰的上下文和明确的指令,来掌控软件的设计与实现,并且一次只让智能体处理少量任务…他们会借助既有的软件开发最佳实践,并结合自身的工程经验,在监督之下将智能体生成的改动纳入代码库。”

研究者直接指出了“vibe coding”概念在实践中的误区:那种完全不关心实现细节、只等待最终结果的用法,在职业开发场景中几乎不存在。
工程师优先关注的是质量,而非仅仅是速度
研究中一个反直觉的数据是:在问卷调查中,提到“软件质量”的工程师数量,超过了提到“效率提升”的工程师。具体而言,有67位参与者首先关注软件质量属性,而只有37位提到了效率等因素。

他们反复强调的关键词包括:
换句话说,AI能否快速生成代码并非首要考虑因素;AI能否生成正确、可靠、易于维护的代码才是关键。这也解释了为什么工程师会频繁中断AI的自动执行流程——因为在真实的工程项目中,一旦代码基础偏离预期或引入隐患,后续的修复成本将会呈指数级增长。“之后再改”在严肃的工程语境中从来不是一个轻松的选项。
提示词的本质是“工程规格说明”,而非闲聊
研究还揭示了资深工程师控制AI行为的另一个关键手段:他们编写的提示词(Prompt)。

这些提示词往往非常冗长且结构化,包含了大量上下文信息,例如:
- 具体的文件路径
- 相关的接口定义
- 现有的模块结构
- 明确的输入/输出约束
- 清晰的功能边界说明
他们这样做的目的并非教导AI如何编程,而是最大限度地降低任务的不确定性,将模糊的需求转化为可执行的、明确的指令。

研究者对此给出了精辟的总结:提示工程,本质上是一种软件工程沟通能力。这意味着,AI并没有消除对工程经验的需求,而是将这部分经验前置并转移到了“如何精准定义和描述问题”的阶段。掌握这些软件工程原则对于有效驾驭AI工具至关重要。
AI的强项与弱项:一条清晰的分界线
通过对近200个真实开发任务的分析,研究清晰地划定了当前AI编程工具擅长与不擅长的任务范围。

适合交给AI的任务包括:
- 生成样板代码或脚手架
- 在明确规则下的简单实现
- 编写测试代码
- 进行小范围、模式化的代码重构
- 在不同技术栈间翻译或扩展已有方案
不适合或不建议完全交给AI的任务包括:
- 系统级的架构设计
- 涉及复杂业务逻辑的建模
- 需要跨多个模块协调的决策
- 高风险或安全关键性的代码变更
简单来说,AI擅长执行目标清晰、规则明确的任务,但不擅长进行需要深度理解和复杂判断的决策。而后者,正是职业工程师不可替代的核心价值所在。
“全自动软件开发”尚不符合工程现实
这项研究从实证角度,对“AI全自动开发”的流行叙事进行了一次修正。
在常见的描绘中,AI智能体被塑造成能够自主规划、执行甚至自我修正的“虚拟工程师”。然而,在真实的工程场景中,开发者们更期待的是一个可控、可暂停、可验证、并且随时能够被推翻重来的协作工具。换言之,他们需要的是增强自身能力的“利器”,而非完全取代自己的“替代者”。
其次,这项研究隐含着一个重要的启示:AI并没有让工程师变得多余,反而可能促使工程师回归到更本质、更负责的角色上。未来更有价值的工程师,可能不再是那些仅仅记忆API最快、敲代码速度最快的人,而是那些善于拆解复杂问题、能定义清晰规格、能判断代码是否“值得合并”、并能对整个系统结果最终负责的人。
可以确定的是,无论AI生成多少代码,工程责任并不会自动消失。
结语
“Vibe Coding”作为一个传播概念或许颇具吸引力,但这项研究表明,将其作为一种严肃的工程方法论,目前并不成立。职业开发者们并未将“方向盘”完全交给AI,他们只是采用了一种新的、更精细化的方式来控制和引导代码的生产过程。所谓“感觉”,其背后是大量难以被简单量化的工程经验与判断力。
这种从“替代”到“增强与控制”的认知转变,或许才是AI编程真正开始融入并服务于严肃软件工程世界的标志。对于这个趋势的更多讨论,也欢迎在云栈社区这样的技术论坛中进行交流。
参考链接: