当模型足够强之后,我们为什么还要重写 Harness?

模型能力已经足够强大,真正拖后腿的是稳定性——它跑偏、误判完成、在你不注意的地方悄悄变形。 引言:一个让人警觉的数字 同一个模型,提示词不变,数据不变,只是换一套运行方式,编程基准成绩就能从 42% 跳到 78%。 Anthropic 的例子更直观:同一个模型,单打独斗时看起来像是做完了,真跑起来核心功能却是坏的;换一套带规划、生成、验收的运行框架,成本高了,时间长了,结果反而能用。 这提醒我们:AI 工程的重心,正在从"让模型更会回答",转向"让系统更稳地交付结果"。 第一部分:Harness 不是"壳",是控制系统 很多人第一次听到 Harness,会本能地把它理解成"模型外面那层包装"。这个理解不够。 模型自己不会: 保存状态 维护工作目录 判断输出是否满足系统约束 知道什么时候该停、该继续、该回滚 自己搭测试环境 写完后自觉打开浏览器验证 决定这次提交能不能合并 Harness 不是给模型套上的外壳,而是把模型接进工程世界的那层控制系统。 它包括: 状态怎么保存 工具怎么暴露 权限怎么约束 输出怎么验证 上下文怎么管理 任务怎么续跑 什么叫"真的完成了" 这些东西并不花哨,甚至很多都不新鲜——文件系统、测试、日志、浏览器、Lint、计划文件,原本就是软件工程里再普通不过的东西。 但一旦主角从人类工程师换成模型,它们突然重新变成了核心。 因为模型最擅长的是生成,最不擅长的是在约束里稳定收敛。 第二部分:三篇文章的共同指向 2.1 Skills:把隐性知识变成显性协议 Skill 要解决的是提示词漂移、方法失传、工作流无法复用这些问题。本质上,是把原本靠聊天临场发挥的东西,搬进文件系统和版本控制。 2.2 Claude Code 实战:架构决策注入执行流程 Boris 那套 Research -> Plan -> 批注 -> Implement 流程最值钱的地方,在于它把"架构决策怎么进入执行流程"这件事做成了机制。 2.3 OpenClaw 架构:可控、可回放、可解释 lane queue、allowlist、JSONL 回放、语义快照——这些都在回答:系统怎么保持可控、可回放、可解释。 三篇文章,分开看像三个不同话题。放在一起,其实都在做一件事:把原本靠模型临场发挥的部分,改造成可沉淀、可约束、可验证的系统。 第三部分:三篇放在一起,都在做一件事 真正变化快的,往往不是那个最小执行循环,而是循环外面不断加厚的那层工程设施: 知识怎么挂进去 状态怎么存下来 权限怎么卡住 验收怎么接回来 也正因为如此,这一轮大家聊 Harness,越来越像在聊系统设计,而不是某个单点技巧。 第四部分:为什么 Harness 现在变得重要 4.1 能力问题 vs 稳定性问题 Prompt Engineering:怎么把一句话说清楚,让模型按你的意思回答 Context Engineering:什么信息应该放进来,什么不该放进来 Harness Engineering:模型能理解需求,但在复杂系统里,能不能把事情从头到尾做稳? AI 工程开始从能力问题,转向可靠性问题。 ...

March 29, 2026 · 1 min · Tars

模型越来越强,为什么大家却开始重写 Harness

太长不看版 如果把《跟Cloudflare大佬学用 Claude Code》《Skills 详解》《深度拆解 Clawdbot(OpenClaw)架构与实现》放在一起看,会发现它们其实都在补模型外面的系统层 Harness 可以粗略理解成"把模型接进真实工作流的控制系统",里面不只有工具,还有状态、约束、反馈和验收 它现在变重要,原因很直接:模型一旦开始真正动手,系统层问题暴露得比能力问题更快 具体做法会随着模型迭代不断变化,但知识沉淀、硬约束、反馈回路、完成标准这些问题不会自己消失 如果现在准备补 Harness,我会更建议先补统一知识入口、硬约束和验证闭环,再谈多 Agent 和复杂编排 先别把 Harness 当成一层"壳" 很多人第一次听到 Harness,会本能地把它理解成"模型外面那层包装"。这个理解不算错,但也不够。 如果只是为了做一个短对话应用,你确实可以把它理解成包装层。一个聊天窗口,加一个消息循环,再加几个工具,差不多也能跑起来。但一旦任务开始变长,事情就不是"包一层"这么简单了。 模型自己不会保存状态,不会主动维护工作目录,不会判断某次输出是不是已经满足了系统约束,也不会天然知道什么时候该停、什么时候该继续、什么时候该回滚。它当然也不会自己给自己搭测试环境,更不会在写完之后自觉打开浏览器、点一遍页面、看一眼日志,再决定这次提交到底能不能合并。 所以我现在更愿意把 Harness 理解成另一种东西:它不是给模型套上的外壳,而是把模型接进工程世界的那层控制系统。 这里面通常包括几类东西: 状态怎么保存 工具怎么暴露 权限怎么约束 输出怎么验证 上下文怎么管理 任务怎么续跑 什么叫"真的完成了" 把这几样拆开看,你会发现它们并不花哨,甚至很多都不新鲜。文件系统、测试、日志、浏览器、Lint、计划文件、审批机制,这些原本就是软件工程里再普通不过的东西。 但一旦主角从人类工程师换成模型,它们突然重新变成了核心。 因为模型最擅长的是生成,最不擅长的是在约束里稳定收敛。 为什么它偏偏现在火了 如果把时间往前拨两年,你会发现那时候大家最关心的是 Prompt Engineering。核心问题是:怎么把一句话说清楚,让模型按你的意思回答。 后来上下文变长了,任务变复杂了,大家开始聊 Context Engineering。问题也跟着变了,不再是"这一句怎么写",而是"什么信息应该放进来,什么不该放进来"。 再往后走,就到了今天这个阶段。 Prompt Engineering 和 Context Engineering 当然没有过时。更准确地说,它们被包进了一个更大的问题里。 现在更让人头疼的问题变了:模型能理解需求,但在一个复杂系统里,它能不能把事情从头到尾做稳? 这也是为什么最近围绕 Harness 的材料,明显都带着一种很强的"实战味"。 Mitchell Hashimoto 提出 Engineer the Harness,出发点很具体:每当 Agent 犯了一个错误,就别只盯着这次对话修修补补,把修复方式沉淀进系统,让它下次别再犯 OpenAI 的 Codex 团队讲得更直接。他们从零开始跑出一个大规模代码库之后,最后得出的重点,落在三件事上:仓库怎么成为统一知识入口,架构边界怎么机械执行,PR 怎么通过 Lint 和测试去卡住错误方向 Anthropic 的材料也很典型。里面有一个很朴素的发现,我一直记得:模型并不擅长评价自己的工作 这句话看起来平淡,其实分量很重。因为它把很多人真实碰到的问题说穿了。页面看起来像是做完了,交互其实没通。功能大体对了,边界条件一跑就露馅。代码能过一部分测试,但系统层面已经悄悄偏离了原本的设计。 ...

March 29, 2026 · 2 min · Tars
浙ICP备2026016996号-1 | 浙公网安备33010802014379号