从Vibe Coding、Spec Coding,到Harness Engineering
提出者:Andrej Karpathy(2025年2月)核心理念感觉驱动,快速试错。用自然语言描述模糊需求,AI 自由生成代码,人负责验收与迭代。人类角色:提需求、看效果、调方向(不写代码)。AI 角色:猜意图、写代码、快速迭代。产出质量Demo 级,适合原型、MVP、快速验证想法。适用场景:需求模糊、创意探索、快速原型、个人小工具。快速出原型,凭感觉和 AI 对话。先写说明书,AI 按图施工。搭
·
Vibe Coding、Spec Coding、Harness Engineering 是 AI 驱动软件开发的三个递进式范式,从“快速原型”到“可靠工程”的能力跃迁。
一、三者核心定义与定位
1. Vibe Coding(氛围编程 / 感觉流编程)
- 提出者:Andrej Karpathy(2025年2月)
- 核心理念:感觉驱动,快速试错。用自然语言描述模糊需求,AI 自由生成代码,人负责验收与迭代。
- 人类角色:提需求、看效果、调方向(不写代码)。
- AI 角色:猜意图、写代码、快速迭代。
- 产出质量:Demo 级,适合原型、MVP、快速验证想法。
- 适用场景:需求模糊、创意探索、快速原型、个人小工具。
2. Spec Coding(规格编程 / 规范驱动开发 SDD)
- 核心理念:规格先行,契约驱动。先写精确、结构化的 Spec(规格文档),AI 严格按 Spec 实现并自验证。
- 人类角色:定义“做什么”(What)、写 Spec、审查与验收。
- AI 角色:按 Spec 翻译为代码、自动测试、确保一致性。
- 产出质量:生产级,可维护、可审计、可追溯。
- 适用场景:需求明确、团队协作、API 开发、企业级功能、需要验收闭环。
3. Harness Engineering(驾驭工程 / 约束工程)
- 提出者:OpenAI、Anthropic(2026年初)。
- 核心理念:构建运行环境,让 AI 自主可靠执行。人类不再管代码,而是设计 AI Agent 的“马具”(约束系统)。
- 人类角色:设计 Harness(环境、规则、反馈闭环)、定义目标、监控系统。
- AI 角色:在 Harness 内自主完成编码、测试、修复、部署全流程。
- 产出质量:工程级,长期稳定、可扩展、高可靠。
- 适用场景:复杂系统、多 Agent 协作、持续集成/部署、大规模软件工程。
二、核心区别对比表
| 维度 | Vibe Coding | Spec Coding | Harness Engineering |
|---|---|---|---|
| 驱动方式 | 感觉/直觉/实时反馈 | 规格/契约/预先设计 | 约束/环境/系统规则 |
| 输入形式 | 自然语言、模糊描述 | 结构化 Spec(可验证) | Harness 系统(规则+工具+反馈) |
| 人类重心 | 创意、方向、验收 | 定义 What、写 Spec、审查 | 设计环境、构建约束、监控 |
| AI 角色 | 自由生成、猜意图 | 严格执行、自验证 | 自主执行、自我修复 |
| 代码质量 | Demo 级、易有技术债 | 生产级、一致性高 | 工程级、长期可靠 |
| 可控性 | 低(AI 自由发挥) | 中高(Spec 约束) | 极高(系统级约束) |
| 适用规模 | 小、原型、探索 | 中、生产、协作 | 大、复杂、工程化 |
| 核心价值 | 快、创意密度高 | 稳、可追溯、少返工 | 可靠、自主、规模化 |
三、演进关系:从“玩”到“用”再到“管”
三者是递进、互补而非替代的关系,对应软件开发的不同阶段与复杂度:
- Vibe → Spec:当原型验证有效、需求稳定后,用 Spec 固化规则,解决“看起来能用”到“真正能用”的鸿沟。
- Spec → Harness:当系统复杂到需要多 Agent 协作、持续迭代时,用 Harness 构建自动化环境,让 AI 自主可靠运行。
- 现实中:大型项目常混合使用——Vibe 做探索、Spec 做模块、Harness 做整体工程化。
四、示例
需求:
写一个函数,计算两个数的除法,要处理除零错误。
1. Vibe Coding(凭感觉、快、糙)
特点:自然语言 → AI 直接写 → 能用就行
你说:
写个 Python 函数 divide(a, b),返回 a/b,除零返回错误提示,简单点。
AI 直接输出:
def divide(a, b):
if b == 0:
return "不能除以零"
return a / b
你只看结果:能跑就行。不纠结类型、异常、规范。
→ 这就是 Vibe Coding。
2. Spec Coding(先写规范,再按规实现)
特点:先写 Spec(契约),AI 严格遵守
你先写 Spec(这一步是关键):
# Spec: divide 函数
功能:计算 a / b
输入:a(int/float), b(int/float)
输出:float
异常:当 b=0 时抛出 ZeroDivisionError
返回值必须是数字,不能返回字符串
AI 必须严格按 Spec 生成:
def divide(a: int | float, b: int | float) -> float:
if b == 0:
raise ZeroDivisionError("division by zero")
return float(a / b)
AI 不能自由发挥,必须符合 Spec。
→ 这就是 Spec Coding。
3. Harness Engineering(人不写代码,只造“笼子”)
特点:人不写代码/不写Spec,只构建环境与规则,AI 自主完成
你给 AI 一套 Harness(约束系统):
Harness 规则:
1. 必须类型注解
2. 必须抛异常,不能返回字符串
3. 必须通过 pytest 测试
4. 必须通过 ruff lint
5. 通不过就自动修复,直到通过
然后你只说:
实现除法函数。
AI 自动:
- 写代码
- 跑测试
- 跑 lint
- 自己修复错误
- 直到全部通过
最终输出可直接上线的代码 + 测试:
# divide.py
def divide(a: int | float, b: int | float) -> float:
if b == 0:
raise ZeroDivisionError
return a / b
# test_divide.py(AI 自己生成)
def test_divide():
assert divide(4,2) == 2.0
import pytest
with pytest.raises(ZeroDivisionError):
divide(1,0)
你全程不碰代码,只控规则环境。
→ 这就是 Harness Engineering。
五、一句话总结
- Vibe Coding:快速出原型,凭感觉和 AI 对话。
- Spec Coding:先写说明书,AI 按图施工。
- Harness Engineering:搭好运行环境,让 AI 自己干活。
更多推荐


所有评论(0)