arrow_back返回文章列表
技術1 閱讀

code-review-graph:讓 AI 程式碼審查更精準、更省 Token

code-review-graph 是一個面向 AI 程式碼助手的開源工具,它會先在本地為程式碼庫建立一張結構化的「知識圖譜」,再把真正相關的上下文交給 AI,從而避免每次任務都全量掃描整個倉庫。它基於 Tree-sitter 解析 AST,把函式、類別、匯入、呼叫關係和測試關係組織成圖結構,再透過 MCP 提供給 Claude Code、Codex、Cursor 等工具使用。

它解決了什麼問題

目前許多 AI 程式碼工具在做程式碼審查、定位影響範圍或理解改動時,會反覆讀取整個程式碼庫,這會帶來明顯的 Token 浪費與成本上升。在一個數百檔案的倉庫裡,即使只改了一個函式,AI 也可能需要重新掃描大量無關檔案,導致速度變慢、上下文雜訊增加、費用變高。

code-review-graph 的思路是把「程式碼依賴關係」預先建模出來,讓 AI 在審查時只讀取改動真正波及到的檔案,而不是靠猜測去做全量掃描。官方把這種能力稱為 blast-radius analysis,也就是「爆炸半徑分析」:當某個檔案變更後,工具會沿著呼叫、繼承、依賴和測試鏈條往外追蹤,找出所有可能受影響的程式碼。

它怎麼工作

工具首先用 Tree-sitter 把倉庫解析成 AST,並擷取函式、類別、匯入、呼叫點、繼承關係與測試覆蓋等結構資訊,再把這些資訊存到本地 SQLite 圖資料庫中。到了程式碼審查階段,AI 不再直接讀整個專案,而是先查詢圖譜,拿到一份最小上下文集合,只閱讀與當前問題直接相關的檔案和節點。

它同時支援增量更新。後續更新只會重新解析發生變化的檔案,並透過雜湊與依賴追蹤來重新整理相關節點;在一個約 2,900 個檔案的專案中,重新索引可以控制在數秒內。對 monorepo 這類大型倉庫來說,這種方式尤其有價值,因為它能從上萬檔案裡縮小到十幾個真正需要讀取的檔案。

支援的平台與工具

code-review-graph 透過 MCP 集成到多種 AI 程式碼平台中,官方快速開始與平台說明中列出的支援對象包括 Claude Code、Codex、Cursor、Windsurf、Zed、Continue、Kiro、OpenCode、Antigravity、Qwen 和 Qoder。這代表它並不侷限於某一個 AI 編輯器,而是盡量把「圖譜上下文」能力接到不同的 coding agent 或 AI IDE 上。

類型

支援的平台/工具

官方 AI 程式碼工具

Claude Code、Codex、Cursor、Windsurf、Zed、Continue、Kiro

其他已列出平台

OpenCode、Antigravity、Qwen、Qoder

集成方式

透過 MCP 接入,在支援的平台中呼叫圖譜能力

如果只想替某一個平台單獨安裝,也可以明確指定平台名稱,例如:

bash
code-review-graph install --platform codex
code-review-graph install --platform cursor
code-review-graph install --platform claude-code
code-review-graph install --platform kiro

如何使用

最基礎的使用流程很簡單:先安裝,再替 AI 工具寫入 MCP 設定,最後回到具體專案中建構圖譜。

bash
pip install code-review-graph
code-review-graph install
cd /path/to/your/project
code-review-graph build

這裡有一個非常重要、也很容易寫得不清楚的點:

如果希望避免讀者混淆,可以直接用表格對照這兩個指令的職責:

指令

是否在專案根目錄執行

作用

`code-review-graph install`

否,不要求在專案根目錄執行

偵測本機 AI 工具並寫入對應 MCP 設定

`code-review-graph build`

是,需要在目標專案根目錄執行

為當前倉庫建立本地知識圖譜並生成 `.code-review-graph/` 資料

如果編輯器本身不支援 hooks,或者希望圖譜在背景持續保持最新,還可以使用 daemon 模式。工具提供了 crg-daemon addcrg-daemon startcrg-daemon status 等指令,用來註冊多個倉庫並自動監聽檔案變化。

常用指令

除了安裝與建圖,code-review-graph 還提供一組相對完整的 CLI 能力:

指令

作用

`code-review-graph install`

自動偵測並配置所有支援的平台

`code-review-graph install --platform <name>`

只配置指定平台

`code-review-graph build`

完整解析當前程式碼庫並建立圖譜

`code-review-graph update`

僅對變更檔案做增量更新

`code-review-graph watch`

持續監聽檔案變化並自動更新圖譜

`code-review-graph visualize`

生成互動式 HTML 圖譜,也可匯出 GraphML、SVG、Obsidian vault 或 Neo4j Cypher

`code-review-graph wiki`

根據社群結構自動產生 Markdown wiki

`code-review-graph detect-changes`

做帶風險評分的變更影響分析

在支援 Slash Commands 的工具中,還可以直接使用:

來觸發對應的工作流程。

效果如何

官方基準測試基於 6 個真實開源倉庫、13 次提交進行評估,結果顯示 graph 模式相對於簡單的全量讀取,平均可以把 Token 消耗降到原來的大約八分之一,整體降低約 8.2 倍。從公開數據看,不同倉庫的收益並不完全一樣,但大部分中大型專案都有相當明顯的下降幅度。

專案

Token 減少倍數

Gin

16.4×

Flask

9.1×

FastAPI

8.1×

Next.js

8.0×

httpx

6.9×

平均

8.2×

另一個重點指標是變更影響分析的準確度。官方給出的結果是召回率(Recall)達到 100%,平均 F1 為 0.54、平均精確率(Precision)為 0.38。這說明它在策略上偏保守:寧可多提示一些「可能受影響」的檔案,也盡量不漏掉真正會被改動波及的依賴。

指標

數值

含義

Recall

100%

不漏掉真正受影響的檔案

F1

0.54

綜合衡量召回率與精確率

Precision

0.38

偏保守,可能多納入一些候選檔案

當然,這種方式並不是所有場景都佔優。在體量較小、改動又非常局部的專案中,圖譜中繪的額外上下文開銷,有時反而可能大於直接讀取檔案的成本,例如在某些單檔案變更測試中,Token reduction 甚至只有 0.7 倍。換句話說,它最適合的場景仍然是:中大型專案、多檔案改動、依賴關係複雜,以及高頻使用 AI 做程式碼審查的工作流。

適合哪些團隊

如果團隊已經把 Claude Code、Codex、Cursor 或類似工具納入日常開發流程,而且專案規模較大、模組關係複雜、Pull Request 審查頻繁,那麼 code-review-graph 的價值會非常直接。它本質上不是取代程式碼審查,而是先幫 AI 把「該讀什麼」這件事做好,讓後續的 review、除錯、架構分析和新成員 onboarding 都建立在更準確的上下文上。

對於個人專案、很小的倉庫或只是偶爾做一些簡單改動,它未必總能帶來明顯收益。但對於希望系統性降低 AI 程式碼成本、減少上下文雜訊、提升程式碼審查命中率的團隊來說,code-review-graph 已經展現出相當實用的效果。

SHARE

分享

分享這篇文章。