什么是 Harness 治理?为什么说 Agent 的能力一半在模型一半在 harness?

Q3-20Harness 治理进阶Harness模型换代提示词版本化harness 债务减法系统约束

谁在问:头部 AI 公司与平台团队进阶题;用来判断你有没有把 Agent 工程当作可管理的资产

口语化问法

  • Agent 的效果,多少来自模型、多少来自你们的工程?
  • 同样的模型,为什么不同团队做出来的 Agent 差这么多?
  • 新模型出来了,你们那套工程要怎么改?

考察意图

这题是第 3 章的收口题,问的是你怎么看待自己这份工作的价值。面试官在验四层:

  1. 能不能把 harness 说成一个有结构的东西,而不是"提示词加一堆代码"。
  2. 知不知道能力差异的机理——为什么换个 harness 成功率能差一个数量级,而不是只会复述这句话。
  3. 有没有治理意识:harness 是资产,就要有版本、有归属、有评测、有债务偿还,否则它会在下一次模型换代时变成负担。
  4. 会不会做减法。 2026 最重要的 harness 动作是删,不是加。这是第三个问法的落点。

参考答案

图 2 · 60 分与 90 分差在哪:代价、演进、怎么验证

60

60 分答案(及格线)

Harness 指模型之外、决定 Agent 实际能力的那整套工程结构。 拆开大致八块:

  1. 工具集与它们的 schema、描述
  2. 上下文组装(系统提示、状态注入、压缩策略、工具结果裁剪)
  3. 循环控制(终止条件、步数与预算、重试、死循环兜底)
  4. 错误反馈的格式(决定模型能不能自愈)
  5. 权限与人工确认(分级自治)
  6. 记忆与状态管理
  7. 可观测与评测
  8. 运行环境(沙箱、可用命令、文件系统)

为什么说一半在 harness:模型每一步的决策质量,取决于它看到什么(上下文)、能做什么(工具)、失败后得到什么反馈(错误消息)、有几次机会(循环与预算)——这四样全在 harness 里。截至 2026-08 业内比较认可的表述是 LangChain 那句"If you're not the model, you're the harness",同一个模型换一套 harness,任务成功率可以差一个数量级。

Harness 治理就是把这套东西当代码资产管理:版本化、走 review、改动必须跑评测回归。

90

90 分答案(有生产经验的回答)

补三层。

1. 把 harness 分成两类,这是治理的核心。

类别 内容 随模型变强会怎样
模型补丁 手写 CoT 引导、self-critique、格式修补、针对某模型脾气的提示词技巧、拆得很细的子步骤 会消失。模型内化后继续保留反而是负优化(占 token、和内部推理打架)
系统约束 权限、预算、审计、可回滚、外部状态、人在环、可观测 永远不会消失。它们不属于模型,模型再强也接管不了

治理的第一原则是:这两类必须在代码里就分开、并且标注清楚。混在一起写的后果是模型换代时不敢删——分不清哪一行是为了绕开旧模型的缺陷、哪一行是业务底线,最后只能原样搬过去,于是新模型的收益被旧补丁吃掉一半。

2. 因此,2026 的常规动作是"harness 减法"(截至 2026-08)。 每次模型升级,我会做一次减法冲刺:先用同一套评测集在新模型上跑现有 harness 拿基线,然后逐类删补丁(一次只删一类,否则归因不了),看哪些删了不掉分甚至更好。经验上最先能删的是格式修补、显式思考引导、和为弥补旧模型工具调用不稳而写的重试与纠偏。系统约束那一栏一行都不动。

3. harness 债务要能被度量。 债务信号:只有原作者看得懂的 magic prompt;没有任何评测覆盖的分支;上次被验证是在两个模型版本之前;为某个已修复的模型 bug 写的绕行代码。可度量的指标:harness 里无评测覆盖的比例每条补丁的最后验证时间模型换代后未复查的补丁数。这三个数一摆,团队就知道该还多少债了。

4. 归属问题很现实。 最常见的病是提示词散落在几个服务里、工具定义各写各的、没人 own。治理上要做到:提示词与工具定义进代码仓库、走 review、有版本号,并且能关联到评测结果与线上指标(这版提示词对应哪次评测、上线后指标怎么变)。评测集是团队共享资产,不属于某个人。规模大一点的团队值得设一个 harness / 平台层的 owner。

5. 一句可以收口的判断:模型变强让 harness 变薄,但不会让它消失——薄的是补丁,留下的是约束。所以这份工作的长期价值不在于"帮模型想得更清楚",而在于"给系统提供模型给不了的保证"。

追问链

图 1 · 五层追问树:面试官会往哪儿挖
每一层都在分同一刀:哪些是模型补丁,哪些是系统约束

  1. 同模型换 harness 差一个数量级,具体差在哪?

    期望要给能量化的改动:① 错误消息可操作化:报错从异常堆栈改成「参数 dateYYYY-MM-DD,你传的是『上周』」,直接影响自愈率;② 工具集从二十几个收到不到十个、补负向边界,选择准确率回升;③ 裁剪工具结果 + 目标约束搬进结构化状态,长任务后半程不再断崖。都没换模型
    信号举得出改动 + 观察到的指标方向(哪怕是几十条样本的粗糙对比)→ 真调过;只复述「harness 很重要」这句口号 → 是听来的
  2. 新模型上来,harness 怎么处理?

    期望顺序:① 先拿基线:同 harness 同评测集新旧各跑一遍,看成功率、成本、时延,成本反直觉,更强未必贵,必须实测;② 按标注的「模型补丁」逐类删,一次一类单独评测;③ 补丁会反噬:强制「先输出思考过程」和推理模型内部推理打架;④ 系统约束一行不动;⑤ 影子并行、按意图切
    信号给出「先基线、再逐类删、系统约束不动」这个顺序并提到补丁反噬 → 做过换代;答「换个模型名就行」→ 没经历过
  3. harness 债务怎么度量、怎么还?

    期望度量看三个数:无评测覆盖的 harness 比例、每条补丁的最后验证时间、换代后未复查的补丁数;定性信号:有没有「没人敢动」的那段提示词。偿还的最佳时机是模型升级窗口,把减法冲刺固定成流程的一部分。防再生:新增补丁强制写清「解决什么问题、在什么模型上验证过、什么条件下可以删」
    信号提出「新增补丁必须写可删除条件」→ 是治理思维;只答「定期重构一下」→ 没有可操作抓手
  4. harness 归谁 own?团队里怎么协作?

    期望让 harness 像代码一样被管理:提示词与工具定义进仓库、走 review、有版本号,改动关联评测与线上指标。两种病:提示词散落多个服务各改各的(同一能力两处描述,行为不一致);评测集是共享资产,被私藏就谁都能声称自己的改动更好。规模大了设平台层统管工具注册、trace 接入
    信号把评测集列为共享资产、指出「同一能力两处描述」这种真实病症 → 在多人团队做过;只答「大家一起维护」→ 没遇到过协作冲突
  5. 团队很兴奋,说「新模型换上去我们现在的问题都能解决」,你怎么答?

    期望不泼冷水但先量:一两天用现有评测集跑基线 → 先说清三个反直觉:① 能力涨了但行为变了,输出结构与调用时机都变,原补丁从帮忙变添乱 ② 成本方向不定,测单位任务成本别看单价 ③ 有些问题根本不是模型问题:工具描述不清、上下文缺信息 → 切换与减法分开做,同时干归因不了 → 影子并行、按意图灰度、留回滚 → 系统约束不动,顺手还 harness 债
    信号先要基线、把切换与减法分开、预判「有些问题不是模型问题」→ 主导过升级;跟着兴奋全量切换或一味说「先观望」→ 都缺决策方法
这题要的是减法的胆量:分水岭在第 2 层,换代时你能不能按「补丁/约束」分类逐条删,而不是整套原样搬过去再抱怨新模型没提升。

评分要点

  1. 能把 harness 说成有结构的八块,而不是笼统的"工程"
  2. 说得出能力差异的机理(模型看到什么、能做什么、失败后得到什么反馈、有几次机会)
  3. 区分模型补丁与系统约束,并知道两者随模型变强的不同命运
  4. 知道 2026 的常规动作是 harness 减法,且要逐类删以便归因
  5. 提示词与工具定义版本化、走 review、关联评测与线上指标
  6. 能给出 harness 债务的度量方式
  7. 加分:新增补丁必须写明可删除条件
  8. 加分:换代时切换与减法分开做,系统约束一行不动
  9. 加分:能指出"有些问题换模型解决不了"并说清是哪些

常见错误

只会复述"If you're not the model, you're the harness",说不出 harness 由什么组成。
把 harness 等同于提示词工程,漏掉权限、预算、可观测这些系统约束。
认为模型变强之后 harness 就不需要了——分不清补丁与约束。
提示词散落在代码各处,没有版本、没有评测关联,改了不知道影响。
模型换代时把整套 harness 原样搬过去,然后抱怨新模型没提升。
同时换模型又删补丁,掉分之后无法归因。
没有任何债务概念,harness 里堆着几个模型版本之前的绕行代码,没人敢动。

关联学习