Vibe Coding、Spec Coding、Harness Engineering 是 AI 驱动软件开发的三个递进式范式从“快速原型”到“可靠工程”的能力跃迁。一、三者核心定义与定位1. Vibe Coding氛围编程 / 感觉流编程提出者Andrej Karpathy2025年2月核心理念感觉驱动快速试错。用自然语言描述模糊需求AI 自由生成代码人负责验收与迭代。人类角色提需求、看效果、调方向不写代码。AI 角色猜意图、写代码、快速迭代。产出质量Demo 级适合原型、MVP、快速验证想法。适用场景需求模糊、创意探索、快速原型、个人小工具。2. Spec Coding规格编程 / 规范驱动开发 SDD核心理念规格先行契约驱动。先写精确、结构化的 Spec规格文档AI 严格按 Spec 实现并自验证。人类角色定义“做什么”What、写 Spec、审查与验收。AI 角色按 Spec 翻译为代码、自动测试、确保一致性。产出质量生产级可维护、可审计、可追溯。适用场景需求明确、团队协作、API 开发、企业级功能、需要验收闭环。3. Harness Engineering驾驭工程 / 约束工程提出者OpenAI、Anthropic2026年初。核心理念构建运行环境让 AI 自主可靠执行。人类不再管代码而是设计 AI Agent 的“马具”约束系统。人类角色设计 Harness环境、规则、反馈闭环、定义目标、监控系统。AI 角色在 Harness 内自主完成编码、测试、修复、部署全流程。产出质量工程级长期稳定、可扩展、高可靠。适用场景复杂系统、多 Agent 协作、持续集成/部署、大规模软件工程。二、核心区别对比表维度Vibe CodingSpec CodingHarness 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 直接输出defdivide(a,b):ifb0:return不能除以零returna/b你只看结果能跑就行。不纠结类型、异常、规范。→ 这就是Vibe Coding。2. Spec Coding先写规范再按规实现特点先写 Spec契约AI 严格遵守你先写Spec这一步是关键# Spec: divide 函数 功能计算 a / b 输入a(int/float), b(int/float) 输出float 异常当 b0 时抛出 ZeroDivisionError 返回值必须是数字不能返回字符串AI 必须严格按 Spec生成defdivide(a:int|float,b:int|float)-float:ifb0:raiseZeroDivisionError(division by zero)returnfloat(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.pydefdivide(a:int|float,b:int|float)-float:ifb0:raiseZeroDivisionErrorreturna/b# test_divide.pyAI 自己生成deftest_divide():assertdivide(4,2)2.0importpytestwithpytest.raises(ZeroDivisionError):divide(1,0)你全程不碰代码只控规则环境。→ 这就是Harness Engineering。五、一句话总结Vibe Coding快速出原型凭感觉和 AI 对话。Spec Coding先写说明书AI 按图施工。Harness Engineering搭好运行环境让 AI 自己干活。