在人工智能快速发展的今天,编程领域正经历着一场革命。传统的编码方式正在被AI辅助的“agentic engineering”(代理工程)所重塑。本文基于Addy Osmani、Zed团队和Simon Willison等专家的见解,探讨AI Coding的未来。

什么是Agentic Engineering?

Agentic Engineering代表了一种新的编程范式,它将人类工程师的匠心与AI代理的能力相结合。与“vibe coding”(感觉编码)不同,后者强调快速原型、不审查代码,agentic engineering则强调纪律和质量。

如Addy Osmani在他的博客中所言,agentic engineering意味着人类作为架构师和决策者,AI代理负责实现细节。人类写Spec、审查代码、运行测试,确保最终交付物的质量。

Vibe Coding vs. Agentic Engineering

Vibe Coding适合快速原型和个人脚本:你提示AI,接受输出,不阅读差异。如果出错,再次提示。但这种方法在生产环境中容易失败,因为代码质量无法保证。

Agentic Engineering则要求:

Zed团队在他们的页面中强调,agentic engineering结合了传统开发的确定性与AI的随机性创造力。质量是工程师的责任,AI放大专业知识。

实践中的Agentic Engineering

Simon Willison的指南提供了具体模式:

这些正逐渐成为共识,难点主要是能不能真正融入大部分普通工程师的日常。

Mitchell Hashimoto在他的AI采用之旅中分享了渐进采用AI的步骤,从放弃聊天机器人转向代理,到构建harness:

这些步骤强调渐进采用,从怀疑到效率提升。

技能差距与挑战

Agentic Engineering不成比例地受益于资深工程师。他们有深厚的系统设计、安全和性能知识,能有效指导AI。但新手若过早依赖AI,可能导致技能退化:能生成代码,却不懂调试。

Addy Osmani警告,这不是让编码更容易,而是换了一种难度:从打字到审查,从实现到编排。基础知识更重要。

抽象的新性质

Martin Fowler在他的文章中指出,LLMs带来了编程抽象的新性质。从汇编到高级语言提高了抽象水平,但LLMs是另一个根本变化:从确定性编程到非确定性。

传统编程中,代码编译后行为一致。但LLMs通过提示生成代码,每次可能不同,无法像存储提示在git中那样保证一致性。这不仅提高了抽象水平,还引入了非确定性,需要工程师学习与之相处。

这强化了agentic engineering的重要性:人类必须监督AI代理,确保质量和一致性。

Harness Engineering:构建AI代理的框架

OpenAI的Harness Engineering展示了如何构建“harness”来支持AI代理完全生成代码,无需人类手动编写。团队使用Codex构建了一个百万行代码的产品,强调工程师角色从编码转向设计环境、指定意图和构建反馈循环。

关键组件包括:

Martin Fowler在回应文章中指出,harness可能成为未来服务模板,约束运行时以提高AI自主性,可能导致技术栈和拓扑的收敛。前AI和后AI应用维护的世界将不同,harness适用于从头构建的项目。

Harness强调,软件工程的纪律从代码转向脚手架、抽象和反馈循环。

“harness engineering.” It is the idea that anytime you find an agent makes a mistake, you take the time to engineer a solution such that the agent never makes that mistake again.

AI Coding的未来

未来,AI代理将更强大,agentic engineering将成为默认工作流。我们需要:

Zed团队通过直播分享知识,Simon Willison提供实用指南,这表明社区正在共同探索。

AI Coding的未来不是AI取代人类,而是人类与AI协作,创造更高质量的软件。工程师将从“编码者”转变为“AI编排者”,专注于高层次设计和创新。

正如Addy Osmani所说:“AI Coding不取代软件工程的工艺——它提高了门槛。”那些能清晰思考“为什么”和“如何”的人,将引领未来。

参考文章

注:本文由AI撰写,人类审校。