从提示词->上下文->harness工程的演进 早期的工程重心完全集中在模型本身——如何让它听懂话。然而,当我们将大模型应用于长周期的复杂真实业务(如连续运行数小时的自动编程、深度研究或 Anthropic 提出的 Computer Use/Claude Cowork 级别人机协作)时,我们发现单纯的“沟通”是不够的。 这就催生了AI工程学的三次迭代:从解决表达问题的 Prompt Engineering,到解决信息供给的 Context Engineering,最终走向解决稳定执行的 Harness Engineering。 1.Prompt Engineering —— 解决“如何表达清楚” 在这个阶段,模型被视为一个“拥有海量知识但缺乏常识的超级实习生”。
早期的工程重心完全集中在模型本身——如何让它听懂话。然而,当我们将大模型应用于长周期的复杂真实业务(如连续运行数小时的自动编程、深度研究或 Anthropic 提出的 Computer Use/Claude Cowork 级别人机协作)时,我们发现单纯的“沟通”是不够的。
这就催生了AI工程学的三次迭代:从解决表达问题的 Prompt Engineering,到解决信息供给的 Context Engineering,最终走向解决稳定执行的 Harness Engineering。
在这个阶段,模型被视为一个“拥有海量知识但缺乏常识的超级实习生”。工程的核心挑战是消除人类自然语言中的模糊性,将其转化为模型能够高概率生成正确输出的指令。
Prompt Engineering 假设了环境是静态的。当面对需要跨越多个文档、需要调用外部工具或持续数天的任务时,静态的 Prompt 无法应对动态变化的信息流。
随着模型上下文窗口(Context Window)扩展到 1M 甚至 2M tokens(如 Claude 3 系),工程师们发现,一味地扩大窗口不仅极其昂贵,而且会导致模型“注意力涣散”(Lost in the Middle 现象)。因此,Context Engineering 应运而生,它不再关心“怎么说”,而关心“给它看什么”。
另一方面,即使模型能够支持超长上下文,但是在实际场景中,输入如果接近上下文窗口,不仅会出现上下文腐坏(内容过多,模型无法很好的分析和回答问题),也会出现上下文焦虑(提前结束输出)
Context Engineering 保证了模型在单次推理时拥有“完美的情报”。但它仍然是一个静态的切片。当模型需要自主运行 8 个小时去重构一个微服务架构时,谁来决定什么时候去检索?如果检索失败了怎么办?如果模型陷入了死循环怎么办?这就是 Harness 需要接管的地方。
但从范围上来看,harness engineering相对于context engineering增加了状态管理、智能体编排与验证
| 阶段 | 核心命题 | 关键突破 | 解决的核心痛点 |
|---|---|---|---|
| Prompt Engineering | 如何表达清楚 | 角色设定、Few-shot、CoT | 模型"听不懂"指令 |
| Context Engineering | 如何信息供给 | RAG、渐进式披露、分层上下文 | 模型"看不到"关键信息 |
| Harness Engineering | 如何稳定执行 | 多智能体协作、评估器分离、状态管理 | 模型"做不对"复杂任务 |
如同 Anthropic 团队在构建长时间运行智能体时所发现的:大模型本质上是非确定性的(Non-deterministic),它们只思考下一个 Token。如果你让它连续思考 8 个小时,微小的错误概率会不断累积。
Context Engineering 只能保证每次思考时“手上拿的资料是对的”。 但只有 Harness Engineering 能够保证运行的过程稳定