最近在学 AI 相关内容,越看越乱:刚觉得搞懂了 AI agent,又冒出个 harness;还没记住 harness,agent skill、LLM 又搅在一起。几个名词来回绕,头都大了。

我查了不少资料,自己梳理了一套理解思路,整理出来分享给大家。本文会用操作系统外包员工两个类比,一次性把这几个概念讲清楚。

前置提示:Harness 属于工程圈俗称,并不是大模型领域官方标准术语。不同团队对 Harness 的范围定义略有差别;本文采用 Agent 开发领域最通用的理解。


先放结论:四个角色,一句话分清

概念一句话理解类比
LLM只会思考和输出文字的大脑CPU / 外包员工的头脑
Harness让大脑能动手、循环执行、调用工具的运行机制操作系统 + 手脚 + 任务循环
Agent用户直接交互的完整助手,带有身份与目标应用程序 / 外包员工本人
Skill外挂能力包、操作SOP、经验模板App插件 / 公司内部操作手册

核心关系:

Agent 是对外呈现的完整助手,内部以 Harness 作为核心运行时;
Harness 调用 LLM 作为大脑,加载 Skill 能力包,统一管理工具、记忆,承载任务目标。

Agent(对外整体)
└── Harness(内部骨架/运行时)
    ├── LLM:负责思考推理
    ├── Skill:可加载的任务SOP、能力模板
    ├── 工具:真实执行动作的接口
    ├── 记忆/上下文:历史对话与任务状态
    └── 目标:用户下达的任务

Harness 到底是什么?用操作系统和外包员工来理解

操作系统这个比方

  • LLM = CPU:擅长做推理计算,很聪明,但它本身不能打开文件、联网、发送消息。
  • Harness = 操作系统 + 驱动 + 运行时:管理上下文状态、调用外部工具、驱动任务循环、处理输入输出、捕获异常。
  • Agent = 应用程序:比如“自动订票助手”,对外有明确目标,能交付完整任务结果。
  • Skill = 应用程序的插件/技能包:比如订票插件、天气查询插件,封装好一类任务的执行流程。

用户看到的是应用程序,也就是 Agent。CPU 和操作系统都藏在内部。操作系统既是 CPU 的能力延伸,又是应用程序的底层基础,但它既不等于 CPU,也不等于应用程序。
Harness 就是 LLM 的操作系统,也是 Agent 的骨架。

外包员工小美

假设招了一名外包员工叫小美(Agent)。

  • LLM = 小美的头脑:负责思考、判断、构思方案。但她被关在没有电脑、手机的房间里,只能空想,无法落地操作。
  • Harness = 小美的神经系统 + 手脚 + 工作循环:把脑子里的想法转化成实际动作,拿到外部结果后再反馈给大脑,循环往复直到任务完成。同时还会校验输出、捕获错误,防止跑偏。
  • Skill = 公司给她的内部经验手册:比如《高铁订票SOP》,帮她少走弯路,更快找到解决方案。
  • Agent = 小美本人:用户直接对接她、下发任务,最终由她交付结果。

四个角色怎么配合?看一遍订票流程

下面用「帮我订明天去广州的高铁」这个任务,走一遍完整流程。

记忆/上下文 工具/环境 Skill 经验手册 LLM 大脑 Harness 运行时 Agent 整体(小美) 用户 记忆/上下文 工具/环境 Skill 经验手册 LLM 大脑 Harness 运行时 Agent 整体(小美) 用户 ① 提出目标:帮我订明天去广州的高铁 ② 把目标交给 Harness ③ 读取历史记忆、任务上下文 ③ 返回历史/记忆 ④ 需要订票技能,加载 Skill ④ 返回订票步骤、模板 ⑤ 组装消息:目标 + 工具说明 + 历史 + 技能描述 ⑥ LLM输出决策:调用查票工具 ⑦ 校验LLM输出格式,捕获异常 ⑧ 解析指令并执行:查询明天广州高铁 ⑨ 返回结果:明天高铁没票 ⑩ 将本次执行结果写入记忆 ⑪ 把工具返回结果+上下文再次发给LLM ⑫ LLM给出新方案:查询后天车票,或更换交通方式 ⑬ 继续调用工具执行 ⑭ 返回新结果 ⑮ 结果再次喂回LLM,循环直到任务完成 ⑯ LLM判定任务完成,生成最终回复 ⑰ 返回最终结果 ⑱ 回复用户:已帮你完成订票

关键点:

  • LLM 只负责思考、输出决策,在⑥、⑫、⑯这些节点参与;
  • Harness 包揽其余所有脏活累活:拼接上下文、调用LLM、校验输出、解析指令、调用工具、读写记忆、循环调度、异常捕获;
  • Skill 在第④步加载,提供标准化步骤与模板,减少试错;
  • Agent 是对外的完整载体,用户只和 Agent 交互。

为什么非得有 Harness?

原生 LLM 本身有不少局限,需要 Harness 补齐能力:

  1. 它只会输出文字,无法直接操作外部世界
    需要 Harness 帮它调用工具、读取文件、执行代码、访问接口。

  2. 复杂任务需要多步迭代,LLM 不会自主循环
    需要 Harness 维持主循环:思考一步 → 执行一步 → 观察结果 → 继续思考,直到任务结束。

  3. LLM 容易遗忘上下文、输出乱码、产生幻觉
    需要 Harness 管理记忆、校验输出格式、失败重试,约束模型行为。

  4. LLM 有可能产生危险指令
    需要 Harness 做权限管控、沙箱隔离、操作日志记录,降低风险。

  5. 模型评测需要稳定、可复现的环境
    Harness 可以充当自动化考场,标准化输入输出,完成批量评测。

一句话总结:没有 Harness,LLM 只是一个“会说话的盒子”;有了 Harness,它才能感知环境、动手执行、迭代试错,同时被安全管控、自动化评测。


Harness 平时长什么样?

Harness 的本质一般是代码,但它不是单一脚本,而是代码 + 配置 + 运行时环境组合层。常见形态:

  1. 一段程序代码
    比如 Python、TypeScript 编写的主循环。最小版本的 Harness,就是一个 while 循环:调用 LLM → 判断是否调用工具 → 执行工具 → 将结果回传 → 再次调用 LLM。

  2. 框架或库
    像 LangChain、LangGraph、LlamaIndex、AutoGen、OpenHands 中的 agent executor。开发者编写业务逻辑,框架提供现成的 Harness 调度机制。

  3. CLI 工具或应用
    例如 Claude Code、Codex CLI、Aider。产品面向用户,但内部自带 agent harness:读取项目文件、执行终端命令、修改代码、读取报错信息,持续循环调试。

  4. 服务端/中间件
    企业场景下,Harness 会封装成独立服务,统一管理模型调用、权限、日志、工具接入。前端业务系统通过这个服务来使用AI能力。

  5. 评测脚本/测试框架
    典型例子 lm-evaluation-harness,Python 包形式,自动批量出题、收集模型回答、自动打分。

  6. 安全沙箱/容器
    安全方向的 Harness,不一定包含业务逻辑,而是 Docker、虚拟机、网络策略、权限限制。它不干预AI思考内容,只限制AI能够访问和操作的资源。

总结:Harness 常以框架、运行时、胶水层、调度器的代码形态存在,可以打包成库、CLI、后端服务或者测试脚本。


几个容易混淆的点

Harness 等于 Agent 吗?

看完前面介绍,很多人会疑惑:Harness 好像干了大部分活,那它就是 Agent?
干活的内部引擎 ≠ 对外完整实体。

  • Agent:用户感知到的整体,有身份、任务目标、交互界面。
  • Harness:Agent 内部的操作系统、骨架、胶水调度代码。
  • LLM:Agent 内部的思考大脑。

同一个 Harness,可以支撑多种 Agent:订票Agent、编程Agent、客服Agent。
Harness 是引擎,Agent 是整辆车。

Skill 等于 Harness 吗?

继续用外包小美举例:公司给小美一本《高铁订票SOP》,这就是 Skill。Skill 本身不会运行任务循环,也不能主动调用 LLM;但它可以引导小美少走弯路,更快找到解决办法。

没有 SOP,小美可能挨个试航班、大巴、高铁;加载 SOP 之后,她直接按「优先查高铁 → 对比时间 → 选座 → 支付」的流程执行。Skill 相当于经验手册,用来加速任务求解。

但是真正执行步骤、循环调用模型的主体,依旧是 Harness。

  • Harness = 运行时 / 引擎 / 骨架:负责循环调度、调用LLM、调用工具、维护全局状态。
  • Skill = 能力包 / 操作手册 / 模板:定义这类任务该怎么做,附带脚本、提示词模板、资源。

一句话区分:Harness 管“怎么跑”,Skill 管“会什么”。
Skill 可以被 Harness 加载执行,但 Skill 自身没有主循环,不会主动调用 LLM,也不管理全局任务状态。


一张图收尾:四者关系全景

Agent 内部

① 提交任务目标

② 将任务交给

③ 根据任务加载

④ 返回任务步骤与模板

⑤ 组装上下文,下发请求

⑥ 返回决策:调用查票工具

⑫ 循环执行,直到任务完成

⑧ 执行工具调用

⑨ 返回结果:暂无车票

⑩ 写入记忆,再次组装消息发给

⑪ 给出新方案:查询后天车票

⑬ 整理最终结果回传给

⑭ 回复最终结果给

用户

Agent 整体助手

Harness 运行时/引擎

Skill 能力包

LLM 大脑

工具/环境

记忆/上下文


最后总结

  • LLM:擅长思考、输出文字,但没有手脚,无法直接操作外部世界。
  • Harness:给 LLM 装上手脚、记忆、任务循环与安全规则,是 Agent 的底层运行骨架。
  • Skill:为 Agent 提供标准化经验、SOP,减少模型试错。
  • Agent:LLM + Harness + Skill + 工具 + 记忆 + 目标,能够独立完成任务的完整助手。

Harness 既不是 LLM,也不等于 Agent。
它是把单纯会聊天的 LLM,变成能自主干活的 Agent 的中间核心机制。
就像操作系统管理电脑各类资源,但操作系统本身并不等于你打开的应用程序。

记忆口诀:LLM负责想,Harness负责跑;Skill是技能手册,Agent是交付给用户的完整助手。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐