一个下午提升 15 个大模型编程能力:仅改变了 Harness
Hacker News 摘要原标题:Improving 15 LLMs at Coding in One Afternoon. Only the Harness Changed
当前关于大语言模型(LLM)编程能力的讨论大多集中在哪个模型更强,例如 GPT-5 或 Claude Opus。作者 Can Bölük 认为这种观点误导了大众,因为大家忽略了一个关键变量:Harness(可以理解为模型与工作区交互的接口或驱动框架)。
Harness 的重要性
Harness 不仅决定了用户的第一印象,还是所有输入 Token 的来源,更是模型输出与工作区修改之间的桥梁。许多模型在编程时的失败并非因为不理解任务,而是因为无法通过现有的工具准确表达修改意图。作者维护着一个名为 oh-my-pi 的开源编程智能体框架,通过优化其中的编辑工具,在不改变模型本身的情况下,大幅提升了 15 个模型的编程表现。
现有代码编辑方式的缺陷
目前主流的几种代码编辑方式都有明显的局限性:
• Patch(补丁模式): 这是 OpenAI 早期使用的方式,要求模型输出特定格式的 Diff 块。但非 OpenAI 的模型(如 Grok 或 GLM)很难完美遵循这种复杂的格式,导致失败率极高。
• str_replace(字符串替换): 像 Claude Code 就使用这种方式,要求模型提供要替换的精确旧文本。这要求模型必须百分之百还原每一个空格和缩进,一旦出错就会导致“找不到字符串”的报错。
• 辅助模型合并: 像 Cursor 这样财大气粗的公司甚至专门训练了一个 70B 的模型来处理代码合并任务。
作者指出,这些方法都依赖模型去重复它已经看到过的内容,一旦模型记忆稍有偏差,整个编辑就会失败。
创新的 Hashline 方案
作者提出了一种名为 Hashline 的新方法。其核心逻辑非常简单:
1. 当模型读取文件或搜索内容时,Harness 会在每一行代码前加上一个由 2 到 3 位字符组成的哈希标签,例如 1:a3|function hello() {。
2. 当模型需要修改代码时,它不再需要重复冗长的原始代码,只需引用这些标签。例如:“替换 2:f1 行”或“在 3:0e 行后插入”。
3. 如果文件在读取后发生了变动,哈希值将不匹配,Harness 会自动拒绝修改以防止代码损坏。
这种方式让模型不再需要为了证明自己找对了地方而浪费大量 Token 去重复旧代码,也不再受空格和缩进困扰。
基准测试结果
作者针对 16 个模型进行了大规模测试,任务包括修复 React 代码库中的人为漏洞。测试结果显示,Hashline 在绝大多数模型上都优于传统的 Patch 模式:
• 性能飞跃: Grok Code Fast 1 的准确率从 6.7% 飙升至 68.3%,提升了十倍。
• 效率提升: 绝大多数模型节省了 20% 到 30% 的输出 Token。Grok 4 Fast 的 Token 消耗降低了 61%,因为它不再需要反复重试。
• 普遍适用: 即使是 Gemini 3 Flash 这样强大的模型,使用 Hashline 后准确率也提升了 8.3%。
对 AI 厂商的抨击
作者在文章末尾表达了对当前 AI 巨头做法的不满。在他进行这项研究期间:
• Anthropic 封禁了流行的开源编程智能体 OpenCode。
• 谷歌封禁了作者的 Gemini 账号,原因仅仅是因为他运行了这些基准测试。
作者认为,厂商这种封闭生态、禁止第三方 Harness 接入的做法是短视的。他通过实验证明,改进 Harness 的设计能为模型带来比单纯升级模型更显著的性能提升,而且成本极低。他认为 Harness 的优化应该是开源社区共同完成的,而不是由某个公司私有化垄断。
总结
代码编程能力的差距往往不在于模型的“魔法”,而在于工具边界上那些乏味却极其关键的工程细节。Harness 是目前创新杠杆最高的地方,它决定了模型如何表达自己。