从 Prompt 到 Harness:AI Agent 工程范式的三次演进

随着大模型从"聊天工具"走向"自主 Agent",工程重点也发生了明显迁移:

Prompt → Context → Harness = 从"说什么"到"给什么信息",再到"构建整个运行环境"

这篇文章将系统讲清三者的区别、出现背景,以及为什么 Harness Engineering 成为新的关键。

一、Prompt Engineering:最早的"控制手段"

1. 本质是什么?

Prompt Engineering 是:

通过设计输入指令(prompt)来引导模型行为

它的核心是:

  • 指令设计(Instruction)

  • 示例(Few-shot)

  • 输出格式约束

LLM 本质上是"按输入生成输出",所以 prompt 就像"程序"。

2. 为什么会出现?

因为:

  • LLM 是黑盒,不能轻易改参数

  • prompt 是最低成本控制方式(无需训练)

👉 所以早期阶段:

"不会写 prompt = 不会用 AI"

3. 局限性

Prompt Engineering 的问题在于:

  • ❌ 只适用于单轮任务

  • ❌ 不解决状态管理(memory)

  • ❌ 不解决多步推理

  • ❌ 强依赖"试错 + 调参"

👉 当 AI 从 ChatGPT 进化为 Agent 后,问题爆发了。

二、Context Engineering:从"说什么"到"给什么"

1. 核心定义

Context Engineering 是:

设计模型"看到的全部信息"

一句经典总结:

Prompt 是"问什么",Context 是"给它什么材料去回答"

2. 为什么出现?

因为系统变复杂了:

阶段 特点
Chatbot 单轮
Agent 多步 + 长期运行

👉 问题变成:

  • 上下文太多(token 限制)

  • 信息质量不稳定

  • memory / RAG / tool 混乱

"大多数 agent 的失败,本质是 context 失败"

3. Context Engineering 做什么?

核心任务:构建"上下文窗口"

包括:

四大组成(典型结构)

  • Instruction(系统提示)

  • Memory(历史)

  • RAG(检索知识)

  • Tools(工具输出)

👉 本质是:

让模型在每一步都看到"刚刚好"的信息

4. 典型方法(来自 LangChain & 实践)

  • Summarization(压缩历史)

  • Middleware(拦截 & 修改上下文)

  • 动态裁剪 context

  • 状态结构化(JSON state)

5. 局限性

即使 context 做好了,仍然会出现:

  • ❌ Agent 不会自检(直接输出错误)

  • ❌ 陷入循环(doom loop)

  • ❌ 不理解环境(文件、工具)

  • ❌ 不知道任务标准

👉 这就是下一阶段的起点。

三、Harness Engineering:让 Agent 真正"能工作"

1. 核心定义

Harness Engineering 是:

围绕模型构建完整运行系统(约束 + context + feedback)

可以理解为:

复制代码
Model + Harness = Agent

(Harness Engineering)

2. 为什么出现?

现实问题:

👉 同一个模型:

  • 在 A 项目表现很好

  • 在 B 项目表现很差

原因不是 prompt,而是:

环境(environment)不同

本质问题:

  • Agent 不知道:

    • 环境结构

    • 任务标准

    • 什么时候结束

  • 没有:

    • 验证机制

    • 反馈循环

    • 约束系统

👉 Prompt + Context 已经不够了

3. Harness Engineering 解决什么问题?

✅ 1. 可靠性问题(最核心)

LLM:

  • 会"自信地错"

  • 不会自动检查

👉 Harness 通过:

  • 测试(tests)

  • 校验(verification)

  • checklist

让 agent 强制自检

✅ 2. Doom Loop(死循环)

Agent 会:

  • 一直重复错误策略

  • 修改同一文件 10+ 次

👉 解决方案:

  • Loop Detection Middleware

  • 强制"重新思考"

✅ 3. 环境感知能力

Agent 不知道:

  • 有哪些文件

  • 有哪些工具

👉 Harness 注入:

  • 目录结构

  • 工具信息

  • 运行环境

✅ 4. 无人监督问题(Autonomy)

Agent 要做到:

  • 自己做

  • 自己检查

  • 自己修

👉 Harness 提供:

  • write → test → fix 循环

4. Harness 的核心组件

总结为四大块:

1️⃣ Context(继承自 Context Engineering)

  • 输入什么信息

2️⃣ Constraints(约束)

  • 规则 / 格式 / 边界

3️⃣ Feedback Loops(反馈循环)

  • 测试 → 修复

4️⃣ Tools & Memory(工具 + 状态)

(Harness Engineering)

5. 关键方法总结(最重要)

结合 LangChain 博客,核心方法有:

⭐ 方法1:强制验证(Verification Loop)

  • PreCompletionChecklistMiddleware

  • 输出前必须检查任务要求

👉 解决:

"看起来对,其实错"

⭐ 方法2:环境注入(Environment Injection)

  • 文件结构

  • 工具能力

  • 执行约束

👉 解决:

agent "瞎猜环境"

⭐ 方法3:测试驱动(Test-driven Agents)

  • 先定义测试

  • 再生成代码

  • 自动运行验证

👉 类似:

TDD(测试驱动开发)

⭐ 方法4:Loop Detection(防死循环)

  • 检测重复操作

  • 提醒策略错误

⭐ 方法5:时间预算(Time Budgeting)

  • 提醒 agent 收敛

  • 防止无限执行

四、三者关系总结(核心对比)

层级 关注点 解决问题
Prompt Engineering 如何说 单轮输出质量
Context Engineering 给什么信息 多步任务稳定性
Harness Engineering 整个系统怎么运作 可靠性 & 自动化

👉 一句话总结:

  • Prompt:语言层

  • Context:信息层

  • Harness:系统层

五、核心洞察(最重要)

1. Agent 的本质不是模型,而是系统

"真正决定效果的,是模型周围的环境"

2. Prompt 的时代已经过去(部分)

Prompt 仍然重要,但:

  • 不再是核心瓶颈

  • 已成为 Context 的一部分

3. Harness = AI时代的软件工程

它本质在做的是:

  • 把 AI 从"概率系统"

  • 变成"工程系统"

六、总结一句话

Prompt 让模型听话,Context 让模型有信息,Harness 让模型真正能完成任务。

参考资料

https://openai.com/index/harness-engineering/

https://blog.langchain.com/improving-deep-agents-with-harness-engineering/

https://aicoding.csdn.net/69c11b2854b52172bc63b5a3.html

https://madplay.github.io/en/post/harness-engineering?utm_source=chatgpt.com

相关推荐
LS_learner2 小时前
Node.js 与 npm 的版本对应关系表
人工智能
不知名的老吴2 小时前
思考:AI算法领域主流语言是什么?
人工智能
彭祥.2 小时前
基于计算机视觉的运动计数与饮食热量分析系统
人工智能·计算机视觉
超b小哥2 小时前
【超详细】Claude Code Ubuntu平台完整部署指南
linux·人工智能·ubuntu·ai·claude code
wotaifuzao2 小时前
给 AI 编写“外设驱动”——Agent Skills 工程落地全解析
人工智能·嵌入式架构·agent工程化·ai开发实践·自动化工具链·prompt工程进阶
剑穗挂着新流苏3122 小时前
204_从回归到分类:Softmax 回归、损失函数与多分类实战
人工智能·pytorch·python·深度学习
人工智能AI技术2 小时前
字节开源 DeerFlow 2.0——登顶 GitHub Trending 1,让 AI 可做任何事情
人工智能
spider'2 小时前
系统的架构
人工智能
莱歌数字2 小时前
强化学习如何重构芯片热管理?
人工智能·重构·制造·cae·散热