什么是 AI 原生软件工程?一个实践者的定义
AI 原生不是在传统流程上加个 Copilot。这篇文章从 LogiNexus 实战出发,定义 AI 原生软件工程的三个核心原则,以及它和 AI 增强、传统开发的本质区别。
一个不精确的类比
如果你在 2005 年问一个开发者"什么是移动原生应用",他可能会说:"就是在手机上运行的程序。"这个定义技术上没错,但完全没有抓住重点。
移动原生的真正含义是:从一开始就为移动场景设计——触屏交互、位置感知、离线优先、推送通知。把一个桌面应用套个 WebView 放到手机上,不叫移动原生。
类似地,"AI 原生软件工程"不是"在传统开发流程中加个 AI 工具"。它是从一开始就假设 AI 是团队成员来设计整个工作流程。
这个区别很重要。
三种模式的对比
为了说清楚 AI 原生到底是什么,我把软件工程分成三种模式:
传统模式:人做一切
需求 → 设计 → 编码 → 测试 → 部署
↑ 人 人 人 人所有环节都是人来完成。工具(IDE、CI/CD、测试框架)是辅助性的,不参与决策。
AI 增强模式:人做事,AI 帮忙
需求 → 设计 → 编码 → 测试 → 部署
↑ 人 人+AI 人+AI 人AI 作为工具嵌入现有流程。典型代表:GitHub Copilot 辅助写代码、AI 辅助写测试用例。核心流程不变,AI 提升效率。
大多数团队目前处于这个阶段。
AI 原生模式:人和 AI 共同工作
上下文 → 对话 → 审视 → 迭代
人+AI 人⇄AI 人 人+AI注意几个关键区别:
第一,流程重新设计了。 不再是线性的"需求-设计-编码-测试",而是"上下文-对话-审视-迭代"的循环。
第二,"上下文"替代了"需求文档"。 在 AI 原生模式中,给 AI 提供好的上下文比写详细的需求文档更重要。上下文包括:业务约束、技术约束、代码风格偏好、历史决策的原因。
第三,"对话"替代了"编码"。 核心产出不是代码,而是人和 AI 之间的对话。代码是对话的副产品。
第四,"审视"成为核心环节。 AI 生成代码很快,但判断代码的质量需要人的品味。品味——而非编码速度——成为关键能力。
三个核心原则
从做 LogiNexus 的实战中,我提炼了 AI 原生软件工程的三个核心原则。
原则一:混合智能优先
核心思想: 每个工作环节,先问"人和 AI 各自的最佳角色是什么",再设计协作模式。
在 LogiNexus 中,我对每个模块都做了这样的分析:
| 环节 | 人的角色 | AI 的角色 |
|---|---|---|
| 需求理解 | 理解业务上下文和潜规则 | 结构化需求文档 |
| 架构设计 | 做关键权衡决策 | 提供备选方案和分析 |
| 代码实现 | 审查质量和业务逻辑 | 生成代码 |
| 测试 | 设计测试策略和边界 | 生成测试用例和代码 |
| 调试 | 判断根因 | 分析日志和代码路径 |
注意:这不是简单的"人做难的,AI 做简单的"。有些"简单"的事人更擅长(比如理解客户的言外之意),有些"难"的事 AI 更擅长(比如分析几万行日志找到异常模式)。
混合智能优先意味着:不要默认"人来做"或"AI 来做",要根据具体任务分析最佳协作模式。
原则二:上下文即代码
核心思想: 投资上下文的质量,回报远大于投资代码的质量。
这是我在做 LogiNexus 时最深刻的体验。
早期,我的工作模式是:想到什么功能 → 让 AI 生成代码 → 大量修改。效率很低。
后来,我建立了 .42cog 上下文体系:
.42cog/
├── real/ # 现实约束:业务规则、技术限制、不可协商的条件
├── cog/ # 认知模型:系统架构、核心概念、设计理念
├── spec/ # 规约文档:接口定义、数据模型、状态机
└── work/ # 工作记录:决策日志、踩坑记录每次让 AI 生成代码前,我先确保相关的上下文文档是最新的。结果,AI 首次生成代码的质量从"需要大量修改"提升到了"微调即可用"。
一个具体的例子:LogiNexus 的运费结算模块。
没有上下文时,我告诉 AI:"帮我实现运费结算功能。"AI 生成了一个通用的计费引擎,技术上没问题,但完全不适用于物流行业的实际场景——它不知道"包干价""阶梯计费""回程优惠"这些业务概念。
有上下文后,我在 .42cog/real/ 中写清楚了所有计费规则的业务约束,在 .42cog/spec/ 中定义了计费数据模型和状态机。基于这些上下文,AI 生成的代码几乎可以直接使用。
上下文即代码的含义是:你的上下文文档决定了 AI 产出的质量上限。好的上下文就是最好的"提示词工程"。
原则三:42 天迭代
核心思想: 用 42 天的短周期迭代替代瀑布式开发计划。
在 AI 原生模式中,变化速度远超传统模式:
AI 工具在快速迭代(几个月前不能做的事现在能做了)
代码生成速度快,架构决策更频繁
用户反馈来得更快(MVP 出得更快)
在这种速度下,传统的季度规划太慢了。42 天冲刺提供了一个折中——足够长以完成有意义的交付,足够短以适应变化。
在 LogiNexus 的开发中,我每 42 天做一次全面的方向评估:
哪些 AI 工具更新了?是否需要调整工作流?
用户反馈指向什么方向?
之前的技术决策是否需要修正?
一些误区
误区一:"AI 原生 = 让 AI 写所有代码"
不是。AI 原生是重新设计工作流程,让人和 AI 各自发挥最大价值。有些代码(特别是涉及核心业务逻辑和安全的代码),仍然需要人深度参与。
误区二:"AI 原生 = 不需要学技术"
恰恰相反。AI 原生需要更强的技术判断力——你不需要写每一行代码,但你需要能判断每一行代码。品味比执行力更重要。
误区三:"AI 原生 = Vibe Coding"
Vibe Coding(氛围编程)是 AI 原生的一种实践方式,但不是全部。Vibe Coding 更适合原型和探索阶段。生产环境的代码需要更严谨的品质把控——这也是 AI 原生的一部分。
误区四:"AI 原生只适合个人开发者"
目前 AI 原生确实在个人开发者中应用最多,但这不代表它不适用于团队。只是团队场景的"混合智能协作"更复杂——不仅是人和 AI 的协作,还有人和人之间通过 AI 的协作。这是一个正在被探索的领域。
我的定义
综合以上所有实践和思考,我对 AI 原生软件工程的定义是:
AI 原生软件工程是一种从第一天就将 AI 作为核心协作者来设计工作流程的软件开发方式。它的核心不是"用 AI 写代码",而是"重新定义人在软件工程中的角色"——从执行者变为品味判断者、上下文提供者和方向决策者。
这个定义有三个关键词:
核心协作者: AI 不是工具,是团队成员
重新设计工作流程: 不是在旧流程上加 AI,是设计新流程
人的角色转变: 从"写代码"到"判断代码"
这只是开始
坦率地说,AI 原生软件工程还是一个非常年轻的概念。我在 LogiNexus 中的实践只是一个起点——一个人的一个项目,样本量太小。
但我相信方向是对的。就像 2007 年的移动原生,当时没几个人能清晰定义它,但每个认真做移动产品的人都能感受到——有些东西从根本上不一样了。
AI 原生软件工程也是如此。如果你正在做 AI 相关的产品,你一定也感受到了——开发方式在从根本上改变。
我会持续在这个方向上实践和写作。不是因为我想"定义"什么,而是因为我真的想搞清楚:AI 时代,软件到底应该怎么做?
这个问题值得认真回答。