本篇文章更新時間:2026/02/13
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知或向一介資男的 LINE 社群反應。
如果本站內容對你有幫助,歡迎贊助支持 。
內容目錄
Hashline 帶來的啟示:為什麼換一個編輯格式,就能讓 16 個模型變更強
編輯前言:這篇文章提出一個非常顛覆性的觀點:我們一直以為 LLM 的程式能力是由模型本身決定,但作者用一個下午證明,真正的瓶頸其實是「harness」。換掉編輯工具,16 個模型的成績全部提升。
本文內容取材自原文:I Improved 15 LLMs at Coding in One Afternoon. Only the Harness Changed.
核心觀點 (Key Takeaways)
- 模型不是唯一變數,harness(工具與介面層)才是被忽視的真正瓶頸。
- 現行編輯格式如 patch、str_replace 都有先天限制,導致模型常因機械性錯誤失敗,而不是因為不理解程式。
- 作者提出的 Hashline 格式,在 14/16 模型中勝出,甚至讓弱模型的通關率提升 10 倍。
深入解析
這篇文章最吸引我的是,它把「模型 vs 模型」這個典型敘事完全推翻。作者先點出現在 AI 社群的迷思:大家都在比較 GPT-5.3、Opus、Gemini,卻忽略了所有模型都必須透過某個 harness 才能真正「動手」修改程式碼。
作者在自己的開源 coding agent「oh-my-pi」中做了大量實驗,發現模型的失敗往往不是能力問題,而是 edit 工具的格式與錯誤容忍度太差。例如:
- Codex 的 patch 格式需要模型精準輸出 diff 結構,非 OpenAI 模型常常完全講錯語法。
- Claude、Gemini 等用的 str_replace 需要百分之百複製舊內容、甚至包含空白,稍微不一致就報錯。
- Cursor 為此甚至訓練了一個 70B 模型只為合併修改,可見難度之高。
作者說得很直白:「The format matters as much as the model.」
Hashline 的關鍵點:給模型一個穩定、不需背誦內容的 Anchor
作者提出的 Hashline 格式非常優雅:
每行在回傳給模型時都附上一個 2~3 字元的內容 hash。模型在編輯時只需引用 hash,而不是背誦舊內容。
例如:
11:a3|function hello() {
22:f1| return "world";
33:0e|}
模型可以發出指令:「replace line 2:f1」或「insert after 3:0e」──不需要重現舊的 function body,更不用硬記空白字元。
如果文件被改動過,hash 就會對不上,直接拒絕,避免檔案被破壞。
Benchmark:換工具,模型能力爆炸式提升
作者對 16 個模型、3 種工具(patch/replace/hashline)做了完整基準測試:
- Patch 幾乎是全面最差。
- Replace 還不算太糟,但非常仰賴模型對字串的精準記憶。
- Hashline 在大多數模型中獲勝,尤其對弱模型效果特別誇張。
最強案例:Grok Code Fast 1 的成功率從 6.7% → 68.3%,因為模型不再因為 diff 語法失敗而重試爆 token。
作者結語很到位:
你以為模型理解錯,其實是它沒辦法表達。You’re blaming the pilot for the landing gear.
筆者心得與啟發
這篇文章讓我反思很久。過去我們太容易在 model card、benchmark 上打轉,卻忽略了 AI coding agent 的成敗其實取決於 工具層的工程品質。
更讓我驚訝的是,作者還提到 Google 和 Anthropic 都對第三方 harness 社群採取消極甚至封鎖的態度。從技術觀點來看這種策略很可惜,因為:
- Harness 是跨模型通用的改良機會。
- 厂商自己永遠不會替競品的模型調整工具。
- 開源社群卻能做到「一次改善,全部模型收益」。
看完這篇文章,我更確信一件事:
未來 AI coding 的突破,不會只來自模型本身,而是來自一群願意改善工具層的工程師。
對於實作 coding agent 的人,我強烈建議:
- 不要把模型的失誤都歸咎於模型。
- 試著檢查你的工具層是否讓模型陷入不必要的機械錯誤。
- Hashline 這種做法,也許會成為未來的默契格式,值得關注。
這篇文章讓我看到一個很具前瞻性的觀點:模型是引擎,但 harness 才是讓引擎能真正發揮的變速箱。如果我們持續忽略它,再強的模型都沒辦法跑出真實能力。
