- Prompt Engineering(提示词工程):解决模型是否听懂指令的问题,通过角色设定、风格约束、few-shot 示例等塑造局部概率空间,核心是语言设计。
- Context Engineering(上下文工程):解决模型是否获取足够正确信息的问题,整合用户输入、历史对话、检索结果等所有影响决策的信息总和,典型实践如 RAG,强调按需、分层、适时提供信息。
- Harness Engineering(驾驭工程):解决模型在真实场景中能否持续正确执行任务的问题,关注任务执行的监督、约束与纠偏,是对整个运行系统的工程化。
那到底什么是Harness Engineering?
第一部分:什么是 Harness Engineering
Harness Engineering是指围绕 AI Agent(特别是 Coding Agent)设计和构建约束机制、反馈回路、工作流控制和持续改进循环的系统工程实践。它解决的核心问题是:当 AI Agent 拥有了强大的代码生成能力后,如何确保其输出的可靠性、一致性和长期可维护性。
“Harness”本意是马具——缰绳、鞍具那一套东西,把马的力气引到正确方向上。拿来类比 AI Agent 挺合适:LLM 就像一匹蛮力十足但方向感不太行的马,跑得快但容易跑偏.
可以用一句大白话让你明白,在一个Agent系统里,除了模型本身以外,几乎所有决定它能不能稳定交付的东西,就叫Harness。
具体是怎么回事呢?
- 上下文管理:明确角色目标与定义、裁剪选择相关信息、结构化组织信息(规则、任务、状态、证据分层),确保模型在正确信息边界内思考。
- 工具系统:解决工具选择(避免工具过少能力不足或过多导致滥用)、调用时机(无需查时不乱查,需查时不硬答)、结果处理(提炼筛选工具返回结果),使模型能与真实世界交互。
- 执行编排:规划任务轨道(理解目标→判断信息是否足够→捕集结果→分析→生成输出→检查→修正 / 重试),将步骤串联以避免半成品交付。
- 记忆和状态:管理当前任务状态、对话中间结果、长期记忆和用户偏好,避免状态混乱,使 Agent 成为稳定协作者。
- 评估和观测:包含输出验收、环境验证、自动测试、日志指标、错误归因等,确保系统知道自身输出是否正确,避免自我感觉良好。
- 约束校验与失败恢复:明确约束(能做与不能做)、校验机制(输出前后检查)、恢复策略(失败后重试、切入、回滚到稳定状态),应对真实环境中的常态失败。
第二部分:为什么需要 Harness Engineering
2.1 模型能力不是瓶颈
这一判断得到了量化验证:
Can.ac 实验:仅改变 Harness 的工具格式(编辑接口),就在 16 个模型上显著提升了编码基准分数。效果最显著的 Grok Code Fast 1 从 6.7% 跃升至 68.3%——没有修改任何模型权重.
LangChain实验:仅通过 Harness 改进,在 Terminal Bench 2.0 上从第 30 名跃升至第 5 名,同一模型提升了 13.7 分。
这些结果表明:在纠结模型选择之前,先审视 Harness 设计能获得更高的投资回报率。
OpenAI 团队说得很直接:真正卡你的不是 Agent 写代码的能力,而是围绕它的结构、工具和反馈机制跟不上. 五个独立团队得出了相同结论:基础设施才是瓶颈,而非智能水平。
2.2 Agent 的典型失败模式
Anthropic 在做长时间运行 Agent 的过程中,总结了 Agent 常见的翻车姿势:
失败模式 1:试图一步到位(One-shotting)。 Agent 倾向于一次做完所有事情,结果在实现进行到一半时上下文窗口就耗尽了。下一个会话启动时看到的是半成品、没有文档的代码,只能花大量时间猜测之前发生了什么并试图恢复工作状态。
失败模式 2:过早宣布胜利。 在项目后期,当部分功能已经完成后,Agent 会环顾四周,看到已有进展就直接宣布任务完成——即使还有大量功能未实现。
失败模式 3:过早标记功能完成。 在没有明确提示的情况下,Agent 写完代码就标记为“完成”,却没有做端到端测试。单元测试或 curl 命令通过了不代表功能真正可用。
失败模式 4:环境启动困难。 每次新会话启动时,Agent 需要花费大量 token 弄清楚如何运行应用、如何启动开发服务器,而不是把时间花在实际开发上。
2.3 上下文窗口利用率的甜蜜区间
Dex Horthy 有个很实用的经验观察:上下文填得越满,LLM输出质量越差。以 168K token 的上下文窗口为例,大约用到 40% 就开始走下坡路了:
Smart Zone(前约 40%):聚焦、准确的推理。Agent 拥有相关、精炼的信息。
Dumb Zone(超过约 40%):幻觉、循环、格式错误的工具调用、低质量代码。更多 token 反而损害性能。
说白了,给 Agent 塞一堆 MCP 工具、冗长文档和累积的对话历史,不会让它更聪明——反而会让它变笨。
这个时候,就可以发现Harness Engineering的重要性了。

