AI News HubLIVE
站內改寫2 分鐘閱讀

具有高階判斷力和嚴格評分標準的AI程式碼審查工具

lazycoder是一個程式碼審查代理,它對每個更改的程式碼塊應用固定的17條規則(R1-R17),執行沙盒檢查,並返回APPROVE、REQUEST_CHANGES或BLOCK的裁定。它設計為確定性、一致性和可審計的,具有配置驅動的策略和作為迴歸門的評估套件。

來源Hacker News AI作者: aisonalab

lazycoder 是一款基於人工智慧的程式碼審查工具,旨在模擬資深開發者的判斷力。它會對每次程式碼變更中的每個修改塊應用一套固定的審查標準(包含17條規則,從R1到R17),並執行真實的沙盒檢查,最終給出明確的裁定:透過(APPROVE)、請求修改(REQUEST_CHANGES)或阻止合併(BLOCK)。

該工具的核心設計哲學是確定性優先。所有可以純邏輯實現的部分都採用純邏輯,而將非確定性的語言模型(LLM)作為最後接入的元件。這種故障隔離策略確保當審查出現問題時,問題必然出在提示詞或模型本身,而非底層管道——因為管道已經透過充分的測試證明其可靠性。

lazycoder 的審查規則集(R1-R17)涵蓋了程式碼層面(資料結構、控制流、輸入輸出、失敗模式、副作用、依賴)、安全層面(驗證、金鑰、注入)、簡潔性、系統層面(狀態、同步與非同步、單體與微服務、不變數)以及可維護性、測試和相容性。每一條規則都必須被評估,否則無法給出透過裁定。

配置採用宣告式檔案,儲存在 config/ 目錄下,包括專案上下文、防護欄、執行時設定、工作迴圈、審查規則、生產就緒檢查、評估集和可觀測性配置。這些檔案可以像程式碼一樣被審查、對比和替換。

lazycoder 的評估套件(config/evals.json)包含已知有缺陷和已知正確的案例,用於衡量審查工具本身的效能。作為CI門禁,它形成了一個閉環:審查工具有了自己的審查者,每次變更後都能檢測自身是否仍然可靠。

該工具的開發嚴格遵循測試驅動開發(TDD),所有行為都先紅後綠。領域模型使用嚴格的pydantic模型,使得無效狀態無法表示。例如,透過的規則不能帶有發現項,失敗的必須帶有。每個發現項必須引用規則ID和精確的檔案:行號。

目前,lazycoder 已經實現了端到端管道:從差異解析、規則評估到彙總裁定。它支援兩種模式:假客戶端(用於測試,無需網路和API金鑰)和真實客戶端(可選的Anthropic API整合)。在首次真實執行中,模型檢測到了E3評估案例中的SQL隱碼攻擊漏洞,觸發了R7規則並給出了BLOCK裁定。

未來的路線圖包括:在完整評估集上執行真實模型並追蹤評分,以及釋出GitHub Action以使該工具能直接作為PR門禁。

lazycoder 並不能完全取代人類審查者——重要決策仍需人工確認。但它消除了人類不擅長的部分:記住所有17條規則、在200個檔案中保持一致性、以及證明檢查確實執行過。

具有高階判斷力和嚴格評分標準的AI程式碼審查工具 | AI News Hub