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