当代码的生产成本趋近于零,工程的重心就从「写得快不快」转向「判断得准不准、守不守得住」。

2025 年我们讨论的还是 AI 如何辅助写代码,一年之后,问题换了一个问法:当智能体可以独立完成从需求理解到代码提交的完整链路,软件工程的约束条件究竟是什么?这篇文章想回答的不是 AI 能做什么,而是当 AI 做得越来越多之后,我们需要重新建立什么样的工程秩序。

Software-engineering-in-the-age-of-AI-agents-1

一、成本结构的位移:瓶颈从生产端转向验证端

过去三十年,软件工程的大部分工具都在降低「编写」的成本:高级语言、框架、组件库、脚手架、低代码平台,本质上是在减少人需要敲下的字符数;而这一轮变化的不同之处在于,编写成本不是被降低,而是被抹平了——它不再构成约束。

约束一旦位移,工程的重心就跟着位移。当一个人一天能产出过去一周的代码量时,真正稀缺的资源不再是键盘,而是人类的注意力:谁来评审这些代码、谁来确认它符合业务的真实意图、谁来为它三年后的维护负责;换句话说,软件的边际生产成本趋近于零,但软件的信任建立成本反而上升了,因为待验证的代码总量在指数级增长,而验证能力受限于人的带宽。

这个位移会带来一个反直觉的结论:在 AI 时代,投资回报率最高的工程能力不是「生成」,而是「验证」;一个团队如果只有生成能力没有验证能力,它得到的不是十倍效率,而是十倍的返工。

二、智能体协作的三条基本约束

要让智能体真正进入生产链路,而不是停留在演示里,需要满足三个约束条件;它们不是最佳实践,而是底线。

1.上下文即接口

人写代码时,上下文存在于人的脑子里,可以随时调取;智能体没有这种隐性记忆,它拥有的上下文就是它这次被明确给予的内容;因此,给智能体提供什么样的上下文,决定了它能交付什么质量的结果——上下文即接口,接口设计得好不好,直接决定了协作的成败。

这也是为什么工程上要把「上下文工程」当成一项正式能力来建设:把散落在人的经验里的隐性知识,沉淀为智能体可以读取的显性资产,包括领域术语表、接口契约、目录约定、历史决策记录与失败案例;一个组织里能被写下来的知识越多,智能体的产能上限就越高。

Software-engineering-in-the-age-of-AI-agents-2

2.可验证性优先

智能体最擅长的场景,是那些结果可以被机器自动判定对错的场景:类型检查能过的代码、测试能跑通的实现、构建能产出制品的改动;反之,凡是「好不好看」「合不合理」这类需要人来拍板的判断,智能体的产出都只能算草稿。

所以一个务实的策略是:先给智能体划定「可验证边界」,把测试覆盖率、类型系统、静态检查作为前置投资;这些投资在人力时代是「规范要求」,在智能体时代是「产能前提」——没有它们,你不敢把任务交出去。

3.权限与边界

智能体可以读写代码、可以执行命令、可以调用外部服务,它事实上拥有了过去只有工程师才拥有的系统权限;因此,最小权限原则、变更隔离、可回滚机制,从运维领域的前置要求变成了日常开发的默认配置;一个合理的做法是让智能体在独立的沙箱与分支上工作,把所有产物视为候选变更,由人类或自动化门禁决定它是否进入主干。

三、协作模式的演进:从 Copilot 到 Agent Team

过去两年的协作模式大致经历了三个阶段。

第一阶段是补全:AI 在光标处提供建议,人来决定采纳与否,人仍然是唯一的驱动者;第二阶段是对话:AI 参与需求澄清、方案讨论、代码解释,人机之间形成了来回的往复;第三阶段是委托:人给出目标与验收标准,智能体负责拆解、执行、自测,人退到验收与决策的位置上。

到了委托阶段,团队结构本身会发生变化:需求的定义质量变得空前重要,因为模糊的需求不再被人自动补全,而是被智能体字面执行;接口与契约的清晰度直接决定了并行的粒度;而「任务编排」这件事本身,开始成为一种新的工程技能。

协议层面的标准化正在加速这一进程:MCP 让模型可以统一地发现和调用工具,A2A 之类的协作协议让不同智能体之间可以互相委派任务;当工具和智能体都有了统一的接入方式,软件系统的形态会从「人操作界面」逐渐转向「人设定目标、智能体操作系统」。

Software-engineering-in-the-age-of-AI-agents-3

四、治理:AI 代码进入主干之后

当 AI 生成的代码成为主干代码的一部分,治理问题就不可避免地被推到台前。

可追溯性是第一条。每一次变更都应该能回答三个问题:是谁(人还是哪个智能体)提出的、依据什么上下文与指令生成的、经过了哪些门禁校验;这不只是审计需求,也是当线上出现故障时唯一能澄清事实的依据。

门禁前移是第二条。传统流水线把质量检查放在提交之后,而面对数量激增的候选变更,检查必须前移到生成的那一刻——类型检查、静态分析、依赖审计、许可证扫描,都应该成为智能体在交付前自行完成的自检项,而不是留给 CI 去兜底。

供应链安全是第三条,也最容易被忽略。智能体在解决一个具体问题时,倾向于引入它能找到的最短路径,包括一个新的三方依赖;在人写代码的时代依赖引入有摩擦成本,智能体几乎消除了这个成本,于是依赖树会失控地膨胀,许可证冲突与漏洞面随之扩大。

责任归属是第四条。无论实现由谁完成,生产事故的责任永远属于提出并接纳这次变更的人与团队;把「是 AI 写的」当作免责理由是治理体系崩溃的开始,明确这一点,团队才会认真对待门禁设计。

五、给团队的四条落地建议

第一,先建验证能力,再扩生成规模。把测试、类型、静态检查、可回滚这四件事做扎实,再考虑把任务交出去;顺序反了,效率的提升会被返工完全吃掉。

第二,把隐性知识显性化。领域术语、接口契约、历史决策、踩过的坑,写下来才有价值;智能体读不到的知识,等于不存在。

第三,用可验证性给任务分级。能自动判定对错的任务大胆委托,需要审美与判断的任务只当作草稿;不要用一把尺子衡量所有场景。

第四,把门禁当作产品来经营。规则要可配置、可演进、可解释,否则要么形同虚设,要么成为阻碍流动的官僚流程。

六、结语

AI 智能体带来的不是「写代码的人变少了」,而是软件工程的瓶颈从生产端迁移到了判断端;在这个新的位置上,架构能力、抽象能力、验收标准的设计能力,比手速重要得多。

真正被淘汰的从来不是写代码的人,而是那些把工程等同于编码、把规范当作形式、把验证当作负担的做法;当智能体把实现变得廉价,稀缺的就只剩下判断力、品味与责任感——而这三样东西,恰恰无法被自动生成。