ARTICLE · 软件编程
换一套 Harness,比换两代模型还管用
一语总结本文系统性地阐述了 Agent Harness(模型外工程层)的设计架构,主张模型决定上限而 Harness 决定实际产出,详细解析了 Agentic Loop、工具系统、记忆与上下文管理及护栏四大子系统的构建原则与工程实践。
文章将 Agent Harness 比作「马具」,定义为模型之外的工程代码层,负责上下文组装、工具执行、错误回喂和任务接续。作者指出当前 Agent 的瓶颈已从模型能力转移到工程组织能力,同一个模型在不同 Harness 下的完成率差异显著。文章首先拆解了基于 ReAct 模式的 Agentic Loop 核心循环及其生产级边界处理(如轮次上限、原地打转检测、错误回喂等);随后详细分析了四大子系统:Tool 系统强调 Schema 与实现的解耦及描述质量;Memory & Context 系统探讨了优先级装箱模型、动态压缩策略以及 Context、Session 与 Memory 的本质区别;最后通过代码骨架展示了如何构建一个模型无关的最小化 Harness,强调工程实践中「先跑通循环,再补基础设施」的递进原则。
- Harness 是决定 Agent 实际表现的核心,其价值往往超过模型迭代
模型决定系统的能力上限,而 Harness(包括步数上限、工具暴露方式、上下文管理等)决定了实际能拿到的分数。同一个模型在不同 Harness 下完成率可差出十几到二十个百分点。
- Agentic Loop 的本质是「思考 $\rightarrow$ 执行 $\rightarrow$ 观察」的闭环
一个生产级的循环必须包含轮次上限以防止 Token 浪费、原地打转检测以识别死循环、错误信息回喂以引导模型修正策略,以及对大输出的截断或摘要处理。
- Tool 系统应实现 Schema 与具体实现的严格解耦
模型仅可见 JSON Schema(名称、描述、参数),而由 Harness 负责具体执行。这种分离允许在不改变模型认知的情况下修改实现、增加权限检查或通过 MCP 协议实现工具复用。
- Context 工程是 Harness 中杠杆最高的部分,需采用优先级装箱管理
由于模型仅能基于当前收到的内容推理,必须建立优先级系统(如 System Prompt 最高,旧对话最低),在空间紧张时按优先级截断或压缩,并为模型回复预留足够的 Token 空间。
换一套 Harness,比换两代模型还管用
文章将 Agent Harness 比作「马具」,定义为模型之外的工程代码层,负责上下文组装、工具执行、错误回喂和任务接续。作者指出当前 Agent 的瓶颈已从模型能力转移到工程组织能力,同一个模型在不同 Harness 下的完成率差异显著。文章首先拆解了基于 ReAct 模式的 Agentic Loop 核心循环及其生产级边界处理(如轮次上限、原地打转检测、错误回喂等);随后详细分析了四大子系统:Tool 系统强调 Schema 与实现的解耦及描述质量;Memory & Context 系统探讨了优先级装箱模型、动态压缩策略以及 Context、Session 与 Memory 的本质区别;最后通过代码骨架展示了如何构建一个模型无关的最小化 Harness,强调工程实践中「先跑通循环,再补基础设施」的递进原则。
腾讯云开发者把 Agent Harness 讲透了:模型定上限,工程层定实际产出。文章拆开 Agentic Loop、工具 Schema、上下文装箱与护栏,还给出可跑的最小骨架。适合正在把 Demo Agent 推上生产的工程与架构同学。
文章金句
"模型决定这套系统的上限,Harness 决定你实际能拿到多少。
"先怀疑管道,再怀疑模型。
"模型不知道你没告诉它的事。
"把错误当成给模型的一条信息