AI时代软件工程新范式
从编码效率,到交付效能。
摘要:AI Coding的演进不只是让写代码更快,而是重构了整个软件交付系统。 从Copliot的局部补全,到Oneshot的原型生成,再到Spec Coding的约束施工,最终走向Harness Engineering —— 人不再只是写需求,而是设计能让AI长程受控自治的运行机制。 关键变化在于:从“人盯着AI写”变成“AI在边界内自主推进”。
这两年,AI Coding很热,几乎每隔一段时间,就会有一轮新的讨论:coding agent能不能真正干活,模型的代码能力到底又提升了多少,程序员是不是要被替代了。同时也出现一些新的概念和热潮:Openclaw、MCP、Skill、Context、Harness Engineering。
那到底AI对软件行业有哪些影响,其实视角拉高一点,就会发现,并不是“写代码快了”,而是软件交付这件事情正在被重构。代码生成只是表象,背后更大的变化,是控制权、协作方式、交付节奏,甚至组织结构都在变化。
换句话说,AI Coding真正改变的,不只是程序员怎么写代码,而是软件团队怎么定义价值、怎么组织工作、怎么交付结果。
很多人讨论 AI Coding 时,只关心模型会不会写代码。但在真实工程里,决定 AI 能不能稳定产出的,往往不是代码生成能力,而是任务控制能力。
一、AI Coding的四个阶段
回头看这几年,AI Coding大致经历了四个阶段,对应了四种“人机协作粒度”:
| 阶段 | AI 角色 | 人的主要工作 |
|---|---|---|
| Copilot | 局部补全助手 | 写代码,AI 补片段 |
| Oneshot / Vibe Coding | 一次性交付者 | 描述目标,AI 生成整体 |
| Spec Coding | 受约束施工者 | 写清范围、边界、验收标准 |
| Harness Engineering | 长程自治系统 | 设计执行环境、上下文、验证、状态管理和停止条件 |
越往后,AI 的代码能力不是唯一重点,任务控制能力变得更重要。
1.1 Copilot:AI是局部增效
这个阶段里,AI 主要是代码补全工具。
它的典型价值是:
- 补全函数片段。
- 生成样板代码。
- 提示 API 用法。
- 降低重复劳动。
- 提升局部编码速度。
这个阶段的核心特征是:人仍然是主驾驶,AI 在局部帮助人写得更快。
1.2 Oneshot:AI一次性交付
也就是很多人说的yolo或vibe coding
这个阶段非常适合做demo、原型、小工具,或者生命周期很短的需求。
这个阶段的问题很明显:项目一旦开始变得复杂,需要持续迭代、要遵守很多约束、要和既有系统共存时,oneshot就会迅速碰到天花板。 不是做不出来,而是很难长期做对。
它很适合从0到1,但不适合从1到N。
1.3 Spec Coding:在约束内施工
随着项目复杂度上升,或者很多都是既有的历史系统。对这类项目,迭代是不能直说“我要什么”,还必须把范围、边界、约束、验收标准也说清楚。 于是人给AI的,不再只是prompt,而像是一份缩小版的PRD或者 implementation spec。AI按图施工。
Spec Coding 开始解决复杂系统中的对齐问题。AI 不只是看目标,还要理解:
- 不能动哪里。
- 应该怎么验收。
- 哪些接口必须兼容。
- 哪些既有行为不能改变。
- 哪些 tradeoff 不允许越界。
- 哪些测试必须通过。
很多复杂系统里使用 AI 失败,不是因为模型不会写代码,而是因为只告诉了 AI“我要什么”,没有告诉它边界在哪里、验收线是什么、哪些地方不能乱改。
因此,Spec Coding 本质上是从“愿望表达”进入“工程表达”。
1.4 Harness Engineering:长程受控自治
Spec Coding 仍然有局限。
Spec Coding 解决的是“AI 知不知道该怎么做”;Harness Engineering 解决的是“AI 能不能在长任务中持续正确地做”。
复杂任务的问题不再只是“AI 要不要照着 spec 做”,而是:
- AI 能不能在持续执行几个小时甚至更久的过程中不迷路。
- AI 能不能不乱改。
- AI 能不能减少无效追问,不频繁回来找人。
- AI 能不能在失败后恢复。
- AI 能不能知道什么时候继续、什么时候求助、什么时候停止。
Spec 当然很重要,但它只是 harness 的一部分。
Harness Engineering 强调的是为 AI 的长程执行设计一套受控环境:
- 如何设定目标。
- 如何限制行为。
- 如何安排执行路径。
- 如何选择上下文。
- 如何管理中间状态。
- 如何做验证。
- 如何处理失败和不确定性。
- 如何决定何时继续。
- 如何决定何时求助。
- 如何决定何时停止。
这个阶段里,人不是简单“提需求”,而是在设计一个让 AI 能长期执行而不失控的工作系统。
它关注的是:目标管理、权限管理、上下文管理、工具管理、计划管理、状态管理、验证管理、回滚和恢复策略、人类介入机制。
这已经不是单纯的 prompt engineering,也不只是 spec writing,而是 execution system design。
四阶段不是线性替代
这四个阶段不是后一个淘汰前一个,而是适用于不同任务。
| 任务类型 | 更适合的模式 |
|---|---|
| 写一个函数 | Copilot |
| 做一个 demo | Oneshot |
| 改一个复杂业务模块 | Spec Coding |
| 大规模迁移、重构、测试修复、跨仓库改造 | Harness Engineering |
因此,它们更像是四种协作模式,而不是简单的年代划分。
AI Coding 的演进,不只是模型从弱到强,而是人类对 AI 的控制方式从“补全代码”升级为“设计执行系统”。
关于研发产品形态
以agent为中心。 agent作为数字员工, 尽量较少 点击交互、 需要人手工点击确认的。
一个cli、web-ui 。 与 桌面应用的 区别 和未来的比较。
关于工具的比较
效果的评估
效果到底能提升多少呢?
openclaw到底有没有用? 什么样的架构用来做什么?