结合程序员日常的 AI Coding 场景,这三者的区别会变得非常具体和生动。我们可以把 AI 想象成你的一个“AI 结对编程伙伴”,来看看这三种工程手段分别是如何驱动它的:
Prompt Engineering:怎么给 AI 下达“单次指令”
这就像你给身边的同事口头布置一个具体的小任务。你的指令越清晰,他干活越利索。 - 日常表现: - 你在 IDE 的 AI 聊天框里输入:“帮我用 Python 写一个快速排序算法,要求加上详细的中文注释。” - 或者:“这段代码报错了,帮我分析一下原因并给出修复建议。” - 核心动作:你通过角色扮演(“你是一个资深架构师”)、明确约束(“不要用递归实现”)、指定格式(“输出 Markdown 格式”)来引导 AI 生成你想要的代码片段。 - 局限:如果你只靠 Prompt,AI 就像一个刚入职、对你项目一无所知的新人。他写出来的代码可能语法完美,但变量命名风格跟你团队完全不符,甚至重复造了你项目里已经存在的轮子。
Context Engineering:给 AI 投喂“项目说明书”
这就像你给这位 AI 同事配了一台电脑,里面装好了公司的代码库、技术文档和设计规范。在他干活前,你不仅下达指令,还确保他“看”到了正确的背景资料。 - 日常表现: - 你在 Cursor、Windsurf 等 AI 编辑器里,通过 @ 符号引用了项目里的 utils.ts 文件或 API接口文档.md,然后再提问:“参考这个工具函数,帮我实现一个新的业务接口。” - 项目根目录下有一个 .cursorrules 或 AGENTS.md 文件,里面写满了团队的代码规范(比如“统一使用 Tailwind CSS”、“禁止使用 var 声明变量”)。AI 在生成代码时,会自动读取并遵守这些规则。 - 核心动作:你通过挂载代码库、提供架构文档、投喂相关代码片段,让 AI 具备了“项目记忆”。它写出的代码不仅逻辑正确,而且风格统一、符合业务语境。 - 局限:虽然 AI 看懂了代码,但他写完就完了。代码能不能跑通?会不会把其他模块搞崩?他自己是不会主动去验证的,依然需要你来审查和测试。
Harness Engineering:搭建 AI 自主干活的“自动化流水线”
这就像你不再把 AI 当同事,而是把他变成了一个全自动的流水线工人,并且给这条流水线装上了各种传感器、质检仪和机械臂。 - 日常表现: - 你不再是一句句跟 AI 聊天,而是在任务面板里输入一个宏大需求:“给项目增加一个用户积分系统”。 - AI 开始自主行动:它先读取需求文档(Context),拆解任务,然后自主修改多个文件,接着自动在终端运行单元测试和 Lint 检查(工具调用)。 - 如果测试报错,AI 会自动读取报错日志(反馈传感器),自己分析原因并修复代码,直到所有测试通过,最后自动发起一个 Pull Request 等你验收。 - 核心动作:你搭建了一套系统(Harness),包含了工具权限(允许 AI 读写文件、跑命令)、自动化质检(CI/CD、单元测试)、任务编排(拆解步骤、死循环检测)和安全护栏(禁止 AI 删库、禁止触碰生产环境配置)。 - 结果:AI 从一个“聊天机器人”进化成了能独立闭环完成复杂需求的“AI 员工”。
总结一下三者的区别
| 维度 | Prompt Engineering | Context Engineering | Harness Engineering |
|---|---|---|---|
| AI 的角色 | 一个 | 一个 | 一个 |
| 你的操作 | 在聊天框里 | 在提问时 | 设计一套工作流 |
| 产出物 | 一段 | 一段 | 一个 |
在日常开发中,绝大多数程序员目前主要停留在 Prompt 和 Context 阶段(比如熟练使用 Cursor 的 @ 引用功能)。而 Harness Engineering 则是目前各大厂和顶尖 AI 编程工具正在全力攻克的方向,目的是让 AI 真正接管繁琐的编码和测试闭环。