◉ DECK/ MISSION LOG/ HARNESS

Harness Engineering

STARDATE 2026.095 · ◷ 7 min read ·

Harness Definition

一句话:Agent = Model + Harness。你不是模型,那你就是 Harness。

这句话是不是感觉听起来有点绝对,我第一次看到也是这种感觉。不过,其实这样简单的一句话反而抓住了关键。

Harness 就是模型之外的一切——系统提示词、工具调用、文件系统、沙箱环境、编排逻辑、钩子中间件、反馈回路、约束机制。模型本身只是能力的来源,只有通过 Harness 把状态、工具、反馈和约束串起来,它才真正变成一个 Agent。

LangChain 的 Vivek Trivedi 在《The Anatomy of an Agent Harness》里把这个定义讲得很清楚:先搞清楚模型负责什么,剩下的系统要补什么,用这条线把整个系统切开。

通俗理解: 模型是 CPU,Harness 是操作系统。CPU 再强,OS 拉胯也白搭。你买了最新款 M5 芯片,装了个崩溃不断的系统,体验还不如老芯片配稳定的 OS。

Harness 和 Prompt/Context Engineering 的关系

层级解决的核心问题关注点典型工作
Prompt Engineering表达——怎么写好指令塑造局部概率空间,让模型听懂意图系统提示词设计、Few-shot 示例、思维链引导
Context Engineering信息——给 Agent 看什么确保模型在合适的时机拿到正确且必要的事实信息上下文管理、RAG、记忆注入、Token 优化
Harness Engineering执行——整个系统怎么防崩、怎么量化、怎么持续运转长链路任务中的持续正确、偏差纠正、故障恢复文件系统、沙箱、约束执行、熵管理、反馈回路

简单任务里,提示词最重要——你把话说清楚就行;依赖外部知识的任务里,上下文很关键——你得把正确的信息喂进去;但在长链路、可执行、低容错的真实商业场景里,Harness 才是决定成败的东西。

Harness 组件

理解 Harness 的最好方式,不是直接看它包含什么,而是看模型做不到什么。不管大模型看起来多能干,本质就是一个文本(或图像、音频)进、文本出的函数。

模型做不到的,就是 Harness 要补的:

模型做不到Harness 怎么补核心组件
记住多轮对话历史维护对话历史,每次请求时拼进上下文记忆系统
执行代码、跑命令提供 Bash + 代码执行环境通用执行环境
获取实时信息(新库版本、API 变化)Web Search、MCP 工具外部知识获取
操作文件和环境文件系统抽象 + Git 版本控制文件系统
知道自己做对了没有沙箱环境 + 测试工具 + 浏览器自动化验证闭环
在长任务中保持连贯上下文压缩、记忆文件、进度追踪上下文管理

通俗理解: 把这些“模型做不了但你希望 Agent 能做到”的事情一个个补上,就得到了 Harness 的核心组件。LangChain 有一位大佬把这件事拆解为五个子系统:文件系统(持久化)、Bash 执行(通用工具)、沙箱环境(安全隔离)、记忆机制(跨会话积累)、上下文压缩(对抗衰减)。

为什么需要 Harness?

Agent典型失败模式

  1. 试图一步到位(One-shotting)。 Agent 倾向于一次做完所有事情,结果在实现进行到一半时上下文窗口就耗尽了。下一个会话启动时看到的是半成品、没有文档的代码,只能花大量时间猜测之前发生了什么并试图恢复工作状态。
  2. 过早宣布胜利。 在项目后期,当部分功能已经完成后,Agent 会环顾四周,看到已有进展就直接宣布任务完成——即使还有大量功能未实现。
  3. 过早标记功能完成。 在没有明确提示的情况下,Agent 写完代码就标记为“完成”,却没有做端到端测试。单元测试或 curl 命令通过了不代表功能真正可用。
  4. 环境启动困难。 每次新会话启动时,Agent 需要花费大量 token 弄清楚如何运行应用、如何启动开发服务器,而不是把时间花在实际开发上。

上下文窗口利用率

上下文填得越满,LLM输出质量越差

给 Agent 塞一堆 MCP 工具、冗长文档和累积的对话历史,不会让它更聪明——反而会让它变笨。

面试要点

基础概念

问题核心回答
Harness 是什么?模型之外的一切——系统提示词、工具调用、文件系统、沙箱、编排逻辑、约束机制。Agent = Model + Harness。
Harness 和 Prompt Engineering、Context Engineering 的关系?嵌套关系:Prompt ⊂ Context ⊂ Harness。三者分别解决表达、信息、执行三个层面的问题。
为什么瓶颈不在模型而在 Harness?Can.ac 实验证明同一模型只换工具调用格式,分数从 6.7% 跳到 68.3%。基础设施质量决定了模型能力的实际发挥。

架构设计

问题核心回答
Harness 六层架构是什么?L1 信息边界 → L2 工具系统 → L3 执行编排 → L4 记忆与状态 → L5 评估与观测 → L6 约束校验与恢复。从“定义边界”到“兜底恢复”的完整闭环。
上下文管理有什么经验法则?利用率控制在 40% 以内。超过后 Agent 质量明显下降(幻觉增多、兜圈子)。策略是压缩或交接,不是继续塞信息。
单 Agent 还是多 Agent?规模决定。小项目单 Agent 够用(Hashimoto 模式),大项目几乎必然需要专业化分工(Carlini 用 16 个并行 Agent)。

实战方案

问题核心回答
OpenAI 的 Harness 实践核心是什么?五大方法论:地图式文档(渐进式披露)、机械化约束(自定义 Linter)、可观测性接入、熵管理(定期垃圾回收)、仓库即事实源。
Anthropic 如何解决上下文焦虑?Context resets 策略:不压缩,而是启动一个全新“干净”的 Agent,通过结构化交接文档恢复状态。类似重启进程解决内存泄漏。
从零搭 Harness 先做什么?P0:创建 AGENTS.md + 自定义 Linter + 团队知识仓库化。投入产出比最高。