从软件测试角度聊聊“Prompt / Context / Harness区别”
2026/7/20 19:52:58 网站建设 项目流程

从软件测试角度聊聊“Prompt / Context / Harness区别”

  • 你可能在错误混用Prompt / Context / Harness
  • Prompt Engineering —— 「把话说好」
  • Context Engineering —— 「给对信息」
  • Harness Engineering —— 「把环境建好」
  • 用测试思维类比这三层

你可能在错误混用Prompt / Context / Harness

有这么一个真实且频发的场景:

Agent 在处理长任务时开始「遗忘」前面的步骤,把已经完成的事情重复执行了一遍。大多数团队的第一反应是:提示词问题。于是在 System Prompt 里加上「请注意不要重复执行已完成的步骤」。Agent 好了几天,又犯了。

再加一段更详细的指令,描述什么是「已完成」,什么是「待执行」。又好了一阵,又犯了,而且犯得越来越花样多。

最后提示词变成了一份 3000 字的规范,Agent 的实际表现却越来越混乱。

这种错误之所以如此普遍,是因为 Prompt Engineering、Context Engineering、Harness Engineering 这三层的边界给混用了。

Prompt Engineering —— 「把话说好」

这是最基础的一层,也是大多数人接触 AI 的起点。它的核心工作是:用更好的措辞和结构,让模型在单次交互中给出更好的输出。

Few-shot 示例、Chain-of-Thought 引导、角色扮演、输出格式控制——这些都是 Prompt Engineering 的范畴。它的生效范围是一次请求,下一次请求它不认识你。

Prompt Engineering 能解决的问题:模型不理解你的意图、输出格式不对、推理步骤不够清晰。

Prompt Engineering 解决不了的问题:任务执行过程中的状态管理、错误恢复、跨步骤的一致性。

Context Engineering —— 「给对信息」

当你意识到「给模型看什么」比「怎么问模型」更重要的时候,你就进入了 Context Engineering 的思维。

它的核心工作是:在有限的 Token 预算内,动态决定哪些信息应该进入上下文窗口,哪些应该被压缩或丢弃。RAG 检索、对话摘要压缩、相关记忆动态注入——这些都是 Context Engineering 的操作。

它的生效范围是一个上下文窗口。跨越了窗口边界,它就需要 Harness 来承接。

Harness Engineering —— 「把环境建好」

这是最容易被忽视、也最容易被误解的一层。

Harness 不是「复杂的提示词」,也不是「高级的 RAG」。它是 Agent 的运行环境本身——工具的授权与执行、跨任务会话的持久化、任务失败的恢复逻辑、高风险操作的人工审批门、整个执行过程的可观测性。

如果说 Prompt 是「告诉 Agent 做什么」,Context 是「让 Agent 看到什么」,那么 Harness 就是 「确保 Agent 能在真实世界里可靠地把事情做完」。

用测试思维类比这三层

AI 工程层测试工程对应核心问题
PROMPT
Prompt Engineering
指令优化层
测试用例设计
怎么写出一个好用例,清晰、完整、可执行
怎么把需求说清楚,让执行者准确理解意图?
CONTEXT
Context Engineering
信息管理层
测试数据准备
前置条件、测试数据集、Mock 数据的准备与管理
执行前被测对象「喂」什么信息,才能让它做出正确的行为?
HARNESS
Harness Engineering
运行环境层
测试框架 / 测试环境
JUnit、TestNG、CI 流水线、Mock Server、质量门控
用什么基础设施来保证测试能稳定、可重复、可追溯地运行?

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询