乐于分享
好东西不私藏

从AI+到AI原生,再到世界模型:软件工程的三次相变

从AI+到AI原生,再到世界模型:软件工程的三次相变

从AI+到AI原生,再到世界模型:软件工程的三次相变

1. 引言:不是革命宣言,是经济学必然

当 GPT-4 写出的代码通过了 90% 的 LeetCode 题,工程师们的第一反应是焦虑。但如果换一个视角——经济学视角——焦虑会变成好奇:当边际开发成本趋近于零时,软件的价值创造逻辑会发生什么变化?

答案不是"程序员失业",而是价值锚点的迁移:从"按人天计费"转向"按意图复杂度定价"。这篇文章试图描述这个迁移过程中,软件工程经历的三个阶段——AI+、AI原生、世界模型——以及每个阶段对工程师的具体含义。

声明边界: 这三个阶段是连续光谱,不是非此即彼的二分法。GitHub Copilot Workspace 能从 Issue 生成 PR 并跑 CI,你说它是 AI+ 还是 AI原生?答案是"看你用哪个维度衡量"。本文用"人类介入的必要性"作为主轴,但承认这条轴上充满灰色地带。


2. 从AI+到AI原生:一条连续光谱

2.1 AI+:人类主导,AI辅助

AI+ 的核心特征是人类保持完整的决策权和执行权,AI 充当加速器。典型场景:

  • • 代码补全(Copilot 单行/多行建议)
  • • 自动化测试生成(基于已有代码生成单测)
  • • 文档生成(从代码注释生成 API 文档)

经济学特征:降低执行成本,但不改变决策结构。工程师的价值仍然体现在"决定做什么"和"判断做得对不对"。

2.2 AI原生:AI主导生成,人类管理歧义

AI原生的核心特征是AI承担主要的生成工作,人类的角色从"执行者"转变为"歧义、冲突和演化的管理者"

这里有一个关键认知:人类不再是"意图定义官"(这个说法暗示意图是清晰的、一次性的),而是持续管理不确定性的人。因为真实的软件需求本身就是模糊的、矛盾的、不断演化的。AI原生系统需要人类做的不是"精确定义意图",而是:

  • • 在多个合理方案中做取舍(价值判断)
  • • 处理利益相关方之间的冲突(政治判断)
  • • 决定何时"够好了"可以发布(风险判断)

2.3 连续光谱上的定位

判断一个系统在光谱上的位置,可以用以下维度:

  • • 人类介入频率: 每次生成需要人类审核几次?
  • • 回滚成本: AI 出错时,修复代价多大?
  • • 决策不可逆性: AI 做的决定是否影响生产数据/用户?

大多数团队今天处于"AI+ 偏右"的位置:AI 生成初稿,人类大幅修改。向 AI原生 的移动不是一步到位,而是随着信任的积累逐步放手。


3. 双轨验证:AI生成假设,确定性系统证伪

AI原生架构的核心工程挑战是:如何在享受AI生成效率的同时,控制住正确性?

答案是双轨制:

  • • Track 1 — 形式化验证(编译期): 用类型系统、合约、证明器在代码提交前捕获错误
  • • Track 2 — 运行时守卫(运行期): 用 canary 发布、特征门控、自动回滚在生产环境兜底

3.1 形式化验证(Formal Verification)的实战案例

形式化验证(Formal Verification) 简单说就是:用数学方法证明一个系统或程序“绝对正确”,而不是靠跑几个例子来“感觉它没错”。Amazon 在其核心分布式系统中使用 Dafny 语言编写关键模块。Dafny 的前置/后置条件和循环不变量由编译器自动证明,而非人工 review。当 AI 生成 Dafny 代码时,正确性不依赖于 reviewer 的注意力——编译器要么证明通过,要么拒绝。

这引出了一个重要原则:AI 生成假设,确定性系统证伪。 AI 可以天马行空地生成候选方案,但最终的准入门槛是确定性的、不可协商的。

3.2 Reviewer 悖论

这里存在一个尖锐的悖论:如果 AI 写的代码已经超过了 reviewer 的理解能力,谁来 review?

传统 code review 的有效性建立在"reviewer 能理解代码"的前提上。当 AI 生成的代码量级和复杂度超过人类的认知带宽时,形式化验证就不再是"加分项",而是唯一可行的质量保障手段。这不是技术偏好,是逻辑必然。

3.3 RLHF 的角色与局限

当前 AI 代码生成模型大量依赖 RLHF(从人类反馈中强化学习)来对齐输出质量。这有效地提升了"看起来对"的概率,但不等于"证明对"。RLHF 优化的是人类偏好的期望值,不是逻辑正确性的保证。双轨验证的形式化 Track 正是对 RLHF 局限性的工程补偿。


4. 代码形态的变迁:从文本到约束

如果 AI 是主要的代码编写者和阅读者,"源码"的形态需要重新思考。

4.1 传统范式

源码 = 人类可读的文本文件,用编程语言编写,通过版本控制管理。核心假设:人需要读代码来理解系统行为。

4.2 AI原生范式(推演)

如果人类的角色是"管理意图"而非"编写实现",那么"源码"可能演变为:

  • • 约束集合: 不变量、前置/后置条件、性能 SLA
  • • 测试集合: 行为规约的可执行版本
  • • 意图描述: 自然语言 + 结构化元数据

传统编程语言代码则退化为"中间产物"——AI 生成、机器执行、人类不必逐行阅读。

4.3 边界条件

这个推演不适用于所有场景。 强监管领域(航空、医疗、金融核心)仍需要人类可审计的代码。过渡期会很长,两种范式会共存。但方向是明确的:代码的"可读性"从"人类可读"逐步转向"机器可验证"。


5. 人类的新角色:管理歧义、冲突和演化

当 AI 承担了大部分生成工作,工程师的价值点发生迁移:

5.1 从"怎么做"到"做不做"

  • • 技术决策的权重下降(AI 可以快速尝试多种实现)
  • • 价值判断的权重上升(这个功能值得做吗?对谁有价值?)
  • • 风险判断的权重上升(出错的代价是什么?能回滚吗?)

5.2 从"写代码"到"设计验证"

工程师的核心产出从"实现代码"转向"验证体系":写 property-based test、定义 invariant、设计 SLA 指标、构建监控告警。谁定义了验证标准,谁就掌握了质量。

5.3 从"个人贡献"到"系统编排"

当 AI agent 可以并行处理多个任务时,工程师的角色更像"指挥家":分解任务、分配给不同 agent、整合输出、解决冲突。这要求的能力是系统思维和协调能力,而非单点编码速度。


6. 世界模型

6.1 什么是世界模型

世界模型(World Model)指 AI 系统对环境状态的内部表示和预测能力。Yann LeCun 的 JEPA 架构是典型代表:通过学习环境的抽象表示,预测未来状态。

6.2 世界模型 ≠ 因果推断

关键区分: 世界模型预测"如果环境处于状态 A 并施加动作 X,下一个状态可能是什么"。这是状态转移预测,不是因果推断。

因果推断要求回答"为什么"——涉及反事实推理和不可观测的混杂因素。即使有完美的世界模型,也无法精准预测"改按钮颜色是否导致用户流失",因为用户行为受大量不可观测因素影响。

混淆二者会导致对世界模型的过度期待。假设世界模型成熟后,软件工程从经验决策转向模拟预测:需求在虚拟环境中试运行验证;架构在数字孪生中自动演化;测试可遍历全状态空间;运维实现预测式自愈,在故障发生前主动规避。


7. 组织、合规与问责

7.1 制度空白

AI原生带来的不仅是技术问题,更是组织与制度的挑战:

  • • 审计: 谁来审计 AI 的输出?审计频率?抽样还是全量?
  • • 问责: AI 生成的代码导致事故,责任在 prompt 编写者、模型提供商、还是审核通过者?
  • • 合规: FDA、CE 等强监管领域尚未建立针对 AI 生成代码的认证框架

7.2 过渡期的务实策略

  • • 建立"AI 生成代码"的标注机制(git commit metadata)
  • • 定义 AI 可自主决策的边界(非关键路径可自动合并,关键路径必须人工审批)
  • • 逐步建立内部 AI 输出质量的度量体系(不是"通过率",是"上线后的缺陷密度")

结语:5 个可执行的决策

不给鸡汤,给决策清单。如果你是技术管理者或一线工程师,以下是本文推导出的 5 个具体行动:

  1. 1. 投资形式化验证能力: 选一个核心模块,用 Dafny/TLA+/Alloy 写规约。不需要全覆盖,先建肌肉记忆。成本:1 人 × 2 周。
  2. 2. 建立 AI 输出的分级审核机制: 按变更影响范围分级——非关键路径(配置、文档)可自动合并;核心业务逻辑必须双人 review + 形式化验证通过。本周就能定规则。
  3. 3. 把"写测试"重新定义为核心产出: OKR 里加一条:property-based test 覆盖率。这不是质量保障的附属品,是 AI原生时代工程师的主要产出。
  4. 4. 跑一个"AI 端到端"试点: 选一个低风险场景(内部工具/数据看板),让 AI 从需求到部署全程主导,人类只负责审核和兜底。目的不是替代人,是标定当前 AI 的能力边界。2-4 周可出结论。
  5. 5. 启动合规预研: 如果你的产品涉及强监管(金融/医疗/安全),现在就开始调研 AI 生成代码的合规框架。等监管出台再补课,来不及。

这五条的共同逻辑是:不赌 AI 的上限,但现在就为 AI 的介入做好工程和制度准备。 光谱在移动,你需要的不是预测它停在哪里,而是确保你的团队能随时跟上。