--- source_url: https://mp.weixin.qq.com/s/bSLyfsebhSZ8ZVxk1HyAPA ingested: 2026-06-17 sha256: d2bf78defe6e9e0162be4fda0f5296cb4848a32982ce949e9822c3d179008d09 author: Panda (机器之心) publish_date: 2026-06-17 source_type: wechat series: Loop vs Harness (Loop 续篇) --- 上一篇我们拆穿了一件事:让 AI 整夜自己搞研究的那个"黑科技",内核就是一个程序员第一周就学过的 while 循环。Agent 的发动机,简单到扫兴。 一文搞懂 Loop 工程:看懂这个 while 循环,你就看穿了所有"AI 智能体" 但这里立刻冒出一个问题。 既然发动机这么简单、这么标准,人人都能装,那为什么——同样是基于 GPT、Claude 这些顶尖模型搭出来的 Agent,有人的能放心扔在那儿跑一整夜,醒来收获一堆成果;有人的却一上手就乱删文件、把代码库搞瘫、烧掉一大笔钱还交回来一坨错的? 用的模型一样,循环也一样。差别到底在哪? 答案就是这篇要讲的词:Harness(音译"哈尼斯",意思是"挽具、套具"——就是套在马身上、让你能驾驭它的那套缰绳和马具)。 如果说 Loop 是发动机,那 Harness 就是发动机外面的整辆车——方向盘、刹车、安全带、护栏。没有车,再好的发动机也只能原地空转,或者直接冲下悬崖。 一个公式:Agent = 模型 + Harness 2026年,AI 工程圈基本达成了一个共识,浓缩成一个特别简单的公式: Agent(智能体)= Model(模型)+ Harness(套具) 这个公式的潜台词有点扎心:你平时惊叹的那些 AI 能力,一半来自模型,另一半——来自模型外面那套你看不见的东西。 模型负责"聪明"——它会思考、会推理、会想办法。但模型本身啥也"干不了"。一个光秃秃的模型,就像一个绝顶聪明、但被关在小黑屋里的大脑:它能想,但它没有手,碰不到任何东西,看不到外面的世界,做完一件事转头就忘。 Harness 就是给这个大脑配上手、眼睛、记事本和安全绳的那套装备。一个业内流传的说法很精辟:在一个 Agent 系统里,如果你不是那个模型,那你就是 Harness——模型之外的所有代码、配置、运行逻辑,全是 Harness。 把这套装备拆开,大致是四样东西: 手——也就是工具。让模型能真的读文件、跑命令、查网页、调用外部服务。没有工具,模型只能"说",不能"做"。 记事本——也就是记忆和上下文管理。模型每次只能记住有限的内容(这叫上下文窗口),一个长任务很容易就超了。Harness 负责帮它管理这个记事本:什么该记、什么该忘、记不下了怎么压缩。 护栏——也就是权限和安全边界。哪些事它能自己做,哪些事必须先问过人,哪些事绝对禁止。 反馈回路——也就是上一篇讲的那把"尺子":干完一步,怎么判断对不对,错了怎么退回去重来。 发现没有?上一篇讲的整个 Loop 循环,其实只是 Harness 这套装备里的"反馈回路"那一格。Loop 是 Harness 的一部分,是它的心跳。但一辆能上路的车,光有心跳远远不够。 一次代码泄露,让所有人看清了"车"长什么样 光说概念有点虚。2026年3月底发生了一件事,正好让我们看清这套"装备"到底多复杂。 Claude Code(Anthropic 出的那个很火的编程 Agent)的源代码,因为一次打包失误,意外泄露了——超过50万行 TypeScript 代码,几小时内就被全网镜像了。Anthropic 确认这是个意外,没有泄露任何用户数据,随后发了下架通知。 但代码已经被看光了。而所有研究过的人,得出的结论出奇一致: 最值钱、最复杂的部分,根本不是那个模型。是 Harness。 那50万行代码里,绝大部分不是"AI 智能",而是把一个聪明的模型,一点点驯化成一个能安全干活的员工的——缰绳。它怎么管理上下文不爆、怎么判断一个操作危不危险、怎么在多个任务之间切换、出错了怎么回滚。模型是买来的(就是 Claude),但让 Claude 变得好用、可靠、不闯祸的那一整套工程,才是真正的护城河。 这件事给所有人上了一课:你以为你在用一个"强大的 AI",其实你在用的,是一套精心打造的 Harness,模型只是装在里面的那颗心脏。 最反直觉的一点:管住 AI,靠的不是"把话说清楚" 到这儿,这篇文章真正想颠覆你认知的部分来了。 凭直觉,你大概会这么想:要让 Agent 听话、不犯错,那就把规矩给它讲清楚呗——写一份详细的说明文档,告诉它"你要这样这样,不准那样那样"。这就是 Agent 圈里说的"上下文文件",比如那个著名的 CLAUDE.md 文件,相当于给 Agent 立的厂规。 听起来很合理。但有一项实测数据,会让你后背发凉。 2026年2月,苏黎世联邦理工(ETH Zurich,欧洲顶级工科院校)做了个严谨实验:在12个真实的代码库、138个真实任务上,测试这些"说明文档"到底有没有用。结果是: 人精心手写的说明文档,只把 Agent 的成功率提高了大约4%。而用 AI 自动生成的说明文档,不但没帮上忙,反而把成功率拉低了约3%,还顺带多烧了超过20%的成本。 4%。你费半天劲写的厂规,效果约等于没有。 为什么?因为说明文档的本质是"叮嘱"。而你越是了解 AI,越会明白一个残酷的事实:叮嘱是会被无视的。模型读了你的 CLAUDE.md,记住了"不要删除项目文件",但在某个上下文很长、它有点"晕头转向"的时刻,它照样可能一条命令把你的项目目录给清了。一句"请不要这样做",拦不住一个真的动手去做的 Agent。 那真正管用的是什么?是强制。 业内有句话把这事说绝了:CLAUDE.md 写一万遍"不许 rm -rf 删库",都不如一个 hook(钩子)管用——说明只是请求它别做,hook 是让它根本做不到。 hook 是什么?它是一道硬性拦截。你不是"告诉"Agent 不能删库,你是在它和系统之间架一道闸:当它真的发出"删除"这个动作时,闸直接把这个动作拦下来,根本不让它执行。这跟"贴个'请勿入内'的牌子"和"装一道锁死的门"的区别一模一样。 所以行业里正在发生一个明显的转向。有家叫 HumanLayer 的团队,干脆把他们的 CLAUDE.md 说明文档压到了60行以内——少写废话,多上硬拦截。Claude Code 在3月推出的自动模式更狠:它用一个后台分类器来判断某个操作能不能放行,而这个分类器只看得到 Agent 要执行的动作,看不到 Agent 嘴上说的那些话——这是故意设计的,就是为了防止 Agent 用花言巧语把安全门给忽悠过去。 读懂这个转向,你就读懂了 Harness 工程的精髓:别指望靠"沟通"管住一个 AI,要靠"设计"——把它能犯的错,从机制上变得不可能。 那些规矩,每一条背后都是一次翻车 还有一个细节,特别能说明 Harness 是怎么"长"出来的。 有个开源项目叫 Ghostty,它的 Agent 说明文件里有一个让人会心一笑的规律:文件里的每一条规则,都对应着过去 Agent 真实犯过的一次错。 这句话信息量很大。它意味着,一套成熟的 Harness,不是哪个聪明人坐在屋里一次性设计出来的。它是被 Agent 一次次的翻车,一行一行喂出来的。Agent 删错了一次文件,就加一条护栏;Agent 在某个地方钻了一次空子,就补一道闸。每一条规矩,都是一道结过痂的伤疤。 这恰恰呼应了上一篇那把"尺子"的逻辑——Harness 工程本质上是一门"防御工程"。你不是在教 AI 变得更聪明(那是模型公司的事),你是在它聪明的基础上,一层层地包上约束、装备和护栏,让这份聪明不会失控、能稳定地变成你要的结果。 Anthropic 自己有个观察很值得玩味:模型越强,Harness 的设计空间不但没缩小,反而更大了。因为模型越能干,你越敢放手让它做更复杂、更危险的事——而越复杂越危险的事,越需要精密的缰绳。 两篇串起来,说清Loop(循环)和Harness(套具)关系 Loop(循环)是发动机——它让 Agent 能"转起来",一步接一步地行动。但它本身只管转,不管转向哪、会不会翻车。 Harness(套具)是整辆车——它把发动机(Loop)、加上手(工具)、眼睛(上下文)、刹车和护栏(权限),组装成一个真正能上路、能托付、不闯祸的系统。Loop 是 Harness 心脏里的那一下下跳动。 而你,是那个开车的人——你不需要自己造发动机(模型是买的),但你要决定给这辆车装什么护栏、立什么规矩、留哪条退路。Karpathy 敢扔下 AI 去睡觉,不是因为他造了个更聪明的大脑,而是因为他把车的刹车、护栏、安全带都焊得死死的。 所以回到开头那个问题:同一个模型,为什么有人能放心让它干一整夜,有人一上手就闯祸? 差的不是模型,不是那个循环。差的是这个人有没有认真地、一行一行地,给他的 AI 打磨那套缰绳。 模型决定了 AI 有多聪明。Harness,决定了这份聪明你敢不敢用。