Harness 是新瓶装旧酒吗

Co-authored with Claude. 整理自原始笔记


有人说 harness 这个概念是新瓶装旧酒——传统软件工程早就有类似的东西,围绕主要算法提供支撑的外层,以及导致同一个算法在不同环境下行为不同的原因。

概念确实是相似的。但我认为 harness 在 Agent 时代被提出有它的价值。

“新瓶装旧酒"暗示命名没有意义、底层没有变化。但 LLM 作为引擎引入了新的东西——模型的不确定性、类似于智能的表现。同时,新命名不妨碍我们利用旧概念的经验。

这让我想到 Steph Ango 说的“简明扼要的解释促进进步”。新概念的价值不一定在于描述了全新的东西,而在于让已有的东西变得可讨论、可操作。Claude Code 的 skills 也是类似的例子:实现上不算新鲜,但命名和产品化让它传播开了。

Agent 时代之前是 Chatbot 的时代——我们当时叫它 LLM 的时代。那时候其实也有某种意义上的 harness:artifact、web search、thinking、memory、RAG。只是人们不这么叫它,也更少关注它的作用。模型能力被认为是最重要的变量。

带着这个习惯,当人们比较 Claude Code 和 Codex 这样的 Agent 时,下意识地将差异归因于模型。但 OpenAI 自己的数据显示,GPT-4 在 SWE-bench 上的表现从 2.7%(早期 RAG 架构)到 28.3%(CodeR),差了十倍——同一个模型,不同的 harness。

随着 Agent 逐渐发展,模型外层的东西越来越庞大也越来越重要。Harness 这个概念突出了 Agent 所引入的变化,让我们更容易意识到:很多时候你觉得是模型的问题,其实是 harness 的问题。

顺带一提——某种意义上 claude.ai 其实也是 Agent:持续地执行动作、调用工具以达成你的目标,而不只是一问一答。它也有很大的 harness,只不过还是 web chat 界面。