Harness 这个英文单词,本义是"马具、鞍具"——就是套在马身上那一整套缰绳、笼头、鞍子,让骑手能驾驭一匹马的装备。放到 AI 语境里,意思几乎一模一样:给 AI 模型这匹"野马"套上一整套装备,让它变得可控、可用、能干活。简单来说,Agent Harness 指的是:包在大模型外面、让它真正能"干活"的那一整套系统。它不是模型本身,而是模型以外的一切。
不少文章和框架现在都用同一个公式来定义:Agent = 模型(Model)+ Harness
Model:就是 LLM(大语言模型,比如 ChatGPT、Claude 背后的那个大脑),负责思考
Harness:围绕这个大脑搭的一切——工具、连接、环境、流程、管控,负责干活
换句话说:如果你只是调用一个 API让模型吐字,那只是用了个 LLM 服务。当你给它加上文件系统、浏览器、代码执行、记忆、任务编排、监控重试......,整套东西组合在一起,才叫一个真正能"干活"的 Agent。这一整套模型以外的部分,就叫 Agent Harness。
既然 Harness = 模型以外的一切,那它到底包含哪些东西?结合OpenAI、Anthropic、Salesforce的公开工程文章,一个成熟harness 大致会有这几层:
(1) Agent loop
就是“用户输入 → 模型思考 → 请求工具 → 执行工具 → 观察结果 → 再思考 → 输出”的循环。OpenAI把这称作Codex的核心逻辑。
(2) Tool layer
给模型接上shell、代码编辑、浏览器、数据库、API、文件系统等能力,并校验工具调用是否合法、参数是否正确。没有这层,模型只能聊天。
(3) Memory / state
保存中间状态、任务进度、摘要、待办、检查点。这是解决长任务“做着做着就忘了”的关键。Anthropic讲得很清楚:跨context window工作的agent必须弥补“新会话没有前情记忆”的问题。
(4) Safety / permissions
限制模型能访问什么、能改什么、什么动作必须审批、怎么过滤输入输出。Salesforce直接把harness描述成model的security wrapper。
(5) Lifecycle / recovery
任务崩了能不能续跑,重启后能不能接着干,长任务能不能跨小时甚至跨天继续。Salesforce把这叫lifecycle and state management。
(6) Client/runtime integration
尤其在产品化场景里,harness还要对接CLI、IDE、Web、后台容器。OpenAI的Codex App Server就是在做这件事:把harness以稳定协议暴露给不同客户端。
大家要区分Harness与其他四个概念的区别,Harness和Prompt、Workflow、Agent、Framework的关系
(1) 它不是prompt
Prompt只是给模型的文字说明。
Harness则负责:什么时候给什么prompt、何时压缩上下文、何时调用工具、失败后怎么恢复、哪些动作需要审批。
(2) 它不等于agent
Aent 通常指“会规划、会调用工具、会迭代执行”的智能体行为。
Harness则是agent背后的基础设施。OpenAI把agent loop视为harness的核心逻辑之一,但完整harness还包括更多supporting features和runtime结构。
(3) 它不等于framework
框架更像“开发工具箱”;
Harness 更像“真正跑在线上的运行环境”。
Salesforce 明确区分了:framework提供构建agent的库,而harness是现实世界里约束、管理和运行agent的实际runtime system。
(4) 它也不只是workflow
Workflow 是流程;
Harness不仅管流程,还管 状态、记忆、权限、恢复、验证、日志、审批、客户端协议。