
為 AI 代碼審查構建本地代碼結構圖code-review-graph 如何省 65 倍 token【免費下載鏈接】code-review-graphLocal-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.項目地址: https://gitcode.com/GitHub_Trending/co/code-review-graph你讓 AI 審查一處改動它卻先把 14 萬 token 的代碼庫通讀一遍才肯開口——這是 AI 代碼審查最大的浪費之一。code-review-graph 就是沖著這個問題來的它在本地把代碼倉庫解析成一張持久化的代碼結構圖通過 MCP可以理解為讓 AI 調用標準工具的插座和命令行把這張圖接入 AI 助手讓它每次只拿到回答當前問題所需的最小上下文。圖始終留在你自己的機器上不經過任何云服務。把代碼庫變成一張可查詢的圖核心思路很簡單先把代碼變成關系。code-review-graph 用 Tree-sitter一個把源碼變成結構化語法樹的解析器解析每個文件抽出兩類東西節(jié)點即函數、類、導入語句邊即節(jié)點之間的調用、繼承、測試覆蓋等關系。整張圖持久化在.code-review-graph/目錄下的一個 SQLite 文件里不需要外部數據庫也不需要云端服務。解析邏輯在 code_review_graph/parser.py 中覆蓋 Python、JavaScript/TypeScript/TSX、Go、Rust、Java、C/C、C#、Ruby、Kotlin、Swift、PHP、Solidity、SQL、shell 腳本等連 Jupyter/Databricks Notebook.ipynb也在支持之列。它優(yōu)先使用 Tree-sitter必要時回退到專用解析器想支持自己團隊的語言還可以走 custom_languages 的擴展機制。有了這張地圖之后誰調用了這個函數這個類被哪些測試覆蓋就不再是全文檢索問題而是一次圖查詢。AI 助手可以通過 query_graph 工具按需查詢調用方、被調用方、測試、導入、繼承等關系。裝完、建圖、問出第一句結論門檻很低Python ≥ 3.10PATH 里有 git。三條命令完成安裝和建圖pip install code-review-graph code-review-graph install code-review-graph buildinstall會自動檢測你在用哪些 AI 編碼工具Codex、Claude Code、Cursor、Windsurf、Kiro 等為每一個寫入對應的 MCP 配置并把支持圖查詢的指令注入平臺的規(guī)則文件一次安裝配好所有平臺等于直接給你的 AI 助手接上了 MCP 代碼智能。安裝完成后重啟編輯器或工具即可。build負責解析整個代碼庫約 500 個文件的項目大概 10 秒建完。建好之后在任何接入的 AI 助手里輸入這句話觸發(fā)Build the code review graph for this project從此助手手里有 30 個圖工具可以調用從 get_minimal_context 那種約 100 token 的超緊湊上下文起步另外還有 5 個工作流模板審查、架構、調試、入職、合并前檢查以 MCP 提示詞形式提供。所有工具統(tǒng)一注冊在 code_review_graph/main.py。它到底怎么省 token影響范圍分析與 2 秒增量索引省 token 靠的是兩個機制。影響范圍分析Blast Radius某個文件變了圖沿依賴邊做 BFS 遍歷默認深度 2 層、結果帶上限把可能受影響的調用方、依賴方和測試一網打盡。AI 不再掃描整個項目只讀這些文件。審查 PR 時detect_changes 工具還會把 diff 映射到受影響的函數、執(zhí)行流和測試缺口并附上風險評分。增量代碼索引開啟鉤子或 watch 模式后保存文件即觸發(fā)增量更新——先用 git diff 找出變更文件再用圖自身的導入/調用邊找出依賴方最后只重新解析 SHA-256 哈希確實變化的文件。即便約 2,900 個文件的項目也能在 2 秒內完成重索引。邏輯位于 code_review_graph/incremental.py并行解析的 worker 數默認取 CPU 核數與 8 的較小值。效果擺在這里flask 倉庫上通讀整個語料要 143,594 個 token而圖給出的答案只要 2,196 個——從 143,594 到 2,196約 1/71。項目自身倉庫里208,821 個源碼 token 會收斂為每次提問約 3,190 個約 1/68。倉庫越大這個差距越夸張。 實測6 個真實倉庫的可復現數據上面的數字不是宣傳口徑。項目自帶一套自動化評估器code-review-graph eval --all會克隆 6 個真實開源倉庫共 13 個提交并把每個基準重跑一遍token 效率用 5 個樣本問題比如認證如何工作主入口點是什么在 6 個倉庫上取平均削減范圍 36×–376×中位數約 65×fastapi 上達到 375.6×即從 948,793 到 2,653約 1/376。影響精度graph-derived 模式下平均 F1 為 0.693。項目明確標注這一口徑是循環(huán)上界——基準答案本身就來自圖應把它當上限看而且過預測是刻意設計漏掉一個依賴比多讀一個文件糟糕得多。多跳檢索11 個任務平均得分 0.909每個任務都是先用混合搜索找到錨點節(jié)點、再沿圖走一跳的兩跳工具鏈。估算校準圖回答側采用 chars/4 的近似與 OpenAI 的 cl100k_base 分詞器對照后聚合誤差在 0.5% 以內222 個文件、2.2 MB 混合源碼。裝上 tiktoken 后跑code-review-graph detect-changes --brief --verify還能在 Token Savings 面板加一行Verified (tiktoken)對照真實分詞。整套流程是釘死的上游倉庫鎖定固定 SHA社區(qū)檢測固定隨機種子默認 42嵌入走 CPU 推理——兩臺機器跑出來的結果只會有浮點級差異。完整步驟和捕獲環(huán)境寫在 docs/REPRODUCING.md。 進階玩法 語義搜索與嵌入后端默認狀態(tài)下圖里已有關鍵詞 FTS5 全文的混合搜索。想要語義搜索裝上 embeddings 可選依賴再挑一個后端本地 sentence-transformers默認模型 all-MiniLM-L6-v2全在機器上跑、OpenAI 兼容端點官方 OpenAI、Azure或 vLLM、LiteLLM、LocalAI 這類自建網關設置環(huán)境變量后給 embed_graph 傳 provideropenai 即可、Google Gemini 或 MiniMax設置對應 API Key。一個提醒目前只嵌入函數簽名每節(jié)點約 10 個 token函數體還沒納入別指望長上下文模型在這種輸入長度上拉開多大差距。圖可視化與導出到別的工具code-review-graph visualize生成 D3.js 力導向布局的交互式 HTML 頁面支持搜索、社區(qū)圖例切換、按度數縮放節(jié)點。加--format參數還能導出 GraphMLGephi、yEd 可直接打開、SVG 靜態(tài)圖、帶 wiki 鏈接的 Obsidian 庫或 Neo4j Cypher。多倉庫管理與 watch/鉤子自動保鮮register可以把多個倉庫放進同一個注冊表repos列出它們cross_repo_search 工具跨全部倉庫搜索。日常保鮮靠兩樣watch在你干活時持續(xù)更新圖git 鉤子在每次提交時自動觸發(fā)更新你基本不用手動想起update。配置要點默認只索引 git 跟蹤的文件走 git ls-files被 gitignore 的文件天然跳過。要排除被跟蹤的路徑在倉庫根目錄建一個.code-review-graphignoregenerated/** *.generated.ts vendor/** node_modules/**可選依賴按 extras 安裝最常用的兩行pip install code-review-graph[embeddings] # 本地向量嵌入 (sentence-transformers) pip install code-review-graph[communities] # Leiden 社區(qū)檢測 (igraph)最常用的三個環(huán)境變量CRG_OPENAI_BASE_URLOpenAI 兼容端點地址、CRG_OPENAI_API_KEY密鑰、CRG_OPENAI_MODEL模型名。base URL 指向 localhost 時會自動跳過云端出口警告。項目采用 MIT 許可證。適合誰經常讓 AI 助手審查較大代碼庫、需要快速摸清改動影響范圍、或受夠了 token 賬單的開發(fā)者可以直接把它納入日常工具鏈——裝一次鉤子保持圖新鮮AI 只讀該讀的切片。誰不需要如果你的倉庫只有幾十個文件全量上下文的成本本就低圖的收益有限如果團隊不愿意維護任何本地工具本地優(yōu)先這套方案的優(yōu)點也發(fā)揮不出來。延伸閱讀均為倉庫內文檔README.md完整功能與基準細節(jié)docs/FEATURES.md功能說明docs/USAGE.md使用手冊docs/COMMANDS.md命令行參考docs/architecture.md架構文檔docs/schema.md數據庫模式【免費下載鏈接】code-review-graphLocal-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.項目地址: https://gitcode.com/GitHub_Trending/co/code-review-graph創(chuàng)作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考