Agent Harness(智能体运行框架)
也叫: Coding Agent Harness · Harness
Agent Harness 指的是包裹在模型外面的那层软件——负责组装上下文、执行工具调用、控制权限、把结果喂回给模型——把一个原始模型变成真正能操作代码环境的智能体。
语言模型本身只做一件事:给它一段文字,它吐出更多文字。一个『编程 Agent』真正能读文件、跑命令、改代码、循环执行直到任务完成,靠的是包裹在模型外面的那层软件——业内通常直接叫它 Harness(这个词目前没有统一的中文译名,圈内一般直接沿用英文)。
Harness 负责的是系统里不属于模型推理的那部分:每次调用前组装要发给模型的上下文(见 context-engineering)、把模型的输出解析成一次具体的工具调用、在真实环境(文件系统、shell、沙箱)里执行这次调用、再把结果喂回去作为下一轮的上下文。同一个模型换一套 Harness,表现可能完全不一样——给了它哪些工具、权限怎么管控、报错怎么反馈给它,都是 Harness 决定的。
这个词在业内用得比较宽松,没有一个统一的官方定义,但实际所指的,就是这层编排代码本身,和模型权重、和某一个具体的工具定义都是分开的概念。
怎么运作
每一轮里,Harness 通常要做:在可用的上下文预算内,组装当前这一步要发给模型的上下文(系统指令、相关文件内容、此前的对话/工具调用历史);把它发给模型,拿到一段文本回复或者一次结构化的工具调用;如果是工具调用,就去执行它——往往是在某种沙箱或权限边界内执行,限制智能体实际能碰到的范围——并拿到执行结果;再把结果追加进历史,作为下一轮的上下文。这个循环会一直重复,直到模型表示任务完成,或者触发了某个限制(步数、时间、花费)。
举个例子
同一个底层模型,换两套不同的 Harness 去跑同一个编程任务,结果可能差别很大——一套给了模型范围清晰的工具、报错信息明确、执行环境有沙箱隔离的 Harness,通常会比一套把原始报错不加处理直接甩回去、又不做任何隔离就让智能体随便跑命令的 Harness,表现稳定得多。
和相关概念的区别
Harness 有时候会和 Agent-Computer Interface(ACI)被混淆。ACI 更具体地指的是给模型的工具/接口本身怎么设计——比如一条命令的输出该怎么格式化、一个工具该暴露哪些参数;Harness 则是执行这些接口、管理上下文、在它们外面加权限控制的那层更大的运行时。一套设计得好的 ACI 是做出一个好 Harness 的其中一个输入,不是全部。
常见误解
常见问题
Agent Harness 是什么意思?
Harness 和模型是一回事吗?
模型已经很强了,为什么 Harness 还重要?
最近核实: 2026-08-28