Harness Engineering
☘️

Harness Engineering

Tags
Date
Created
Apr 13, 2026 09:40 AM
Blocking
Blocked by
  • Harness 是什么?(模型的方向盘+刹车)
    • 核心思想:Agent 的可靠性瓶颈不在模型,而是在模型的系统环境。模型是推理引擎,Agent 是整辆车,引擎再强没有方向盘和刹车也无法驾驶
    • 例如 每当让Agent 犯了一个错误,则通过 上下文管理、应编码约束等手段让Agent 永远不犯同样的错
      • Agent = model + harness
    • 与 context engineering 的区别
      • context engineering 是给 Agent 看什么
        • 管理 Agent 的上下文窗口,管理 Agent 看什么信息 不看什么信息
      • harness engineering 是系统预防了什么、测量了什么、修复了什么
        • 范围更广,包含架构约束、自验证循环、熵治理、系统的可演进性
         
  • Harness 有什么用?
    • LangChain Coding Agent 通过仅修改 Harness 在 terminal Bench 排行中从 top 30 冲到 top 5
      • 没有更换底层模型,只是修改了 系统提示、工具配置、中间件 hook
      • 即使在模型不变的前提下,光靠优化模型的系统环境也能带来很高的提升
 
  • Harness 包含什么?
      1. 上下文架构
          • Open AI 和 Anthropic 指出给Agent太多信息反而有害,Agent 的性能在上下文利用率超过大约百分之四十后开始下降
          • 关键在于 不是给 Agent 一本百科全书,而是给 Agent 一张地图,让它按需查找( 与 skills 渐进式披露理念相同)
          • Open AI 的做法是将 AGENTS.MD 文件控制在大约 100 行 只充当目录 指向更深层的文档,Agent 需要什么信息让它自己去查,而不是一开始全部塞进去
      1. 架构约束 - 约束解空间
          • 大多数情况下会通过 Prompt 约束 Agent 的行为,例如写 “请遵守以下规则” 但 prompt 中的规则本质上是 “建议” 模型可能会遵守也可能不会
          • 应该用确定性的工具来进行约束,例如自定义的 linter(语法检查器) 和 结构化测试,规则一旦编码就在所有Agent会话中生效
          • Vercel 一开始给 Agent 提供大量的工具,什么都能用 结果 Agent 反而变得困惑做冗余调用,后来它们移除 80% 的工具反而更快更可靠
      1. 自验证循环
          • Agent 常见的失败模式
            • 陷入死循环
              • 对同一个文件反复编辑十几次始终没有解决问题
            • 跳过验证直接交付
              • 将一个看似合理的结果直接输出
          • LangChain 的方案是使用中间件 hook 来解决
            • 中间件跟踪每个文件的编辑次数超过阈值就提醒Agent重新审视方案
            • Agent 在准备完成时拦截它执行一轮完整验证
          • 推理三明治(根据模型来调整,例如:OpenAI 官方推荐 GPT5.4 建议大多数任务使用 high 即可,xhigh容易让模型思考过度反而导致性能下降成本上升)
            • 规划阶段用 max or xhigh 推理强度充分理解问题
            • 执行阶段使用 high 推理保证速度
            • 验证阶段再拉回 max or xhigh 推理强度捕获错误
      1. 上下文隔离
          • 当任务复杂到需要多个 Agent 协作时关键不是按角色分工
            • 而是将 子 agent 当作上下文的防火墙
            • 父 agent 只看给 子agent 的指令和 子 agent返回的最终结果,中间所有的工具调用和中间产物都被隔离,保持每个 agent 的上下文不被冗余的信息污染
      1. 熵治理
          • Agent 持续运行的时间越长系统的混乱度越高,可能出现 文档过时、架构漂移、知识库和代码不一致
          • Open AI 的方案是引入一个后台运行的文档梳理 Agent 定期扫描过时的文档并自动提交修复,形成自维护的闭环
      1. 可拆卸性
          • 随着模型能力的提升, Harness 组件可能会逐渐变成模型性能的瓶颈(目前最强大的模型极大可能将会在六个月内被超越)
            • 奥特曼名言:你今天所使用的最强模型,将是你余生中使用过最糟糕的模型
            • 今年还需要 任务拆分、验证 才能完成的复杂任务,一年后强大的模型很可能只需要一个 prompt 就能完成
            • 因此 Harness 必须是模块化的、可拆卸的,参考 Langchain 的方案,每个中间件独立添加特定能力,不需要的时候直接移除,不影响其他部分
       
  • Harness 的投入是以复利形式生效的,加一条 linter 规则之后所有会话中这个错误都会被预防,加一个 hook 之后所有任务的交付都会经过这个 hook
  • 投入越早,收益越大,但也不要过度工程化,只在 Agent 确实犯过错的时候再投入 Harness