一句话定义
Agent Harness(运行时)是模型之外的那一整套系统:循环控制、工具注册与执行、上下文组装与压缩、权限校验、状态持久化、错误重试、日志与可观测性。
如果说模型是引擎,Harness 就是底盘、传动和刹车。模型决定上限,Harness 决定下限。
为什么重要
同一个模型,放在不同的 Harness 里,表现可以差出数倍。
这是很多团队踩过的坑:花大量精力比较模型,结果发现真正的瓶颈在自己的运行时——上下文没有压缩、工具返回原始数据、错误没有重试、没有步数上限。
更要紧的是,Harness 是能力的沉淀位置。 模型会换代,但你在 Harness 里积累的工具、约束、评估集和失败经验会一直有用。
主要职责
- 循环控制:步数上限、超时、成本预算、终止条件。
- 工具管理:注册、发现、参数校验、执行隔离。
- 上下文管理:组装、压缩、排序、截断。这是最容易做砸也最值得投入的部分。
- 权限与安全:哪些操作需要确认、哪些目录可写、如何隔离不可信内容。
- 状态与持久化:任务中断后能恢复,长任务能跨会话。
- 可观测性:完整轨迹、token 消耗、每步耗时、失败原因。
- 评估接口:能对固定任务集做回归测试。
上下文管理的具体做法
- 滑动窗口 + 摘要:保留最近 N 轮原文,更早的压缩成结论。
- 外部化:把大块中间结果写到文件,上下文里只留路径和摘要。
- 分层提示:稳定的规则放系统提示,易变的观测放消息尾部。
- 明确标记:工具返回的内容要标注为「数据」,不能与指令混在一起。
安全设计的三个原则
- 最小权限:Agent 只应拥有完成任务所需的最小权限,而不是使用者的全部权限。
- 人类在环:不可逆操作(付款、删除、公开发布)必须确认。
- 输入不可信:来自网页、文件、第三方服务的内容一律视为数据,永远不当作指令执行。这是防御提示注入的核心。
常见误解
- 「Harness 就是一层胶水代码」:它恰恰是 Agent 系统的核心竞争力所在。
- 「换个更强的模型就能解决问题」:如果失败原因是上下文里塞了错误信息,换模型只会更快地得出错误结论。
- 「自主性来自模型」:自主性的边界是由 Harness 划定的——放多少权、在哪一步停下,都是工程决策。