当前位置: 首页 > news >正文

Harness火了,到底说了什么

Harness是套在LLM外部的运行时控制系统,负责计划、测试、重试等模型无法处理的事务。文章对比模型(发动机)与Harness(底盘)的重要性,指出AI工程关注点从指令到环境不断扩展。通过分析Claude Code源码,提炼出六条Harness工程原则,揭示这些原则与开发者日常实践高度契合。文章强调将文档约束与机械约束结合,引入独立Evaluator Agent进行产出评估,以及使用文件系统作为可靠记忆存储的重要性。最终提出三个强化方向:用代码强制规则执行、让独立agent评价产出质量、用文件持久化跨session状态,同时提醒Harness并非万能,模型能力仍是天花板。


模型是发动机,Harness是底盘

最近刷技术圈,Harness 这个词的浓度有点反常。

Anthropic 工程博客一口气甩出三篇长文讲 long-running agent 的底盘设计,OpenAI Codex 团队的 Ryan Lopopolo 放了句狠话——“Agents aren’t hard; the Harness is hard”,社区有人从 Claude Code npm 包里意外暴露的 source map 还原出 50 万行源码写了详尽的架构拆解。"Harness Engineering"一夜之间成了 AI 工程的新必修课。

看完这一圈,我的第一反应不是"又要学新东西",而是——等等,这些事我不是天天在做吗?

先说清楚 Harness 到底是什么。一句话:套在 LLM 外面的运行时控制系统。模型管思考,Harness 管一切模型管不了的事——做计划、跑测试、失败重试、上下文压缩、多 Agent 分工、操作审批、中间结果持久化。

打个比方:模型是发动机,Harness 是底盘加变速箱加刹车加导航。发动机再猛,没有底盘也会跑偏、失忆、死循环。Anthropic 就观察到两个经典翻车姿势:“过度野心”——单次 session 试图包圆所有工作,上下文耗尽后留下一地烂摊子;“过早完成”——后续 Agent 看到半成品就宣布"搞定了",其实还差十万八千里。

这个概念不是凭空冒出来的。AI 工程的关注点一直在扩大:

从"怎么说"到"给什么背景"到"造什么环境"——每一步都是范围的扩大。

Manus 团队的经历最能说明问题:六个月重写了五次 Harness,模型一直没换。产品差异化不在发动机,在底盘。

原则自检:你都做到了吗?

有人从 Claude Code 的源码中提炼了六条 Harness 工程原则。逐条拆开看,你会发现大部分原则在 CC 用户的日常工作里早就有了影子:

  1. Prompts as Control Surface(Prompt 即控制面)
  • CC 内部针对不同模型版本有专门的 prompt 补丁,系统行为通过修改 prompt 实现,不硬编码规则引擎
  • 对照你自己:写过 CLAUDE.md?配过 workflow 规则文件?那你已经有了一个 Control Surface
  1. Fail-Closed Defaults(默认安全失败)
  • 无法确定操作安全性时,默认拒绝。CC 内部有 23 项安全检查,未授权操作直接拦截
  • 对照你自己:用过 CC 的权限审批弹窗?配过 pre-commit hook 拦截危险操作?同一个思路
  1. A/B Test Everything(一切可实验)
  • Harness 每个组件都编码了对模型能力的假设,需要定期验证假设是否成立
  • 对照你自己:新 prompt 策略会先拿小任务试跑,而不是直接上生产?→大概率已有
  1. Observe Before Fixing(先观察再修复)
  • 改变系统行为前,先收集观测数据。Agent 在 session 开始时先读进度文件、检查 git、跑验证
  • 对照你自己:让 Claude 开干前先git status、先读 plan 文件?这就是 Observe Before Fixing
  1. Cache-Aware Design(缓存感知设计)
  • 充分利用 API 的 prompt caching 降低成本。CC 源码有"cache the prefix, change only the suffix"的设计模式
  • 对照你自己:这条纯粹是 CC 底层在帮你做,用户层面无需操心
  1. Latch for Stability(锁存器保稳定)
  • 一旦达到稳定状态就用机械约束"锁住",防止退步。CC 内部用 JSON schema 锁住 Feature list 状态;用户层面,lint hook 是同一思路
  • 对照你自己:CLAUDE.md 里写了规则但没有脚本强制?那这条就是你的升级空间

翻译过来就是——CLAUDE.md 是你的Control Surface,权限审批是你的Fail-Closed,session 开头的状态检查是你的Observability,lint hook 是你的Latch

认真配置过 Claude Code 规则体系的人,其实已经踩在 Harness Engineering 的地盘上了——只是没挂这块招牌。

Harness 不是一个需要从零搭建的新框架。它更像是给你散落的实践找到了一套共同语言。

三个值得有意识强化的方向

大框架有了,但有三个地方容易卡在"碰巧做对了"而没有变成"有意识的工程"。

文档是请求,代码是强制

打开你的 CLAUDE.md,里面大概率有类似"数据获取必须通过统一封装,不允许直接调第三方 API"的规则。这条规则管用吗?多数时候 Claude 会遵守。

但 OpenAI Codex 团队给了一个更冷酷的判断:Agent 会复制已有的坏模式,没有机械约束,坏模式指数级扩散。

Prompt 里的规则本质是"请求"——模型可能听也可能不听。Prompt 提高的是遵守概率,不是确定性。越长的 prompt,模型越容易选择性遗忘。

做个实验:写一个简单的 grep 脚本,扫描项目里所有违反你 CLAUDE.md 核心规则的地方。大概率会翻出一堆你不知道的历史违规——Agent 早就绕过你的"请求"自行其是了。

更有效的做法是把这类检查配到 Claude Code 的 hook 里(比如 SessionStart hook),每次开 session 自动跑。存量违规记为 baseline,增量违规立刻报红。

这里面真正重要的不是脚本,是一个认知转变:

对 LLM 而言,CLAUDE.md 是"愿望清单",lint rule 是"物理定律"。一个靠概率,一个靠确定性。

两者结合才是正解:文档约束传达意图(让 Agent 理解"为什么"),机械约束确保执行(让 Agent 无法违反"什么")。

Anthropic 自己也踩过这个坑——progress file 有时仍会被 Agent 意外破坏,后续版本加强了 JSON schema 级别的保护。Feature list 从 Markdown 改成 JSON,Agent 只能改 pass/fail 状态,不能删需求。文档约束没拦住的事,schema 约束拦住了。

30 秒最小动作:打开你的 CLAUDE.md,搜索"禁止"、“不允许”、“必须”,数一下有几条。挑最重要的一条,写个grep -r检查脚本,配到 hook 里。一个脚本 + 一行 hook 配置,效果是把"请求"变成"强制"。


模型不能评价自己

你让 Claude 写完一份报告,顺手问一句"你觉得这个结果怎么样"——它大概率会说"整体质量不错"。但你拿同一份报告开个新 session 让另一个 agent 审,可能立刻揪出三个问题。

这不是个案。Anthropic 在迭代 Harness 架构的过程中确认了一个结构性事实:让模型给自己的工作打分,它倾向于过度自信。

原因不在 prompt 写得好不好——是生成机制本身的问题。模型在 token 级别已经做了"选择",再要求它评价同一内容,注意力分布天然偏向肯定。加上 RLHF 训练带来的讨好倾向,自评几乎必然过度乐观。Anthropic 原文的描述很到位:Agent 被要求评价自己的工作时,会**“自信地称赞自己的工作”**——即使质量平庸。

解法很直接:引入独立的 Evaluator Agent。思路有个老祖宗——GAN(生成对抗网络)。Generator 负责生成,Discriminator 负责挑刺,两边对抗出好结果。Anthropic 把同样的对抗逻辑搬进了 Agent 架构,贯穿三代演进:

第一代解决"跨 session 不丢活",第二代解决"产出质量有保障",第三代解决"大规模部署和故障隔离"。第三代的成绩单:p50 首 token 延迟降 60%,p95 降超 90%。

Evaluator 的三条关键设计原则

  1. 独立上下文:不共享 Generator 的推理历史,只看最终产物——避免"被生成过程说服"
  2. 怀疑性默认:prompt 预设"输出可能有问题"的立场,不是"验证输出是否正确"——措辞差异显著影响评估严格度
  3. 角色分离:生成者和评估者必须是不同的 Agent 实例

落地到 Claude Code 工作流并不复杂:关键产出交付前,起一个独立的 subagent 做验证。给它原始需求和最终产出,prompt 里写清验证标准——它没见过生成过程,不会"被说服",也没有"这是我做的"这个心理包袱。

更好的做法是把这条写进 workflow 规则变成 always-on,而不是每次靠人记得要验证。

30 秒最小动作:下次让 Claude 跑完一个重要任务后,新开一个 session,把产出贴进去,prompt 写"请找出这份产出中的 3 个最大问题"。你会发现独立 agent 比"同一个对话追问"严格得多。

文件系统是最可靠的记忆

OpenAI Codex 团队用 3 个工程师、5 个月造出约 100 万行 Agent 生成的代码。他们最核心的做法之一:每个任务步骤的产出都落盘成文件,不指望会话记忆。

Anthropic 第一代 Harness 走的也是这条路:initializer agent 创建claude-progress.txt,后续每个 session 先读这个文件再继续。200+ 个需求用 JSON 格式的 Feature list 追踪,每个标 pass/fail。

为什么文件比 memory 靠谱?本质区别在于:文件是确定性存储(写了什么就是什么),LLM memory 是概率性检索(记了什么取决于模型认为什么重要)。

LLM 记忆翻车的四条路径:

  1. 硬性截断:上下文窗口满了,早期内容被物理删除——不是"遗忘",是"裁员"
  2. 注意力衰减:窗口内越早的信息权重越低,关键细节悄悄"沉底"
  3. 压缩有损:上下文压缩会丢失细节、数字、边界条件——恰恰是最不能丢的东西
  4. 跨 session 断裂:新 session 默认对之前一无所知,memory 系统能缓解但不能根治

你可以做个测试:翻翻自己的 plan 文件,看看有多少写完之后再也没人更新进度。Plan 如果没有 checkpoint 机制,写完那一刻就开始过期。

更可靠的做法是把 plan 文件当跨 session 的状态机——每完成一步打一个 checkbox,遇到非显而易见的决策就在对应 task 下方补一行 Decision log。下次 session 接着做的时候,读文件比靠任何形式的记忆都稳。

Anthropic 的总结:“这种方法借鉴了人类工程实践,将交接班纪律应用于 AI 工作流。”——每个 session 就像一个轮班工人,文件系统就是交接班日志。

30 秒最小动作:找到你最近一个还在执行的 plan 文件,把已完成的步骤打上勾。没有 checkbox?现在加上。

后记

Harness Engineering 这个词是新的,但它描述的工程实践对 CC 重度用户来说并不新——你只是一直没给它起名字。

这个框架的价值不在于教你新技巧,在于帮你做一次审计:哪些实践是偶然养成的好习惯(值得固化),哪些是还没补上的缺口(值得有意识地强化)。

审计完落到行动上,核心就三件事:重要规则用代码强制,关键产出让独立 agent 评价,跨 session 状态写进文件。

但也别把 Harness 神化了。底盘再好,发动机拉胯还是跑不快——模型能力本身仍然是天花板。而且不是每个人都需要企业级 Harness,个人开发者搞三五条 lint rule 加一个 plan checkpoint 就够用,过度工程化反而是另一种浪费。

一个值得想的问题:当模型足够强,Harness 的哪些部分会被模型自己吞掉?Context window 无限长了还需要文件持久化吗?模型自评可靠了还需要独立 Evaluator 吗?Harness 的每个组件都编码了对模型能力的假设——这些假设会过期。

从"会用工具"到"会驾驭工具",差的就是这层自觉。

最后唠两句

为什么AI大模型成为越来越多程序员转行就业、升职加薪的首选

很简单,这些岗位缺人且高薪

智联招聘的最新数据给出了最直观的印证:2025年2月,AI领域求职人数同比增幅突破200% ,远超其他行业平均水平;整个人工智能行业的求职增速达到33.4%,位居各行业榜首,其中人工智能工程师岗位的求职热度更是飙升69.6%。

AI产业的快速扩张,也让人才供需矛盾愈发突出。麦肯锡报告明确预测,到2030年中国AI专业人才需求将达600万人,人才缺口可能高达400万人,这一缺口不仅存在于核心技术领域,更蔓延至产业应用的各个环节。

那0基础普通人如何学习大模型 ?

深耕科技一线十二载,亲历技术浪潮变迁。我见证那些率先拥抱AI的同行,如何建立起效率与薪资的代际优势。如今,我将积累的大模型面试真题、独家资料、技术报告与实战路线系统整理,分享于此,为你扫清学习困惑,共赴AI时代新程。

我整理出这套 AI 大模型突围资料包【允许白嫖】:

  • ✅从入门到精通的全套视频教程
  • ✅AI大模型学习路线图(0基础到项目实战仅需90天)
  • ✅大模型书籍与技术文档PDF
  • ✅各大厂大模型面试题目详解
  • ✅640套AI大模型报告合集
  • ✅大模型入门实战训练

这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

①从入门到精通的全套视频教程

包含提示词工程、RAG、Agent等技术点

② AI大模型学习路线图(0基础到项目实战仅需90天)

全过程AI大模型学习路线

③学习电子书籍和技术文档

市面上的大模型书籍确实太多了,这些是我精选出来的

④各大厂大模型面试题目详解

⑤640套AI大模型报告合集

⑥大模型入门实战训练

如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!

应届毕业生‌:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能 ‌突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

👉获取方式:
有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

http://www.jsqmd.com/news/723175/

相关文章:

  • 电动汽车驱动系统与PMSM控制技术解析
  • 苏堤旁的花港观鱼,把江南园林与鱼趣装进时光
  • 告别D-PHY!用C-PHY三线制为你的摄像头模组提速2.28倍(附波形解析实战)
  • Termux安装Ubuntu避坑指南:从‘libssl.so.1.1 not found’到完美运行的完整流程
  • Profile-Badges测试版徽章前瞻:Heart On Your Sleeve和Open Sourcerer获取指南
  • 终极指南:如何使用Pagoda快速构建Go全栈Web应用与动态管理面板
  • 终极指南:BinNavi与Ghidra全方位对比,哪款开源二进制分析工具更适合你?
  • 2026污水处理一体化设备定制厂家推荐,专业打造刮泥机、沉淀池成套设备,规模化生产实力雄厚 - 栗子测评
  • 容器化Web调试工具集:一站式解决开发调试碎片化难题
  • 硅藻土助滤剂厂家推荐:2026改性/活性硅藻土优选厂家推荐指南 - 栗子测评
  • 别再手动切分模型了!用ANSYS Workbench对称/反对称功能,5分钟搞定带孔平板的应力分析
  • MoltGrid:基于3D网格与深度学习的分子性质预测框架实战指南
  • Qt生成应用程序exe(一)——windeployqt
  • AI开发省积分80%的终极秘诀
  • 终极PDF OCR工具指南:如何用OCRmyPDF快速实现文档扫描识别与智能PDF处理 [特殊字符]✨
  • 2026年手动控制开窗器技术解析与TOP5厂家实测对比 - 优质品牌商家
  • 2026国标电线电缆采购推荐:性价比与品质的平衡逻辑 - 优质品牌商家
  • 如何创建仅在首次订阅时执行一次计算的 RxJS 懒加载 Observable
  • LeetCode 用 Rand() 实现 Rand():python 题解
  • 零信任时代的数据合规终极指南:Electric SQL实现GDPR与本地化同步的完整解决方案
  • 大模型就业前景火爆?高薪背后隐藏的真相与避坑指南!大模型前景如何?
  • Jina Embedding Server:高性能嵌入模型服务化部署与优化指南
  • 2026斜管填料厂家推荐,深耕过滤器、气浮机量产制造,源头工厂直供,实力智造保障项目落地 - 栗子测评
  • Laravel断言库终极指南:掌握20+测试验证方法的实战技巧
  • 2026靠谱塑料除味剂/橡胶除味剂生产厂家推荐:吸油粉源头工厂直供 - 栗子测评
  • 如何为Runtime Mobile Security (RMS)扩展新功能并贡献到开源社区:完整指南
  • GTAO_Booster_PoC:革命性优化工具如何将GTA Online加载时间减少70%
  • GodSVG元素属性系统详解:掌握每个SVG标签的完整配置
  • 【AI】阿里copaw智能体框架简述
  • json.lua 终极指南:如何在 Lua 中快速实现 JSON 编码与解码