GPT-5.6 Luna vs. GPT-6 Astra 程式碼審查對比
執行摘要
GPT-5.6 Luna 是進行一般程式碼正確性審查的成本效益型替代方案,其發現已驗證錯誤(bugs)的數量為 GPT-6 Astra 的 75%,而成本僅為後者的 3.6%。然而,Luna 在安全性敏感領域(特別是身分驗證與權限邏輯)表現出顯著的性能差距,這使得它在缺乏人類或高能力模型監督的情況下,不適合用於高風險的程式碼審查。
性能與成本比較
在針對 AI-Code-Review-Evals 組織的 50 個公開 Pull Request 的基準測試中(包含來自 Cal.com、Sentry、Discourse、Keycloak 與 Grafana 的程式碼),測試了 GPT-5.6 Luna 與 GPT-6 Astra 在識別真實錯誤並忽略風格與文件問題的能力。
關鍵指標
| 指標 | GPT-5.6 Luna | GPT-6 Astra |
|---|---|---|
| 已驗證錯誤數量 | 69 | 92 |
| 精準度 (已驗證/總發現數) | 74% | 96% |
| 總成本 (50 個 PRs) | $0.20 | $5.66 |
| 單個已驗證錯誤成本 | $0.0030 | $0.061 |
| 平均每次審查時間 | 23s | 36s |
Luna 的成本優勢非常顯著:單次審查的成本約為 $0.0041,而 Astra 的成本為 $0.113。就每個已驗證錯誤而言,Astra 的成本是 Luna 的 20 倍。
模型弱點分析
安全性與授權差距
Luna 在審查身分與存取管理 (IAM) 程式碼時,性能大幅下降。在專注於身分驗證與權限邏輯的 Keycloak 程式碼庫中,Luna 僅發現了 6 個已驗證錯誤,而 Astra 則發現了 14 個。
以錯誤類型為基準,Luna 僅識別出 24 個已驗證安全性錯誤中的 9 個,而 Astra 則識別出 19 個。該基準測試突顯了廉價模型在處理「全域」邏輯時的困難——即錯誤並非出現在單一程式碼行,而是源於變更如何影響整體的權限模型。
精準度與雜訊
Luna 的精準度顯著低於 Astra。憑藉 74% 的精準度,Luna 的發現結果中大約每四個就有一個是誤報(false positive)。這會為開發者帶來「雜訊」問題,如果誤報率過高,開發者可能會開始忽略 AI 的建議。
互補優勢
儘管 Astra 的整體表現優於 Luna,但 Luna 發現了 25 個 Astra 錯過的已驗證錯誤。在測試池中總共 143 個已驗證錯誤中,44 個是由兩個模型同時發現的。若在每個 Pull Request 上同時使用兩個模型,總共可以識別出 117 個錯誤(佔總數的 82%),總成本為 $5.86。
社群洞察與反論點
業界從業者針對這些模型在實際工作流程中的應用提出了幾種關鍵觀點:
- 誤報的成本: 多位開發者認為,與處理誤報的工程成本相比,每個 PR 的 $0.10 價差是微不足道的。一位使用者指出:「處理誤報是很昂貴的。」
- 整合策略: 有人建議 AI 不應直接接入 CI/CD 流水線。相反,應該由 PR 作者或人類審查員來使用 AI,以便在建議傳達給作者之前先過濾雜訊。
- 代理型工作流程 (Agentic Workflows): 資深使用者推薦「協調員」方法。例如,使用高能力模型(如 Fable)來協調多個專門的子代理 (如 Luna) 來處理特定領域(如複雜度或性能),然後再進行結果合成。
- 「合理性」陷阱: 一位開發者警告不要信任低能力模型,因為它們「聽起來比實際合理更擅長聽起來合理」,這可能導致人類的懈怠,並累積「微小」的錯誤,最終導致系統性失敗。
研究方法論
本研究使用了 50 個刻意引入缺陷的公開 Pull Request。研究結果由雙重審查系統驗證:只有當 GPT-6 Astra 與 GPT-5.6 Sol 均同意該問題是真實錯誤時,該問題才會被計為「已驗證」。模型被提供 diff 與沒有額外的程式碼庫歷史或呼叫圖 (call graphs)。價格基於 Luna 的 $0.20/$1.20 (input/output) 與 Astra 的 $10/$50 每百萬 token 進行計算。
Sources
相關
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch