Agent = Model + Harness:模型决定上限Harness 决定下限

简介: Claude Code、Cursor等并非聊天界面,而是AI编码的“操作系统”——Harness。它决定模型能否稳定执行规则、调用工具、管理上下文与权限。模型定上限,Harness定下限。差异常源于Harness配置,而非模型本身。

Claude Code 和 Cursor 并不是用来跟 AI 对话的界面。同一个项目上跑AI 编码助手:Claude Code、Trae 和 Qwen,你就会发现同一个任务,换一个工具,结果就不一样。

或者是代码看着没问题,但是违反了一条以为已经设好的约束,或者产生了结构的差异。这不是模型问题,也不是文档问题,而是一个典型的 Harness 问题。

  • 编码 Agent 的 Harness 是模型完成结构化、可重复工作所需要的一整套基础设施:上下文加载、工具访问、编排(Orchestration)、执行钩子(Execution Hooks)、权限范围、记忆管理、会话生命周期。
  • 模型决定输出质量的上限,Harness 决定下限。
  • 把 Harness 理解成一个操作系统,会改变你配置它的方式;也能解释为什么不同工具之间的配置漂移(Configuration Drift),会产生那种看上去像是模型不稳定的失败。

大多数人第一次用 Claude Code 或 Cursor 时,会把它们当成一个能力不错的聊天界面:描述任务,AI 产出代码,人来审查并应用。认为工具是模型输出的交付通道,这样虽然可以但是整体上是有问题的。

的确是有一个模型而且我们是在和它交流,但是如果它把几乎所有的工作、几乎所有的差异都算到了模型头上,其实大部分差异并不来自模型而是来自 Harness。

Agent = Model + Harness

每一个 AI 编码 Agent 都是同样的两部分结构:

Agent = Model + Harness

模型是认知基础:处理文本、生成 Token 的神经网络。但模型是无状态的、没有工具、上下文。单独放在那里,它能在聊天窗口里回答问题;它读不了代码库、写不了文件、跑不了测试,也不记得上一次会话做过什么。

Harness 是除此之外其他东西,可以把一个无状态的语言模型,变成一个能持续产出工作的编码 Agent。可以把它想成 AI 工作的操作系统:模型是 CPU,是原始的计算能力;没有 OS —— 没有内存管理、没有 I/O、没有进程隔离、没有调度 —— 一颗 CPU 没办法和文件、网络、用户发生有用的交互。Harness 就是这一层 OS它给模型一个结构化的运行环境,并负责模型和外部世界之间每一次交互的中介。

Claude Code 是一个 Harness。Trae 是一个 Harness。Cursor 是一个 Harness。它们包的是不同的模型,或者是同一个模型在不同配置下的样子,但在结构上做的都是同一件事:把模型的原始能力,变成可以应用到真实工作上的形态。

编码 Agent Harness 的七个组件

Harness 不是一块单一的基础设施而是一层一层叠起来的能力栈。每个 AI 编码 Harness,不管包的是哪个模型,都会以某种形式提供下面这七层。

1、 上下文加载

在模型对任何任务采取行动之前,Harness 会先注入上下文:项目规则、架构约束、工作流指令、工具相关的指引。Claude Code 中的 CLAUDE.md 就是这一层的入口。模型在启动时能看到什么,决定了它能做什么。上下文加载不等于聊天历史,它是 Harness 在每一次会话开始之前都重新准备的一份结构化简报,每次都重新准备。

2、工具层

模型本身不能读文件、跑 Shell 命令、调外部 API。Harness 提供一套模型可以调用的工具词汇:read、write、edit、search、execute、fetch。每一次工具调用都由 Harness 居中处理:模型请求动作,Harness 决定是否执行、如何执行,以及返回什么。

3、编排(Orchestration)

复杂任务需要多个 Agent 或多个步骤。Harness 负责派生子 Agent —— 拥有独立上下文的独立模型实例 —— 在它们之间路由任务,并安排工作顺序。这是 Harness 和聊天客户端的根本区别:聊天客户端一次只转发一条消息;Harness 可以并行跑多条工作流,再把结果合成在一起。

4、执行钩子(Execution Hooks)

这是最被低估的组件。钩子是在模型发起动作之前或之后运行的确定性代码 —— 不是建议、不是指南,而是强制执行的。一个钩子可以拦截一次文件写入,按 Schema 校验输出,在失败时阻止该动作,并向模型返回一个结构化错误。钩子把概率性的模型,变成在关键决策点上行为可预测的系统。它们是强制层是 Harness 中模型无法绕过的那部分。

5、 权限层

Harness 定义模型能做什么、不能做什么:可以写入哪些目录、可以执行哪些命令、能不能访问网络。这是运行边界。一个能不受限制删掉生产文件的模型,不是一个安全的编码 Agent。权限层让有边界的自治成为可能:模型可以在定义好的范围内独立行动,而这个范围由 Harness 强制,不是靠模型自己克制。

6、记忆与状态管理

语言模型在会话之间没有记忆。Harness 管理持久层:哪些状态会被带到下一次,上下文变得过大时如何压缩,启动时如何加载来自之前会话的记忆。少了这一层,每次会话都从零开始,每一条规则、每一条约束、每一条项目约定都得从头重建。

7、会话生命周期

Harness 管理工作的边界:一次会话如何开始,上下文如何初始化,任务如何在会话之间交接,模型如何发出任务完成的信号。这一层让跨会话的工作可以保持连贯,而不是退化成一串互不相干的交互;让三天前被打断的任务,今天可以接着做下去,不丢线索。

为什么 Harness 比模型有更大的杠杆

模型决定输出质量的上限。Harness 决定下限。

一个没有被治理的 Harness 包着的模型能在一次会话里产出优秀代码,也能在下一次会话里在难度完全相同的任务上产出意外糟糕的代码。其中一部分差异来自模型;但大部分结构性差异 : 上下文没加载,钩子没就位,权限没划,记忆没持久化。

在结构化工作上,一个带治理的 Harness 配上中等模型,会持续地胜过一个没有治理的 Harness 配上更强模型。把模型的天花板往上推,只有在 Harness 的地板已经够高、够得到那块天花板的时候才有用。

这就让"Claude Code 还是 Cursor"对大多数团队来说成了一个错误的问题。两者都是能力不错的 Harness,各自包着能力不错的模型。问题不在哪个 Harness 更聪明,而是是哪一层治理在指挥这个 Harness;以及换工具的时候,那一层治理能不能跟着迁移过去。

两个 Harness,一层治理

在同一个项目上同时跑多个 AI 编码助手,会让 Harness 的结构以一种单工具配置做不到的方式显形。

每个工具读取不同的配置格式。每个工具有不同的钩子语法。每个工具有不同的权限系统。而在这个项目的三个助手之间,同样的约束依然成立,同样的工作流触发依然会触发,同样的架构规则依然被执行。不是因为每个工具都被单独调过一遍,而是因为治理层只存在一份,放在一个共享目录里,每个助手的配置都指向同一个来源。

Harness 读取治理层。治理层不关心是哪一个 Harness 在读它。

这就是理解 Harness 是什么所带来的结构性结论:治理层和 Harness 是可分离的。Harness 执行,治理指挥。Harness 是载体,治理是指令集。

把编码 Agent 的 Harness 理解成一个操作系统,而不是一个聊天界面,那些原本看起来像是小调整的配置决策,就会变成架构决策。

会话开始时加载进上下文的内容:不是一段系统 Prompt。它是 OS 在进程运行之前下发给它的简报。

配置出来的钩子:不是可选的增强项。它们是把概率性模型变成可预测系统的确定性强制层。

定义出来的权限范围:不是一个安全上的礼节性配置,它是让自治执行变得可信任的运行边界。

放进 Harness 里的治理内容:不是文档,它是 OS 在模型每一次行动时都会执行的指令集。

总结

大多数被 AI 编码结果的不一致的原因不是模型,而是操作系统,也就是我们所说的Harness ,因为每一个编程工具提供给模型的上下文都不一样,所以有时候出现问题,不妨先看看Harness ,没准改一改就好了。

https://avoid.overfit.cn/post/b455636bc99d42cc899314e14288b7f7

作者:Rakesh Patel

目录
相关文章
|
7天前
|
数据采集 存储 算法
视频 RAG 中分块策略:基于停顿、滑动窗口与基于 LLM 的方法
本文探讨视频RAG中的核心挑战——如何为无时间结构的视频转录文本设计有效分块策略。对比传统文本分块,提出基于停顿、重叠窗口、递归切分及LLM驱动的主题分块四层方案,实现细粒度检索与全局理解兼顾,提升视频内容检索准确性与上下文完整性。
117 13
视频 RAG 中分块策略:基于停顿、滑动窗口与基于 LLM 的方法
|
20天前
|
JSON JavaScript 前端开发
在TypeScript和JavaScript如何使用MetaMessage?
MetaMessage 是一种跨语言数据交换协议,支持 TypeScript/JavaScript(通过装饰器自动类型转换)、JSONC 文本与紧凑二进制 wire 格式,兼顾可读性、精度(如 bigint 表示 int64)与性能,旨在替代 JSON、Protobuf 等传统序列化方案。
211 125
|
20天前
|
NoSQL 测试技术 Redis
构建一个可自我改进的多 Agent RAG 系统:架构、评估,以及带人工审核的 Prompt 反馈闭环
本文提出一种可审计、可改进的多Agent RAG系统:通过Orchestrator动态编排分解、检索、批判与合成Agent,结合Token预算管控、溯源式答案生成及SSE实时可观测性;首创Prompt自我改进闭环——自动定位薄弱维度、生成结构化改写、并经回归检测+人工审批上线,兼顾LLM系统质量与工程严谨性。
145 2
构建一个可自我改进的多 Agent RAG 系统:架构、评估,以及带人工审核的 Prompt 反馈闭环
|
1月前
|
人工智能 自然语言处理 网络虚拟化
自动化天塌了?AI 替你画 Simulink!Agent——MCP 配置踩坑指南(附真实环境实测)
本文介绍在Windows下配置Simulink-MCP,使Cursor等AI Agent通过Model Context Protocol直接操作MATLAB/Simulink模型。支持加载、编辑、仿真等14个结构化工具,用自然语言即可生成/修改模型。需MATLAB R2024+、Python 3.10/3.11,并注意Engine与MCP版本兼容性。(239字)
|
7天前
|
存储 人工智能 自然语言处理
拒绝“大模型幻觉”:一文彻底搞懂 RAG(检索增强生成)技术全流程
本文深入解析RAG(检索增强生成)技术,直击大模型落地私有知识场景的核心痛点——如何让LLM精准、低成本、高时效地基于企业文档作答。从文本分片、向量化索引,到召回重排、增强生成,系统拆解五大关键步骤,揭示RAG作为“AI外挂”的底层逻辑与工程实践精髓。
252 5
拒绝“大模型幻觉”:一文彻底搞懂 RAG(检索增强生成)技术全流程
|
7天前
|
人工智能 JSON 测试技术
3人团队搞定500+接口:用Skills构建可复用的“测试技能库”,复用率提升80%
本文直击接口自动化测试痛点:脚本重复率高、复用率不足20%、维护成本飙升。提出“测试技能库”新范式——将校验逻辑提炼为可检索、可组合、带契约的“技能”,实现从“代码复用”到“能力复用”的跃迁。含三层架构、落地三步法与真实订单案例,助团队降本增效。
|
20天前
|
人工智能 自然语言处理 监控
OpenClaw“养龙虾”保姆级教程:从零基础部署到进阶玩法与安全避坑指南
2026年,一款名为OpenClaw的开源AI智能体迅速走红全网,凭借红色龙虾样式的标识,被爱好者亲切称作“龙虾”,而部署、调教与使用OpenClaw的全过程,也被大家戏称为“养龙虾”。OpenClaw的核心理念是打造真正能落地执行任务的AI,它打破了传统AI仅停留在对话交互的局限,通过赋予模型操作系统、操控软件、读写文件、控制浏览器、执行代码等真实操作权限,让AI从“聊天助手”升级为可以自主干活的数字员工,能够理解自然语言指令并独立完成一系列自动化工作流。
526 7
|
22天前
|
人工智能 监控 测试技术
AI 测试用例审核 Skill:把用例评审从“凭经验”变成“可评分”
本文介绍一种AI驱动的测试用例审核Skill,将资深测试负责人的评审经验封装为可复用、可量化、可批量执行的标准能力。它能自动检查逻辑完整性、预期明确性、前置条件、PRD覆盖度及边界异常,逐条评分、定位问题、给出修改建议,助力团队提升用例质量、统一评审标准、加速新人成长。
|
21天前
|
边缘计算 安全 定位技术
AIWCLOUD:免备案高防CDN、不限内容、抗投诉、在跨境金融级数据同步场景下
本文介绍一种专为跨境金融设计的免备案CDN架构,通过物理路径固化、PTP亚微秒时钟同步与MACsec链路层加密,实现低抖动、高安全、强合规的“数据专线级”传输,满足支付清算、外汇交易等场景的严苛要求。(239字)
170 8
|
7天前
|
存储 人工智能 算法
告别无效刷屏!TrendRadar:最快30秒部署的开源热点助手,让你只看真正关心的新闻
TrendRadar 是一个轻量级、易部署的热点新闻聚合与推送工具。它能够从知乎、抖音、B站、微博、百度、华尔街见闻等11个主流平台抓取热搜榜单,然后根据你设定的关键词进行智能筛选,最终将你最关心的内容推送到手机或邮箱。
171 13
 告别无效刷屏!TrendRadar:最快30秒部署的开源热点助手,让你只看真正关心的新闻