從「通過測試」到「可合併的程式碼」:AI 軟體工程評估的典範轉移

AI 軟體工程的真正門檻,不是模型能不能把功能做出來,而是產出的程式碼能否安全合併、長期維護,並承受真實團隊的品質要求。

從「通過測試」到「可合併的程式碼」:AI 軟體工程評估的典範轉移

AI 寫程式的能力,不該只用「能否通過單元測試」來衡量。當前的 benchmark 如 SWE-bench 雖有進展,卻也暴露出嚴重的偽陽性問題:AI 產出的程式碼即便通過測試,也常因品質低落、缺乏可維護性而無法被合併。新一代的評估標準,如 FrontierCode,正將焦點從單純的「解決任務」轉向「產出可合併、可長期維護的軟體」。這不僅是技術指標的提升,更是 AI 軟體工程邁向成熟、真正能夠與人類工程師協作的關鍵一步。

為什麼通過 SWE-bench 還不夠?

過去幾年,我們看到 AI 在程式碼生成任務上屢創佳績,許多模型在 SWE-bench 這類基準測試上取得了驚人的分數。SWE-bench 的設計是讓 AI 針對真實世界開源專案的 issue,自動生成修復用的程式碼 patch。如果這個 patch 能夠成功通過專案原有的測試案例,就算得分。這個框架無疑推動了程式碼生成模型的發展。

然而,一個愈發明顯的問題是「偽陽性」(false positive)。AI 生成的程式碼或許能「騙過」測試,但其品質卻往往經不起人類專案維護者的檢視。非營利研究機構 METR 的一份研究報告就直接指出,許多在 SWE-bench 上被判定為「通過」的 Pull Request,在真實世界中根本不會被合併到主幹(main branch)。

為什麼會這樣?原因包括程式碼風格混亂、引入新的潛在風險、可讀性差,或是沒有真正理解問題的根本原因,只是做了表面修補。這就像一位初級工程師,他寫的程式碼或許能動,卻留下了大量的技術債。在一個成熟的軟體開發流程中,這樣的程式碼是無法被接受的。

因此,當我們過度依賴這類「通過即正義」的評估標準時,其實是在鼓勵 AI 產出大量低品質、無法維護的「程式碼垃圾」(slop)。

FrontierCode:我們該如何定義「好」的 AI 程式碼?

為了解決這個問題,Cognition AI 團隊推出了名為 FrontierCode 的新一代程式碼生成 benchmark。其核心精神,是將評估的重心從「功能正確性」轉移到「軟體品質與可維護性」。這個 benchmark 的設計理念深受其前身 FrontierMath 的啟發,專注於那些對當前最強模型也極具挑戰性的困難問題。

FrontierCode 的任務是與經驗豐富的開源專案維護者共同設計的,據稱每個任務的建構都耗時超過 40 小時。它不再只看單元測試是否通過,而是引入了更全面的評估維度:

  • 迴歸安全性(Regression safety):修復是否引入了新的 bug?
  • 程式碼潔淨度(Cleanliness):程式碼是否易於閱讀和理解?
  • 範疇適當性(Scope):變更是否最小化且恰到好處?
  • 測試正確性(Test correctness):AI 新增的測試是否真的有效?
  • 可維護性(Maintainability):這段程式碼在未來是否容易修改與擴充?

在如此嚴苛的標準下,結果也更加真實。報告顯示,目前最強的模型之一 Opus 4.8,在 FrontierCode 最困難的子集上,得分僅約 13%。這個數字遠低於我們在 SWE-bench 上常見的 50% 以上的通過率。這並非代表模型退步了,而是評估的尺標終於對準了真實世界的軟體工程標準。

程式碼的價值不在於它能否「運作」,而在於它能否被團隊「接受」並長期「維護」。

從單點任務到持續整合,AI Agent 的下一步是什麼?

FrontierCode 的出現,不僅是一個 benchmark 的升級,我認為它更預示了 AI Agent 在軟體工程領域的發展方向。我們正在從要求 AI「一次性生成正確程式碼」的思維,轉向建構一個能夠「參與軟體開發流程」的協作系統。

這意味著未來的 AI 程式碼工具,其架構會變得更像一個具備目標、能夠自我驗證和迭代的代理(Agent)。開發者不再只是給出一個單點的 prompt,而是定義一個目標、一套驗證標準,然後讓 AI 在一個受控的環境中(例如 sandboxes)進行多次嘗試與修正。

這種被稱為「loops」或「state machines」的控制結構,正在成為高階 AI Agent 工程的主流範式,例如 LangChain 框架中的 Agent 概念。它讓 AI 能在反覆試錯中學習並優化,更貼近人類工程師的開發流程。

當然,這也意味著人類的角色依然至關重要。即使在最先進的自動化流程中,人類開發者仍然需要扮演監督者與決策者的角色,在關鍵節點進行審查與介入。AI 的價值,將從一個單純的程式碼產生器(code generator),演變為一個能夠處理繁瑣任務、提供高品質草稿、並在整個開發生命週期中與人類協作的智慧夥伴。

OpenAI Codex 到今天的 FrontierCode,我們對 AI 寫程式的期待已經發生了根本性的位移。真正的挑戰,不再是讓 AI 寫出能動的程式,而是讓它寫出值得被合併、值得被維護的程式。

延伸閱讀

我是江中喬,專注於 AI Agent Architecture、Memory Governance 與 Cognitive Diversity,持續研究如何打造能夠長期協作、可信任且可治理的 AI 系統。