AI 寫程式的祕密不只在大腦:拆開 11 個 Coding Agent,看看它們的「身體」長什麼樣!

以下為虛構對話,人物與情節為創作,科學內容來源標註於文末。
▌一百行的勝利
窗外在下雨。
Dg 把論文印出來的那一頁拍在桌上。
「K,你看。一個只有一百行的程式,成績跟一百萬行的差不多。所以大的那些都是白寫的。」他挺起胸,「愛因斯坦說過:一切都應該盡可能簡單,但不能過於簡單。」
「結論錯。」
門口傳來一聲輕咳。
Aon 靠在門框上,手裡抱著要還給 K 的書。
「等一下。那句話,愛因斯坦在哪裡說的?」
「呃……名言啊。」
「名言也要有出處。」Aon 走進來,把書放下,「那個精簡版本,找不到他親筆寫過的紀錄。比較接近的是他 1933 年一場演講裡的一段話,很長,意思也不完全一樣。」
Dg 張著嘴。
「再來,」Aon 拿起那頁紙,「『成績差不多』,誰算的?」
K 喝了口咖啡。「各家自己公布。」
「模型一樣嗎?測的日期一樣嗎?」
「都不一樣。」
「那就不是同一場考試。」Aon 把紙放回桌上,「考生不同、考卷版本不同,只是分數剛好長得像。這種數字拿來比,跟拿兩個學校的段考成績比誰聰明差不多。」
「論文也把那張表拿掉了。」K 說。
▌支點與槓桿
Dg 不甘心,手指在桌上敲了兩下。
「那阿基米德呢?『給我一個支點,我就能舉起地球。』」
「那是幾百年後的人轉述的。」Aon 幾乎是反射地回,「他自己的著作裡沒有這句。」
「……可是意思是對的吧?」
K 放下杯子。
「意思對。那根槓桿,就是 harness。」
「harness?」
「模型以外的全部。」
Aon 接過話,語速開始變快。
「所以這篇論文不是在比哪個模型強。是在比——同一個腦袋,被放進什麼樣的身體。迴圈、工具、記憶、權限,全部拆開來看。」
「那一百行的那個……」
「只有一個工具。」Aon 說,「但你要先問:它解的是什麼題?那份考卷只考修 bug。大系統多出來的幾十萬行,在處理權限、外掛、好幾個 AI 分工,那些考卷根本沒出題。」
「所以不是白寫。」
「是考卷沒考。」
Dg 低頭看那頁紙,慢慢點頭。
▌十一分之九
「還有一個地方。」Aon 已經翻到下一頁,「『沒有任何系統用 LangChain、沒有任何系統用向量檢索』——這句話你剛剛是不是想拿去當標題?」
Dg 的筆停在半空。
「十一個系統。」Aon 豎起一根手指,「能代表整個產業嗎?」
「不能。」K 說,「論文自己寫了。」
「對。那就只能說『這十一個沒用』,不能說『大家都不用』。SKILL.md 九個支援,九是分子,分母是十一,不是全世界。」
「你很囉唆。」
「是你跳步驟。」Aon 頭也沒抬,「Claude Code 那份還是三月外流的快照,跟其他系統不是同一個時間點抓的,這也要註明——」
「四月所有系統都寫『不准自動 commit』。」K 打斷他,「七月,有的反過來教,有的直接刪掉。」
Aon 終於停下來。「……規則移到哪了?」
「設定檔。由程式擋。」
Dg 盯著那頁紙很久。
「所以……腦袋沒換。是手跟規矩換了,做出來的事就不一樣。而且考卷只看得到一部分。」
「嗯。」
Dg 翻開筆記本,把「愛因斯坦:盡可能簡單」那一行劃掉,在旁邊寫下「先查是誰說的」,又在下面補了一行:「模型+harness,分母是十一」。
Aon 從 K 的印表機抽了一張廢紙,背面寫下「1933 演講原文、Pappus 原文、各系統抓取版本日期」,對折兩次,收進襯衫口袋。
大家都在比哪個 AI 模型比較聰明,但有一組研究者做了件更實在的事:把 11 個 AI 寫程式工具的原始碼一行一行讀完。結果發現,真正讓它們能動手做事的,是模型以外那一大套「裝備」。而且,一個只有大約 100 行的迷你版,成績居然能跟大上千倍的系統站在同一區。
關鍵亮點
- 大家都自己動手做:11 個系統、加起來約 400 萬行程式碼,沒有一個用現成的「AI 代理組裝套件」(像 LangChain),全都自己從頭寫。
- 找資料靠 Ctrl+F 的升級版:沒有一個用時下流行的「語意搜尋」來找程式碼,而是用類似關鍵字搜尋的老方法。
- 外掛規格已經有人勝出:一種叫 SKILL.md 的「技能包」格式,11 個系統裡有 9 個支援。
- 規矩會隨信任消失:「不准 AI 自己存檔送出」原本是所有系統的共同規定,三個月後已經有系統直接刪掉這條。
一、大腦和身體:Agent 到底是什麼
模型是大腦,harness 是讓大腦能動手的身體和工具箱。
先搞懂一個詞:harness
你可能聽過 Claude Code、Codex、Gemini CLI 這些名字,它們都是「coding agent」,也就是會自己讀程式、改程式、跑測試的 AI 助手。
一般人會以為,它們厲不厲害全看背後的 AI 模型。但 2026 年 7 月一篇來自 Wavestone AI Lab 的論文提出一個更好懂的公式:
Agent = 模型 + harness
打個比方:模型是廚師,harness 是整間廚房。爐子、刀具、冰箱、食譜架、還有「刀子用完要歸位」這種規矩,全都算在 harness 裡。同一位廚師,進到設備齊全的廚房和只有一支卡式爐的露營區,做出來的菜當然不一樣。
harness 這個詞大約在 2026 年 2 月開始流行,「harness engineering」(打造這間廚房的學問)也成了新的熱門話題。
研究者怎麼做
這組研究者沒有讓 AI 去考試、也不排名次,而是直接翻開原始碼來讀,像拆開手機看裡面的零件。他們把一間「廚房」拆成七個區塊:
- 執行迴圈:AI 想一下、做一步、看結果、再想一下的循環
- 跟模型溝通的方式
- 工具:AI 能用哪些「手」,例如讀檔、執行指令
- 記憶:怎麼記住前面做過什麼
- 安全權限:什麼事可以做、什麼事要先問人
- 多代理分工:好幾個 AI 一起合作
- 擴充性:能不能裝外掛
廚房真的會影響菜色
另一項研究幫這個論點補了證據。Lin 等人讓 AI 自己改良自己的「廚房」,結果在一項程式任務測驗中,成績從 69.7% 進步到 77.0%。而且進步的來源是工具、中介機制和長期記憶,不是改寫給 AI 的指示文字。也就是說:廚師沒換,換了廚房,菜就變好吃了。
二、大家都沒用的東西
現成套件?不需要
這份研究最好玩的發現,是「什麼東西沒出現」。
市面上有很多幫你快速組裝 AI 代理的套件,像 LangChain、AutoGen,概念有點像「IKEA 組合家具」。但這 11 個正式上線的系統,沒有一個用這些套件,連 Google 自己的 Gemini CLI 也沒用 Google 自家的版本。大家都選擇自己手工打造。
為什麼?因為寫程式的 AI 需要精準控制每一個動作。組合家具方便,但想把抽屜改成左開,就得整個拆掉重來。Anthropic 在 2024 年也建議過:先從簡單的做法開始,對這類套件保持謹慎。
流行的語意搜尋?也不需要
現在很多 AI 產品會用「向量檢索」找資料,概念是把每段文字轉成一串數字,用「意思相近」來找東西,好比圖書館員依照書的主題幫你推薦。
但這 11 個系統找程式碼時,全都不用這招,而是用:
- 關鍵字搜尋工具(像超強化版的 Ctrl+F)
- 程式結構分析工具(看懂哪段是函式、哪段是變數)
- 檔名比對
- 專案裡的說明檔:例如一份叫 AGENTS.md 的檔案,像是貼在廚房牆上的「本店規矩」
理由很直覺:程式碼一天改好幾次,事先建好的「主題索引」很快就過時了。每次現場用 Ctrl+F 找,永遠拿到最新版。
記憶快滿了怎麼辦
AI 能一次記住的內容有上限,像一張大小固定的工作桌。工作越久,桌上堆的紙越多。11 個系統中有 7 個的做法是:桌子快滿時,請 AI 把舊資料整理成一份會議紀錄,再把原稿收掉。
各家細節不同:Claude Code 會預留一塊空間(約 13,000 個 token,token 可以想成 AI 計算字數的單位);Gemini CLI 則在桌面用掉一半時開始整理,並保留最近 30% 的內容不動。Hermes 比較特別,它不改寫舊紀錄,而是直接開一本新筆記本,並在封面註明「接續上一本」。
三、100 行打天下?規模不等於實力
工具數量從 1 個到 109 個以上,程式規模相差上千倍。
小而強的 Mini-SWE-Agent
論文的第一個觀察很反直覺:Mini-SWE-Agent 只有大約 100 行程式碼,只給 AI 一個工具(下指令的終端機),但它自己公布的修 bug 測驗成績,跟大上千倍的系統落在同一個範圍。
這好比一位廚師只拿一把菜刀,做出來的菜跟五星級廚房差不多。這不是第一次出現:2024 年有個叫 Agentless 的研究,用固定的三步驟(找問題、修問題、檢查)就跟當時許多複雜系統打成平手。
規模比較表
| 系統 | 工具數量 | 程式規模 | 自己公布的修 bug 測驗成績(2026 春) |
|---|---|---|---|
| Mini-SWE-Agent | 1 | 約 100 行 | 74%+ |
| Claude Code | 43 | — | 72.7% |
| Hermes | 69 | 約 64.2 萬行 | — |
| OpenCode | — | 約 57.8 萬行 | — |
| Codex | — | 約 110 萬行 | 69.1% |
| OpenHands | — | — | 77.6% |
| OpenClaw | 109+ | — | — |
⚠️ 這些成績都是各家自己公布的,用的 AI 模型、時間、設定都不一樣,就像不同學校的段考成績,不能直接比。論文本身也把這些數字從主要表格拿掉了。測驗名稱是 SWE-Bench Verified,一套用真實程式 bug 出題的考卷。
那大系統多出來的程式碼在幹嘛?
答案是「上班需要的東西」:權限管理、外掛、多個 AI 分工、跟各種編輯軟體整合。這些功能不會讓考試分數變高,但決定了這個 AI 能不能真的放進公司裡用。考試考的是「會不會解題」,規模反映的是「能不能上工」,兩件事不一樣。
四、從工具變成平台:外掛之戰
三種規格的採用率
論文認為,2026 上半年這些 AI 助手已經從「一個工具」變成「一個平台」。平台的關鍵,就是能不能裝外掛。目前有三種主要規格:
- SKILL.md(技能包,教 AI「某件事怎麼做」):11 個裡有 9 個支援
- MCP(連接外部工具與資料的插座):8 個
- ACP(讓 AI 助手接到編輯軟體,或被其他 AI 助手呼叫):6 個
可以把 MCP 想成電源插座,讓 AI 接上外面的電器;SKILL.md 比較像食譜卡,告訴 AI 某道菜的做法。
需要時再拿出來
工具一多,全部一次告訴 AI,光是說明書就會塞爆工作桌。於是有了「延遲載入」:先只給 AI 一本目錄,需要哪個工具再去翻那一頁。這招原本只有 Claude Code 在用,後來 Codex、Hermes、OpenCode 都跟進。技能包能勝出,也是因為它天生就是「用到才打開」的設計。
廚房裡開廚房
ACP 帶來一個有趣的現象:OpenHands 可以把 Claude Code、Codex、Gemini CLI 當成可以替換的「後台廚房」來呼叫。一間廚房可以外包給另一間廚房,競爭的層級又往上跳了一格。
五、三個月就變了一輪
同一批系統隔三個月再看一次,變化快到像換了一代。
從「長得像」到「直接抄」
研究者把同一批系統隔了一季再讀一次,發現大家已經從互相參考變成直接模仿。Codex 一字不改地採用 Claude Code 的設定用語,還做了「從 Claude Code 搬家過來」的匯入功能;OpenHands 可以直接讀 Claude Code 的外掛。
最誇張的是 Pi:用某些 Claude 付費帳號登入時,它會整套假扮成 Claude Code,連身分資訊和工具名稱都照抄。
規矩從「口頭交代」變成「寫進合約」
另一個趨勢是,原本寫在給 AI 的指示裡的規矩(像口頭叮嚀「不要亂動這個」),正在搬進設定檔,由系統直接擋下。口頭交代要靠 AI 自己聽話;寫進設定檔,就是不管 AI 想不想,系統都不讓它做。
「不准自己存檔」這條規矩不見了
寫程式時有個動作叫 commit,可以想成「正式存檔並記錄這次改了什麼」。2026 年 4 月,所有系統都叮嚀 AI:不要自己 commit。到了 7 月,Mistral Vibe 反過來教 AI 怎麼 commit,Codex 的新版指示乾脆把這條刪了。
就像新進員工剛來時,主管會說「寄信給客戶前先給我看」;等到信任建立了,這句話自然就不說了。AI 越被信任,規矩就越少。
改檔案的方法也在變
AI 要怎麼把「我想改這裡」精準落實到檔案上,各家還在摸索。Mistral Vibe 三個月內從「大概對得上就改」換成「一字不差才改」;Gemini CLI 則加了一道補救:改失敗時,再請 AI 幫忙修正那次修改。
六、先別急著下結論
安全規則不在指示裡
一個值得注意的發現:11 個系統給 AI 的指示裡,都沒有寫「遇到某些要求要拒絕」這類規定,安全把關交給 AI 模型本身和提供模型的公司處理。
另外,「沙盒」(讓 AI 在隔離的房間裡做事,搞砸了也不會波及整台電腦)並不會因為系統變大就自動出現。Hermes 有約 64.2 萬行程式碼,卻完全沒有作業系統層級的隔離;OpenCode 約 57.8 萬行,也只有規則層面的限制。
不過 Hermes 有個貼心設計:如果 AI 改了程式,卻沒有任何檢查過的證據就想說「我做完了」,系統會直接駁回,要它先驗收。就像老師不收沒寫計算過程的考卷。
這份研究的限制
- Claude Code 的部分,分析的是 2026 年 3 月外流的原始碼,論文自己也說現在的版本可能不一樣了。
- 研究沒有實際測試效能,成績比較都來自各家自己公布的數字。
- 關於產業動態(收購、服務終止、人氣排名)的部分,論文自己註明沒有經過原始碼查證。
- 這是單一團隊、在單一時間點寫的預印本,還沒經過同行審查。
- 「沒人用現成套件、沒人用語意搜尋」只是這 11 個系統的狀況,不能直接說整個業界都這樣。
在這之前,Rombaut 的〈Inside the Scaffold〉也用讀原始碼的方式分析了 13 個開源 AI 程式助手,但沒有納入 Claude Code。兩份研究可以互相對照著看。
常見問題(FAQ)
Q1:harness 和 LangChain 這類套件差在哪? 套件像 IKEA 組合家具,是拿來「組裝」AI 代理的零件包;harness 則是 AI 實際上班的整間工作室,包含做事的流程、工具、記憶和規矩。研究發現,正式上線的 AI 程式助手都選擇自己蓋工作室。
Q2:為什麼不用聽起來更聰明的語意搜尋? 程式碼改得太頻繁,事先整理好的「主題索引」很快就過時。每次直接用關鍵字現場找,雖然看起來土,但保證拿到最新版本,也更接近工程師平常找東西的方式。
Q3:100 行的小程式真的能跟大系統比嗎? 在修 bug 測驗上,自己公布的成績確實差不多。但大系統多出來的是上班需要的功能,像權限、外掛、分工,這些不會反映在考試分數上。而且各家用的模型和時間都不同,不能直接分高下。
Q4:SKILL.md 和 MCP 是對手嗎? 不太算。MCP 像電源插座,把外部工具接進來;SKILL.md 像食譜卡,教 AI 某件事怎麼做。大多數系統兩種都支援。
Q5:指示裡沒寫安全規則,代表這些 AI 不安全嗎? 不能這樣推。安全把關是交給 AI 模型本身、提供模型的公司,以及系統的權限和沙盒機制,而不是靠指示文字。比較需要留意的是,有些大型系統缺少讓 AI 在隔離環境中工作的保護。
結論
這份研究提醒我們:討論 AI 有多會寫程式時,別只盯著「大腦」,也要看看它被放進什麼樣的「身體」和「工作環境」。目前的答案出乎意料地樸素:自己手寫的簡單流程、現場用關鍵字找資料、需要時才打開的技能包,比華麗的現成套件和語意搜尋更受青睞。
更值得追蹤的是變化速度。短短三個月,各家開始互相搬設定、抄介面;給 AI 的叮嚀隨著信任越來越少,真正的限制則搬進系統設定由程式把關。這些 AI 助手正在從單一工具長成平台,平台之間的界線也越來越模糊。
接下來的問題是:AI 越來越聰明之後,這間「廚房」會變簡單還是變複雜?從目前的趨勢看,很可能兩件事會同時發生:對 AI 的管束越來越少,跟其他系統的串接越來越多。
延伸搜尋
- Harness engineering
- Model Context Protocol
- Agent Skills SKILL.md
- SWE-bench Verified
- Context engineering
參考資料來源
- Harness Engineering: Anatomy, Architecture, and Evolution of Coding Agents — A Source-Code Study of Eleven Systems(arXiv:2609.00006)
- Inside the Scaffold: A Source-Code Taxonomy of Coding Agent Architectures
- Agentic Harness Engineering: Observability-Driven Automatic Evolution of Coding-Agent Harnesses
- What makes a harness a harness: necessary and sufficient conditions for an agent harness
- Dive into Claude Code: The Design Space of Today’s and Future AI Agent Systems
- Agentless: Demystifying LLM-based Software Engineering Agents
- OpenHands: An Open Platform for AI Software Developers as Generalist Agents
- SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering
- Building effective agents(Anthropic Engineering)
- Effective context engineering for AI agents(Anthropic Engineering)