Skill 与工作流

Agent Harness(智能体运行框架)

也叫: Coding Agent Harness · Harness

Agent Harness 指的是包裹在模型外面的那层软件——负责组装上下文、执行工具调用、控制权限、把结果喂回给模型——把一个原始模型变成真正能操作代码环境的智能体。

工具执行上下文组装沙箱 / 权限Agent Harness
Harness 包裹在模型外面,每一轮都负责工具执行、上下文组装和权限边界控制。

语言模型本身只做一件事:给它一段文字,它吐出更多文字。一个『编程 Agent』真正能读文件、跑命令、改代码、循环执行直到任务完成,靠的是包裹在模型外面的那层软件——业内通常直接叫它 Harness(这个词目前没有统一的中文译名,圈内一般直接沿用英文)。

Harness 负责的是系统里不属于模型推理的那部分:每次调用前组装要发给模型的上下文(见 context-engineering)、把模型的输出解析成一次具体的工具调用、在真实环境(文件系统、shell、沙箱)里执行这次调用、再把结果喂回去作为下一轮的上下文。同一个模型换一套 Harness,表现可能完全不一样——给了它哪些工具、权限怎么管控、报错怎么反馈给它,都是 Harness 决定的。

这个词在业内用得比较宽松,没有一个统一的官方定义,但实际所指的,就是这层编排代码本身,和模型权重、和某一个具体的工具定义都是分开的概念。

怎么运作

每一轮里,Harness 通常要做:在可用的上下文预算内,组装当前这一步要发给模型的上下文(系统指令、相关文件内容、此前的对话/工具调用历史);把它发给模型,拿到一段文本回复或者一次结构化的工具调用;如果是工具调用,就去执行它——往往是在某种沙箱或权限边界内执行,限制智能体实际能碰到的范围——并拿到执行结果;再把结果追加进历史,作为下一轮的上下文。这个循环会一直重复,直到模型表示任务完成,或者触发了某个限制(步数、时间、花费)。

举个例子

同一个底层模型,换两套不同的 Harness 去跑同一个编程任务,结果可能差别很大——一套给了模型范围清晰的工具、报错信息明确、执行环境有沙箱隔离的 Harness,通常会比一套把原始报错不加处理直接甩回去、又不做任何隔离就让智能体随便跑命令的 Harness,表现稳定得多。

和相关概念的区别

Harness 有时候会和 Agent-Computer Interface(ACI)被混淆。ACI 更具体地指的是给模型的工具/接口本身怎么设计——比如一条命令的输出该怎么格式化、一个工具该暴露哪些参数;Harness 则是执行这些接口、管理上下文、在它们外面加权限控制的那层更大的运行时。一套设计得好的 ACI 是做出一个好 Harness 的其中一个输入,不是全部。

常见误解

常被以为: Harness 就是一个提示词模板。
实际上: Harness 包含真实的运行时行为——执行命令、管理沙箱、处理报错——不只是发给模型的那段文字;提示词/上下文的组装只是其中一部分。
常被以为: 只要底层模型一样,不同 Agent 的表现也会一样。
实际上: Harness——包括给了哪些工具、权限和报错怎么处理、长会话里上下文怎么管理——对实际表现的影响很大,和里面装的是哪个模型是两回事。

常见问题

Agent Harness 是什么意思?
它是包裹在语言模型外面的软件层,负责执行工具调用、组装上下文、管控权限、把结果循环喂回给模型——把模型的原始输出变成一个真正能行动的智能体。
Harness 和模型是一回事吗?
不是。模型负责推理,产出文字或工具调用;Harness 是另一套代码,负责执行这些调用、管理运行环境、决定模型能看到什么上下文。
模型已经很强了,为什么 Harness 还重要?
因为同一个模型换一套 Harness 表现可能完全不同——给了哪些工具、报错怎么反馈、长任务里上下文怎么管理,这些都直接影响实际可靠性,不只取决于模型本身的能力。

最近核实: 2026-08-28

相关术语