AI Coding 领域正以前所未有的速度涌现新名词和新范式,让人应接不暇。Vibe Coding、Prompt Engineering、Harness…… 仿佛互联网黑话一般,上一个概念还没捂热,下一个又横空出世,难免让人感到混乱。
本文尝试梳理这些概念之间的脉络,理清它们背后的演进逻辑。
先上结论
它们本质上是同一条演进链路,核心目的始终如一:为 AI 提供更清晰的上下文信息,使其更准确地完成目标。
不妨把 AI Coding 的发展理解成下面这条路径:
Prompt Engineering → Context Engineering → Vibe Coding → Plan Coding → Spec Coding → Harness
第一阶段:Prompt Engineering(提示词工程)
一句话定义:如何写出更有效的提示词。
示例对比
-
初阶:
帮我写一个 Spring Boot 接口 -
进阶:
使用 JDK17 + SpringBoot 3.5 实现 RESTful 风格接口 要求: - 参数校验 - 全局异常处理 - 统一返回 Result - 使用 Lombok
第二阶段:Context Engineering(上下文工程)
单纯的提示词承载能力有限,难以描述项目的前后依赖、相邻代码、数据库结构等真实工程信息。而 LLM 本身:
- 没有长期记忆
- 没有真实工程上下文
- 没有项目感知
一句话定义:让模型感知上下文,赋予它“项目记忆”。
示例
如今的 AI IDE(如 Cursor、Trae 等)正是这一阶段的典型代表。
第三阶段:Vibe Coding(氛围编程)
随着模型能力提升,“先做出来”逐渐变得比“先设计清楚”更重要。
一句话定义:不拘泥于代码细节,边聊边改,快速迭代,快速产出。
示例对话
“帮我做个聊天室”
“加个暗黑模式”
“做成苹果风格”
“这个动画顺一点”
Vibe Coding 适合快速验证想法和 Demo 制作,但规模一大就容易失控。
第四阶段:Plan Coding(计划式编程)
Vibe Coding 的问题在复杂项目中暴露无遗。软件开发终究需要方案评审、任务拆解,而不是“哪里不对改哪里”。
一句话定义:先生成计划,再执行计划——把软件工程重新引入 AI Coding。
示例流程
“帮我做个聊天室”
→ 输出技术方案
→ 模块拆分
→ 任务列表(Task List)
→ 逐步实现
第五阶段:Spec Coding(规范驱动编程)
Spec = Specification(规格说明)。可以理解为 Plan Coding 的严格化版本,类似大型项目的开发流程:反复对齐需求 PRD、设计原型、技术设计文档,最终严格按照规范进行编码。
一句话定义:严谨、结构化的文档约束优先于编码本身。某种意义上,Spec 才是真正的源代码。
第六阶段:Harness(AI 执行底座)
Harness 一词来自 OpenAI 工程师的一篇技术博客,本意是“马具”,在 AI Coding 领域引申为“护栏”或 Agent Runtime。
一句话定义:Harness 是一整套 AI Agent 工程系统。大模型 = 大脑,Harness = 手脚 + 工具链 + 工作流。
工程师的角色从这里发生根本转变:从 执行者 变为 驾驭者。
Harness 的核心组件
- 模型管理:定义 AI 的能力边界,明确哪些工具可用、哪些操作不可为。
- 上下文控制:维护开发环境的状态一致性,确保 Agent 每一步都拥有恰当的上下文。
- 质量保障:集成静态分析、单元测试等前置验证机制,让 AI 输出从随机生成转变为可预测的工程产出。
写在最后
或许这些概念会快速的过时,就像它们快速的出现一样。但作为技术人员还是要拥抱变化,AI Coding的范式会转变,但思想是有其脉络性的。
变化的是工具,不变的是驾驭变化的思维。