传统软件工程的确定性基石

过去几十年,计算机科学教育体系为毕业生铺设了一条通往软件工程职业的稳定路径,这条管道曾经行之有效。然而,随着AI辅助编码和智能体编码技术的兴起,软件构建的方式正在发生深刻重塑,使得这一传统路径变得不再常规。我们正见证一种新范式的诞生——智能体工程(Agentic Engineering)。在长达数十年的时间里,软件工程的定义是向计算机编写显式的指令。这意味着开发者必须手动定义边缘情况、权限控制、重试机制、验证逻辑以及执行路径,每一步都是预先确定的。这种模式的核心在于确定性:只要输入相同,无论何时执行,输出结果必须一致。开发者通过控制流和显式指令来精确指挥计算机的行为,任何偏差都被视为需要修复的Bug。

"For decades, software engineering meant writing explicit instructions for computers."

这种确定性带来了可预测的失败模式。在传统系统中,如果出现问题,通常可以追溯到具体的条件判断错误、状态转换异常或实现细节缺陷。开发者通过调试工具追踪这些确定的逻辑断点,从而修复系统。这种手动定义所有细节的工作方式,要求工程师具备极高的逻辑严密性和对系统状态的全面掌控能力。虽然AI工具如代码补全和重构助手已经存在多年,但它们并未改变这一核心范式,因为人类开发者依然牢牢掌握着架构设计和决策权,AI仅作为辅助手段存在。

智能体工程的核心定义

随着大型语言模型(LLM)的引入,软件构建的逻辑发生了根本性变化。LLM不再仅仅执行僵化的逻辑,而是能够解释目标。当这种能力与记忆、工具使用、规划以及反馈循环相结合时,便形成了更接近AI智能体的系统。从高层视角来看,传统软件工程中,开发者编写的是行为(Behavior);而在智能体工程中,开发者塑造的是行为。这意味着工程工作的重心从编写具体的代码行,转移到了定义目标和约束条件上。

"In traditional software engineering, developers write behavior. Whereas in agentic engineering, developers shape behavior."

智能体工程这一术语由两部分组成,具有明确的含义。智能体(Agentic)指的是由智能体(或智能体系统)编写代码,而人类开发者负责监督和验证输出的组织架构。在智能体迭代处理子任务的过程中,人类始终保持在环(Human in the Loop)。工程(Engineering)则描述了使用智能体工作流进行有意义代码生产所需的专业水平,确保这种自动化不会损害代码质量。简而言之,智能体工程允许我们将工作重心从确定性逻辑转向概率性判断(Probabilistic Judgment)的细微领域。这并非取代软件工程,而是改变了工程努力的投放方向。

编码辅助的光谱演变

为了清晰区分当前流行的各种术语,我们可以将其视为一个光谱(Spectrum),而非从好到坏的等级划分。这个光谱衡量的是人类保留的自主权与委托给系统的自主权之间的比例。光谱的一端是传统软件工程,开发者明确定义几乎所有的工作流、规则和实现细节。AI可能提供辅助,但人类完全控制架构和决策。随着向右移动,我们进入AI辅助编码阶段,工具帮助自动补全、重构或生成代码片段,但开发者仍主导整体实现。

"I actually like to think of this as somewhat of a spectrum... from how much agency the human retains versus how much the agency is delegated to the system."

光谱的中间地带是氛围编码(Vibe Coding)。在此阶段,开发者越来越多地用自然语言定义或描述意图,并通过迭代来塑造结果,而不是手动编写每一行代码。重点从精确实现转向创意指导和快速实验。再往右是智能体编码(Agentic Coding),系统能够自主规划任务、使用工具、编写和执行代码、调试失败,并在有限监督下迭代以实现目标。最后端是智能体工程,它超越了代码生成,工程师不仅构建软件,还描述和设计环境,使自主系统能够在约束下推理、协调、评估结果并动态适应。这些类别并非 rigid(僵化),而是抽象层次的逐渐转移。

从氛围编码到智能体工程的跃迁

这些术语在实际应用中往往相互渗透。团队通常从氛围编码开始,以快速原型化想法,然后随着 stakes(风险/重要性)和复杂性的增加,演变为智能体编码,最终达到智能体工程。这种演变反映了开发者与AI协作方式的成熟。在智能体工程中,AI不再仅仅是编码助手,而是被视为协作者(Collaborators),能够在人类监督下处理多步工作流。工程师的角色逐渐转变为系统编排者(Orchestrator),而非手动执行每一项任务。

"Agentic engineering treats AI systems as collaborators, capable of handling multi-step workflows under human supervision."

这一转变的关键在于,它并非将人类移出循环。相反,随着系统自主性的增加,人类监督的价值实际上在提升。工程师不仅要编写代码,还要确保在概率性工作流中的可靠性。这意味着需要培养一种鼓励实验同时保持问责制的文化。智能体系统旨在加速开发,而非取代软件工程的专业知识。开发者社区对此反应不一:一些人视其为从事更具思考性和满足感工作的机会,而另一些人则持怀疑态度。这种怀疑是合理的,因为概率性系统的失败模式与传统系统截然不同。

概率性系统的挑战与验证

传统软件系统的失败相对可预测,但智能体系统不同。它们以概率方式运行,可能在表面正确的同时做出有缺陷的决策。它们可能幻觉(Hallucinate)、误解意图、误用工具,或生成技术上有效但架构糟糕的解决方案。因此,智能体工程的核心挑战在于编排(Orchestrate)和验证(Verify)。工程瓶颈正从手动编写每一行代码,转向监督、约束和评估日益自主的系统。这也解释了为什么氛围编码在规模化时变得具有问题性。

"Agentic systems are different. Because these systems operate probabilistically, they can appear correct while still making flawed decisions underneath the surface."

氛围编码在快速实验和原型制作方面非常有效,但缺乏强大的工程纪律时,这些工作流会迅速产生技术债务。缺乏结构、测试或架构一致性的AI生成代码,随着时间的推移会变得难以维护。这就是智能体工程这一术语变得有用的原因,它强调了工程活动依然存在。这并非取代软件工程,而是将其扩展到新的抽象层。智能体工程改变了工程师花费大部分时间进行工程活动的领域,即从编写代码转向设计代码、塑造AI系统的行为以及监督它们。

未来展望与行动建议

随着AI辅助软件开发 landscape(格局)的持续演变,术语也可能继续变化。虽然智能体工程为当前开发者与自主系统协作提供了更成熟和准确的框架,但其背后的实践将随着AI智能体能力的提升而继续进步。同时,开发者的角色将从单纯编写代码演变为设计代码。对于感到不确定如何开始的开发者,建议从小处着手:在当前工作流中使用这些工具,观察它们在哪里有帮助,在哪里失效,然后在此基础上构建。

"As these systems become more autonomous, the value of human oversight actually increases."

最重要的是,不要用自动化取代理解和质量。智能体工程代表了一种新的专业领域,要求开发者具备更高的抽象思维能力和系统监督能力。它不是终点,而是软件工程适应AI时代的一个关键阶段。通过保持人类在环,并专注于编排和验证,开发者可以利用智能体系统的力量,同时保持软件的质量和可靠性。这一转变要求我们重新思考工程教育的重点,从语法和逻辑细节转向系统设计、概率推理和人机协作策略。