Prompt Engineering、Context Engineering、Harness Engineering:它们到底是什么关系?
过去两年,AI 圈出现了三个越来越常见的词:
- Prompt Engineering
- Context Engineering
- Harness Engineering
很多人第一次看到时会以为它们是同义词,只是换了个更“高级”的说法。 但如果把它们混在一起,就很容易在实际项目里走偏。
最简单的理解是:
Prompt Engineering 关注“怎么说” Context Engineering 关注“给模型什么信息” Harness Engineering 关注“如何把整个 AI 系统管起来,让它稳定工作”
如果说你在和一个非常聪明但容易跑偏的实习生合作:
- Prompt engineering 是你怎么给他下指令
- Context engineering 是你给他哪些背景资料、工具和上下文
- Harness engineering 是你给他设计的工作流程、约束、检查机制和反馈回路
这三者不是互斥关系,而是层层展开的关系。
一、Prompt Engineering:最早被大众理解的“AI 技能”
Prompt engineering 最早火起来,是因为大家发现: 同一个模型,换一种提问方式,结果可能差很多。
OpenAI 官方文档把它定义为:编写有效指令,让模型更稳定地产生符合要求的内容。 这套方法包括:
- 明确任务目标
- 指定角色和语气
- 给出 few-shot 示例
- 约束输出格式
- 拆解复杂任务
在聊天式 AI、内容生成、分类抽取这类单轮任务里,prompt engineering 很有效。
例如你让模型“总结这篇文章”,和你说:
请用 3 点总结下文,面向非技术读者,每点不超过 30 字,并给出 1 句结论
两者效果通常差别很大。
所以 prompt engineering 的核心价值,不是“魔法咒语”,而是把要求说清楚。
但问题也很明显:
当任务从“一次回答”变成“多步执行”,prompt engineering 就开始不够用了。
二、Context Engineering:从“怎么问”升级到“给什么上下文”
2025 年之后,越来越多团队开始把重心从 prompt engineering 转向 context engineering。
一个重要原因是: 很多 AI 应用失败,不是因为模型不够强,而是因为模型没有拿到完成任务所需的正确上下文。
LangChain 官方文档对 context engineering 的定义很直接:
把正确的信息和工具,以正确的形式,提供给模型,让它能够完成任务。
这句话很重要,因为它意味着:
context 不只是 prompt 文本本身,还包括:
- 系统指令
- few-shot 示例
- 会话历史
- 用户画像
- 检索到的知识
- 工具描述
- 工具返回结果
- 中间状态
- 长期记忆
也就是说,prompt engineering 其实只是 context engineering 的一部分。
为什么 context engineering 比 prompt engineering 更进一步?
因为真实世界里的 AI 应用,往往不是一次性问答,而是一个动态过程。
比如一个客服 Agent,要先理解用户问题,再查订单,再调用退款工具,再确认政策,再生成回复。 在这个过程中,每一步模型需要的信息都不一样。
这时真正关键的,不再是“开头那句 prompt 写得漂不漂亮”,而是:
- 哪些信息应该放进上下文
- 哪些信息应该删掉
- 哪些信息应该压缩
- 哪些任务应该隔离到子 Agent
- 哪些历史应该保留为长期记忆
这就是 context engineering 的本质: 动态管理模型每一步看到的工作记忆。
一句话总结:
Prompt engineering 是写好一句话; Context engineering 是设计一整套“信息供给系统”。
三、Harness Engineering:再往上一层,开始工程化地“驯服”AI
到了 2026 年,另一个词开始快速出现:Harness Engineering。
OpenAI 在 2026 年 2 月 11 日发布的文章《Harness engineering: leveraging Codex in an agent-first world》中,讲了一个非常有代表性的案例:
他们用 Codex 构建并交付了一个内部产品 beta,声称整个代码库里“0 行人工手写代码”,总代码量达到百万行级别,而且已经有真实用户在使用。
这篇文章传递出的核心信息不是“prompt 更重要了”,而是:
当 agent 真正进入生产环境后,人类工程师的主要工作,越来越像是在设计环境、约束和反馈回路,而不再只是亲手写代码。
这就是 harness engineering 的核心。
“harness” 原意是马具、缰绳。 这个比喻非常贴切:模型能力像马力,harness 的作用不是替代马,而是把力量导向可控、可复用、可验证的方向。
从 OpenAI 的实践看,harness engineering 关注的内容包括:
- 让 Agent 能访问代码库中的结构化知识
- 让规则不仅写在文档里,还能被 lint 和 CI 强制执行
- 给 Agent 提供浏览器、日志、指标、测试环境等可观察能力
- 让 Agent 能自己 review、修复、验证、再提交
- 通过 PR、测试、文档、执行计划形成闭环
所以,harness engineering 不是“再高级一点的 prompt engineering”,而是:
围绕模型构建一整套可控的工程系统。
四、三者到底是什么关系?
我认为,一个非常实用的关系图是:
Prompt Engineering ⊂ Context Engineering ⊂ Harness Engineering
也可以翻译成:
- Prompt engineering 是最内层
- Context engineering 是中间层
- Harness engineering 是最外层
1. Prompt Engineering 是局部优化
它解决的是“单次调用如何表达得更清楚”。
你在优化的是:
- 指令措辞
- 输出格式
- 示例写法
- 角色设定
- 约束表达
这很重要,但它主要作用在“单个模型调用”层面。
2. Context Engineering 是信息编排
它解决的是“模型在这一刻应该看到什么”。
你在优化的是:
- 检索哪些信息
- 保留哪些历史
- 怎么压缩上下文
- 如何做记忆管理
- 如何拆分多 Agent 上下文
这已经从“写提示词”变成了“设计信息流”。
3. Harness Engineering 是系统治理
它解决的是“即使模型会出错,整个系统还能不能稳定地产出可接受结果”。
你在优化的是:
- 工作流
- 约束机制
- 自动校验
- 测试回路
- 观察与追踪
- 回滚与修复
- 人机协作边界
这已经不是“如何调用模型”,而是“如何运营一个以模型为核心的新型软件系统”。
五、为什么今天不能只谈 Prompt Engineering?
因为很多团队已经发现,项目做不起来,往往不是 prompt 不够好,而是系统太脆。
常见问题包括:
- 给了模型太多无关信息,反而让它分心
- 历史上下文不断膨胀,最后污染决策
- 工具调用结果没人校验
- 文档、代码、规则彼此不一致
- Agent 做完任务后,没有测试、审查和回归机制
- 一旦任务变长,系统就开始“漂移”
这些问题,prompt engineering 几乎无能为力。
你当然可以继续改 prompt, 但很多时候那只是“在错误层级上努力”。
这也是为什么越来越多一线团队开始强调:
- prompt 只是入口
- context 才是关键
- harness 才决定能不能规模化落地
六、如果你是普通开发者,应该怎么理解这三个层次?
一个很实用的判断方法是:
如果你在做这些事,你主要是在做 Prompt Engineering
- 调整提示词措辞
- 增加 few-shot 示例
- 约束输出格式
- 让模型语气更稳定
- 提高单次回答质量
如果你在做这些事,你主要是在做 Context Engineering
- 做 RAG 检索
- 设计 memory
- 控制历史消息长度
- 动态拼接工具说明
- 给不同子任务分配不同上下文
- 压缩中间结果
如果你在做这些事,你主要是在做 Harness Engineering
- 给 Agent 配测试、lint、CI
- 设计多轮执行和反馈闭环
- 给 Agent 加可观察性和日志系统
- 让规则可以被程序化执行
- 设计回滚、审批、人工兜底机制
- 把 AI 纳入完整的软件工程体系
七、一个更贴近现实的结论
如果只做演示 Demo:
- Prompt engineering 往往就够了
如果要做能用的 AI 应用:
- 你很快就会进入 context engineering
如果要做真正可上线、可维护、可规模化的 Agent 系统:
- 你最终绕不过 harness engineering
所以这三者不是“谁取代谁”,而是:
AI 工程正在从“写好提示词”,走向“设计上下文”,再走向“搭建完整的控制系统”。
这背后反映的,其实是 AI 应用从玩具走向生产系统的过程。
八、最后一句话总结
Prompt engineering 决定模型“听不听得懂你在说什么”; context engineering 决定模型“有没有拿到完成任务所需的信息”; harness engineering 决定模型“即使会犯错,系统还能不能持续、稳定、可控地运行”。
如果你只记住一句话,我建议记住这句:
Prompt 是输入技巧,Context 是信息架构,Harness 是系统工程。
参考资料
-
OpenAI, Prompting platform.openai.com/docs/guides…
-
OpenAI, Prompt engineering platform.openai.com/docs/guides…
-
LangChain Docs, Context engineering in agents docs.langchain.com/oss/python/…
-
LangChain Blog, The rise of context engineering blog.langchain.com/the-rise-of…
-
LangChain Blog, Context Engineering www.blog.langchain.com/context-eng…
-
OpenAI, Harness engineering: leveraging Codex in an agent-first world openai.com/index/harne…