超越 Vibe 编码:Agentic 工程的崛起

软件开发的格局正快速变化,AI 助手正从简单的自动补全工具转向自主代理。最近,人们在描述这种转变时出现了紧张感。Andrej Karpathy 创造了“vibe coding”一词,用来描述一种鲁莽、基于提示的编程方式,开发者在未审查差异或理解底层逻辑的情况下直接接受 AI 输出。虽然这种方式在快速原型制作时令人兴奋,但它与专业软件开发根本不同。

随着行业的成熟,显而易见,将这两种活动——随意的 hack 与严谨的工作流——混为一谈会导致混淆并可能损害代码库健康。要前进,我们必须区分‘vibes’与工程本身。

Vibe 编码的诱惑与危险

Vibe 编码的特征是‘提示、接受、运行’循环。人类充当‘提示 DJ’,根据错误信息而非架构意图迭代。这种方法在特定用例中非常有效:

  • Greenfield MVPs 和黑客马拉松:当速度是唯一指标,代码质量无关紧要。
  • 个人脚本:一次性工具,开发者是唯一用户,若失败可直接重新生成代码。
  • 探索:让新人能够构建可用软件并通过示例学习。
  • 创意头脑风暴:在决定正式实现前,生成多个问题的解决方案。

然而,vibe 编码的失败模式是可预测的:它演示时光鲜亮丽,但在扩展、修改或安全审计时会失效。当没有人真正理解代码的工作原理时,这一过程不再是工程,而正如一位观察者所说,变成了‘抱希望’。

定义 Agentic 工程

为描述 AI 的专业应用,出现了‘Agentic Engineering’一词。不同于 vibe coding,Agentic 工程把 AI 当作快速但不可靠的初级开发者,需要持续、严格的监督。

在此范式中,人类仍是架构师和决策者,AI 代理负责实现。此区分对专业合法性至关重要;‘vibe engineering’ 对 CTO 来说可能显得过于随意,而‘agentic engineering’ 则表明一种严肃的学科,涉及受工程严谨性约束的自主代理。

实践中的 Agentic 工作流

Agentic 工程并不取代传统工程实践;它是对其的放大。该工作流需要一种 vibe coding 明确忽视的纪律性:

1. 规划与规范

在写下任何提示之前,工程师会先创建设计文档或规范。通过将工作拆分为明确的任务并预先决定架构,工程师防止项目偏离方向。

2. 有向实现与严格审查

任务被划定范围并分配给 AI 代理。生成的代码会以同等严谨的标准审查,就像审查人类同伴的 pull request 一样。如果人类审查者无法解释某模块的功能,则不予合并。

3. 不懈测试

测试是将不可靠的代理转化为可靠系统的主要机制。若缺乏完整的测试套件,AI 可能会宣称任务‘完成’,而代码仍然有缺陷。

正如社区讨论中所指出的,随着并行代理数量的增加,人工审查变得物理上不可能。信任机制必须从人工审查转向‘质量门’——精确的规范和确定性的测试套件,其中 CI(持续集成)成为真相的来源。

4. 所有权与维护

人类工程师维护文档、管理版本控制并监控生产。AI 加速繁重工作,但系统的正确性和长期可维护性归人类所有。

资历差距与技能退化

这一转变带来了一个令人不适的现实:Agentic 工程对资深工程师的收益不成比例。拥有系统设计、安全性和性能等深厚基础的工程师能够将 AI 作为巨大的力量倍增器,因为他们知道‘好’的标准是什么。

相反,依赖 AI 而未掌握这些基础的初级开发者面临‘技能退化’的风险。工程领导者日益担忧出现一代开发者,他们能够有效提示,却无法调试或推理自己生成的代码。

结论:提升工艺标准

AI 编码的兴起并未取代软件工程的工艺;它提升了标准。能够茁壮成长的开发者不是提示最快的,而是对自己构建的内容和原因思考最清晰的。

通过将 vibe 编码的鲁莽快感与 Agentic 工程的严谨实践区分开来,行业可以利用 AI 代理的力量,而不牺牲我们构建的软件的稳定性和安全性。

Sources