概念
Harness 是围绕大语言模型(LLM)或智能体(Agent)构建的,集运行、治理与控制系统为一体,使 Agent 能够长期、稳定、安全运行的系统基础设施。成为一个可靠的工程应用
形象点来说,它基于 LLM/Agent 实现了一个操作系统,LLM/Agent 在其中发挥处理核心(即 CPU 的作用)
驾驭工程
在传统软件中,我们通过硬编码逻辑来确保 1+1 始终等于 2。但在 AI 系统中,LLM 更像是一个“概率引擎”。Harness 的本质是为这个引擎构建一套确定性的运行外壳。
它不只是一个 Wrapper,而是一个智能体操作系统(Agent OS)。它将 LLM 视为 CPU,而将提示词、上下文和工具视为寄存器与内存。驾驭工程的核心在于:通过外部逻辑约束,抵消模型内部的熵增。
Skill:Harness 的原子执行单元
在 Harness 的语境下,Skill 规定了 Harness 将如何执行,应该遵循的步骤和原则
技能边界
传统 Agent 往往给模型一个工具列表,模型经常在不该用工具的时候乱用,改用的时候不用。Harness 通过 Skill 划分了明确的执行边界:
- 状态机约束:Agent 当前处于“分析阶段”,则只有“搜索”和“提取”两个 Skill 可被激活,屏蔽所有无关干扰,确保工具只在正确的时候被访问、使用。
- 确定性契约:每个 Skill 必须绑定一个 JSON Schema 或 Protobuf 定义。这意味着模型不仅要决定调用哪个 Skill,还必须填对所有的参数。Harness 的控制层会在 Skill 执行前进行强制静态检查。
技能的生命周期与防御性编程
Harness 为每一个 Skill 注入了典型的软件工程防御机制:
- Pre-processing (预处理):对模型生成的参数进行脱敏、转换或预校验。
- Execution (执行):在受限环境(如 WASM 或 Docker 沙盒)中运行具体逻辑。
- Post-verification (后验):这是 Skill 的核心。执行后的结果不会直接返回给模型,而是先经过一个 Verifier(验证器)。
- 脚本验证:检查返回的 JSON 是否缺少字段。
- 模型验证:调用轻量级模型审计返回内容是否符合预期意图。
- Self-Healing (自愈):如果验证失败,Skill 会触发内部的回退机制。例如:模型生成的代码运行报错,Skill 捕获异常并将其作为反馈再次输入给模型,整个过程在内部闭环完成。
技能资产化:从 Prompt 到 Component
Skill 让 Agent 的能力从“文字描述”变成了“可复用的资产”。离职的同事被蒸馏成了温暖的 Skills
- 可测试性:开发者可以脱离 Agent,单独对某个 Skill 进行单元测试。
- 性能预判:Harness 可以统计每个 Skill 的平均耗时、Token 消耗以及成功率,从而实现基于成本或性能的动态路由。
与传统 Agent 的区别
管理方式
传统 Agent 通常围绕提示词进行管理,属于提示词工程;仅以 ChatBot 的方式提供服务,聚焦于单次请求,靠提示词进行指挥,依赖模型自主发挥,以模型为中心(Model-Centric),然而依赖于在 System Prompt 中写长篇大论的“规则”,这在长流程中极其脆弱。
而 Harness Agent 回到系统管理上,属于 驾驭工程(Harness/Execution) ;通常采用大量软件工程方法,构建长流程、高可靠的实际应用,通过驾驭工程构建约束机制、反馈回路和工具管理,以系统为中心(System-Centric),将管理权重新交回给用户

Harness 引入了 状态机管理(或有向无环图)的概念。Agent 的每一步操作不再是盲目的“下一步是什么”,而是在预定义的技能边界内移动。
-
约束机制: 通过 JSON Schema 或协议强制约束输出格式,不符合定义的输出直接在执行层(Harness 层)拦截并触发重试,而不是交给业务层去处理报错。
相信写过 Agent 应用的小伙伴们都处理过那该死的
```json -
反馈回路: 引入了 Plan-Execute-Verify 的闭环。每一项 Skill 的输出都会经过一个 Verify 节点,验证逻辑可以是确定性的脚本,也可以是另一个小型模型的审计。
可靠性
传统 Agent 的容错能力差,常规的链式、图式流程通常有死循环等风险,容错能力低,在上下文管理上比较困难,幻觉问题严重。
Harness Agent 使用基于 Skill 的方式来管理控制流,确保 AI 的操作闭环;且通过沙箱等办法,为 AI 提供了受限的执行环境。

此外,Harness 提供了一种自动学习的能力,使 Agent 可以从过往的失败 Case 中不断学习,实现越用越聪明的效果。比如上图中,OpenClaw 内置了一种每日通过日志提升 Agent 的方式。
工具调用方式
传统 Agent 的工具调用不具有可控性,尤其在权限管理上,通常需要工具的开发者自行控制(或者说完全没有控制)
在 Harness 上,工具仍然是核心生产力,但权限交回给系统统一管理,结构化驱动;并支持 Hook 方式触发

基础 Chatbot 能力
传统 Agent 不用说,在 Harness 上,这仍然是主力形态,配合系统化管理,用户可以方便的在各种平台上配置机器人来使用它。

也可以直接使用通用的 OpenAI 协议接口来调用它。

Harness 的独到之处
上下文管理
大模型的上下文窗口是昂贵且有限的内存资源。Harness 具备上下文窗口的管理能力,它清除窗口还有多少,何时应该压缩窗口、怎么压缩窗口,精准控制每次请求的 Token 消耗与信息密度。

沙箱
运行时隔离是 Harness 的一个关键特征。
-
执行环境:可以限制所有的代码生成和执行必须在独立的、带配额限制的 Docker 或 WASM 沙箱中运行。
-
自愈能力:Harness 监控 Agent 的执行耗时和 Token 消耗,一旦发现逻辑陷入死循环或 Token 暴涨,Harness 会强制熔断并触发 Fallback 策略(例如切换到更高级的模型或回滚状态)。
数据与记忆
传统 Agent 通常不提供数据记忆,或者依赖工具(如 RAG、知识库等纯外挂方案)提供持久化解决方案;关闭上下文窗口意味着所有的信息都会丢失。
在 Harness 将对话中产生的数据进行划分、并进行分层结构化存储,在使用过程中的逐渐完善,将使它更有“人”味,比如下图展示了在 OpenClaw 中的不同分级记忆存储文件

群体智能
多 Agent 角色严格隔离:Harness 允许用户为 Agent 构建完全隔离的“人格”,每个 Agent 有完全隔离的工具集、权限集、记忆等;
可控的调度方式:多个 Agent 之间允许互相识别,通过 Harness 的隔离与调度,这允许我们构建一个微型的群体智能引擎,让多个具备不同“人格文件”的 Agent 在沙箱内对某个事件进行辩论和推演,这在舆论公关等场景可能发挥意想不到的作用。
系统工程
最后,Harness 补足了传统 Agent 最大的短板——黑盒运行。
每一次大模型的思考过程、工具调用的输入输出、耗时分析、Token 分析,都会被 Harness 结构化记录,用户真正在管理 LLM/Agent 而不只是使用它们。
MCP 消失了吗
在升级为 Harness 的过程中,MCP 作为工具协议,不仅没有消失,反而成为了 Harness “插件化”生态的核心标准。
举个栗子: 操作系统大升级时,原本需要第三方驱动的功能(如打印机、文件读取)被系统级支持了。但对于那些特定、垂直的硬件或服务,系统仍然保留标准接口(如 USB/PCI-E),让第三方能以标准化的方式接入。

从“工具调用”到“资源治理”
MCP 作为 Agent 能力的解耦方案,在 Harness 中完成了从“盲目调用”到“可控治理”的转变:
- 动态发现与热插拔:无需修改 Harness 核心逻辑。通过配置 MCP Server 地址,Harness 可以在运行时动态发现工具元数据。这为 Agent 提供了近乎无限的扩展能力。
- 权限沙盒化:Harness 充当了 MCP 的 Host。所有的资源请求和提示词模版不再直连 LLM,而是在 Harness 层进行安全审计。例如,一个 MCP 工具请求读取
/etc/passwd,Harness 可以在协议层直接静默拦截,而模型甚至感知不到异常。
与 Skill 的协同
在 Harness 中,MCP 是能力的供应方,而 Skill 是逻辑的封装方。
- MCP 提供原子能力:如“搜索文档”、“查询数据库”。
- Skill 定义调用边界:Harness 会将一个或多个 MCP 工具调用封装在一个特定的 Skill 节点中,为其增加 重试策略、输出校验 和 结果验证。
- 逻辑闭环:当 MCP 返回数据异常时,由 Skill 层决定是触发内部重试,还是切换备用 MCP 节点,而不是直接抛给模型让其产生幻觉。
从“提示词工程”到“驾驭工程”:为什么你需要一个 Agent Harness?
https://mori.plus/archives/what-is-harness-agent
Comments