Graphify - 程式碼庫轉知識圖譜的 AI 程式設計助手技能
Graphify-Labs/graphify
將任意程式碼資料夾、SQL 模式、文件、圖片、影片轉為可查詢的知識圖譜,支援 Claude Code、Cursor 等 15+ AI 程式設計助手,本地解析無需 LLM
成熟度:維護活躍,最近提交今天,504 個 open issues 顯示社群反饋積極,30 字內
项目体检
部署 · Docker 单容器部署,暴露 8080 端口提供 HTTP MCP 服务,需挂载 graph.json 数据卷,非 root 用户运行
成本 · 代码解析开箱即用无需外部服务,文档/图片/视频处理依赖 AI 助手的模型或自配 API Key
技术 · Python 3.10+,基于 tree-sitter 多语言 AST 解析器 + NetworkX 图计算 + Leiden 社区检测算法
许可 · MIT 协议,可自由商用、修改和分发
活跃 · 最新版本 v0.9.16 发布于今日,155 位贡献者,8.6 万 stars,活跃度极高
解決什麼
傳統程式碼閱讀依賴 grep、全域性搜尋或 IDE 跳轉,面對大型專案時難以把握全域性架構和隱式依賴關係。Graphify 將整個程式碼庫(包括 SQL 模式、R 指令碼、Shell 指令碼、文件、圖片、影片)轉化為可查詢的知識圖譜,開發者可以直接提問"FastAPI 和 ModelField 如何連線"或"解釋 APIRouter 的作用",系統返回帶路徑的結構化答案,而非檔案列表。每條邊標註 EXTRACTED(原始碼顯式)或 INFERRED(工具推導),確保溯源透明。
為何火
8.6 萬 stars 的熱度源於三個差異化設計:1) 完全本地化的程式碼解析,基於 tree-sitter AST 而非 LLM,無需上傳程式碼即可生成確定性圖譜;2) 真實圖結構而非向量索引,支援路徑查詢、社群檢測等圖演算法,可回答"兩個模組間的最短依賴鏈"這類傳統 RAG 無法處理的問題;3) 零配置整合 AI 助手,通過 /graphify 命令直接在 Claude Code、Cursor 等 15+ 平臺使用,30 秒內生成互動式 HTML 視覺化圖譜。專案由 Y Combinator S26 孵化,技術棧覆蓋 40+ 程式語言。
核心功能
- 多語言 AST 解析:通過 tree-sitter 支援 Python、JavaScript、Go、Rust、Java、C/C++、Ruby、Kotlin、Scala、PHP、Swift 等 40+ 語言,提取函式呼叫、類繼承、模組匯入等顯式關係
- 圖譜查詢三件套:
graphify query "<問題>"返回相關子圖,graphify path A B追蹤兩節點間最短路徑,graphify explain "概念"展示節點的所有連線及置信度 - 社群檢測:基於 Leiden 演算法自動識別程式碼庫的子系統劃分,無需 LLM 即可生成模組標籤
- 互動式視覺化:生成
graph.html力導向圖,支援節點點選、社群篩選、全文搜尋,瀏覽器直接開啟 - 增量更新:已生成的
graph.json可重複查詢,無需重新掃描檔案;支援 Docker 容器化部署為 HTTP MCP 服務
安裝
推薦使用 uv 或 pipx 安裝(避免汙染全域性 Python 環境):
# 方式一:uv(推薦)
uv tool install graphifyy
# 方式二:pipx
pipx install graphifyy
# 註冊到 AI 助手
graphify install
在 AI 助手中執行:
/graphify .
輸出三個檔案:
graph.html:瀏覽器視覺化GRAPH_REPORT.md:關鍵概念摘要graph.json:完整圖譜資料
Docker 部署(適合團隊共享):
docker build -t graphify .
docker run -p 8080:8080 -v "$(pwd)/graphify-out:/data" graphify \
/data/graph.json --transport http --host 0.0.0.0 --api-key "$SECRET"
適合誰
- 接手遺留系統的工程師:快速理解陌生程式碼庫的架構脈絡,識別核心模組和邊緣依賴
- 技術 Leader:通過"上帝節點"(最高連線度節點)定位架構瓶頸,評估重構風險
- 開源貢獻者:在大型專案中追蹤某個 API 的呼叫鏈,找到需要修改的所有位置
- AI 程式設計助手重度使用者:已在使用 Claude Code、Cursor 等工具,希望增強上下文理解能力
中文使用者注意:程式碼解析完全離線,但處理 PDF、圖片、影片時會呼叫 AI 助手的模型(如 Claude API),需確保網路可達或自行配置 API Key。
社群評價
暫無足量社群公開討論,以下為基於專案本身的中立評估:
專案在 GitHub 獲得 8.6 萬 stars 和 155 位貢獻者,顯示出較高的開發者關注度。504 個 open issues 表明功能迭代快速但可能存在穩定性待最佳化。技術選型上,使用 tree-sitter 而非 LLM 進行程式碼解析是務實的工程決策,避免了 token 成本和隱私風險,但對自然語言文件的理解仍依賴外部模型。Leiden 社群檢測演算法在學術界已驗證有效,應用於程式碼模組劃分具有理論支撐。專案由 Y Combinator 孵化,商業化路徑可能影響未來開源策略。
選型對比
vs 傳統程式碼搜尋(grep/ripgrep)
- Graphify:結構化關係查詢,可回答"A 如何影響 B";傳統搜尋:文本匹配,需人工串聯上下文
- Graphify:社群檢測自動分組;傳統搜尋:依賴目錄結構或人工經驗
vs 向量資料庫 RAG(如 Copilot 的 embedding 檢索)
- Graphify:圖遍歷保證路徑完整性,邊有明確語義(呼叫/繼承);RAG:相似度匹配可能遺漏中間節點
- Graphify:程式碼解析無需 LLM,成本更低;RAG:所有內容需 embedding,token 消耗大
vs IDE 的呼叫層次檢視(如 IntelliJ 的 Call Hierarchy)
- Graphify:跨檔案全域性檢視,支援自然語言查詢;IDE:單檔案或單符號視角,需手動展開
- Graphify:匯出靜態圖譜可分享;IDE:即時但不可持久化
取捨:Graphify 適合"理解架構"場景,IDE 更適合"精確跳轉"場景;若需處理非程式碼資產(文件/影片),Graphify 是唯一選擇。
已知坑
- 504 個 open issues:功能迭代快但 bug 修復可能滯後,生產環境使用需評估風險
- 文件處理需外部 API:雖然程式碼解析本地化,但 PDF/圖片/影片仍需呼叫 AI 模型,中國大陸使用者可能需配置代理或使用國內模型 API
- 圖譜規模限制:超大型專案(如 Linux 核心)生成的圖譜可能包含數萬節點,瀏覽器渲染
graph.html時可能卡頓,建議用graphify query提取子圖 - tree-sitter 版本鎖定:依賴特定版本範圍(如
tree-sitter-python>=0.23,<0.26),升級 Python 解析器可能導致相容性問題 - 無內建許可權控制:Docker 部署的 HTTP 服務需自行配置
--api-key,否則圖譜資料暴露在公網 - 社群標籤質量:Leiden 演算法生成的模組標籤是基於圖結構而非語義,可能出現"utils 和 core 被分到同一社群"的反直覺結果
安装方式:pip/uv