Graphify-Labs/graphify
Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store.
Graphify – 將程式碼庫轉換為可搜尋的知識圖譜
是什麼 – Graphify 是一個基於 Python 的 CLI,可解析專案(原始碼、文件、PDF、影像、影片/音訊)並建立其發現概念的 知識圖譜。圖譜以 graph.json 儲存,並以互動式 graph.html 可視化。隨後,您可以使用 LLM 驅動的程式碼助手(Claude、Copilot、Cursor、Gemini 等)透過查詢此圖譜,而非 grep 檔案,來回答問題、追蹤連結或解釋符號。
核心理念
- 無 LLM 的程式碼解析 – 使用 Tree-sitter AST 支援約 40 種語言,因此不會建立嵌入或向量儲存,且資料不會離開您的機器。
- 顯式 vs 推論邊 – 每個連結皆標記為
EXTRACTED(直接從原始碼讀取)或INFERRED(由 Graphify 的解析器推導),讓您清楚了解哪些是原始程式碼,哪些是推論內容。 - 超越程式碼 – 可加入文件、PDF、影像和影片/音訊;其語意分析由您設定的 LLM(OpenAI、Anthropic、Gemini、Ollama 等)執行。
- 本地優先 – 僅可選的語意分析會呼叫外部模型;重頭工作(AST 提取、社群檢測、圖譜建構)完全在您的電腦上執行。
- 豐富查詢 –
graphify query "<問題>"、graphify explain "<符號>"和graphify path A B可讓您檢索子圖、取得節點的簡潔解釋,或查看兩個概念之間的最短連結。
快速開始(約 30 秒)
# 安裝 CLI(推薦使用隔離工具)
uv tool install graphifyy # 或:pipx install graphifyy
# 將技能註冊到您的程式碼助手
graphify install
現在開啟任何支援的助手並輸入:
/graphify .
graphify-out/ 中將出現三個檔案:
graph.html– 可在瀏覽器中開啟的互動式可視化圖譜。GRAPH_REPORT.md– 高階摘要、關鍵概念和建議問題。graph.json– 用於自訂查詢的完整機器可讀圖譜。
主要功能
| 功能 | 你將獲得 |
|---|---|
| 上帝節點 | 連結最多的概念 – 程式碼庫的「樞紐」。 |
| 社群 | 自動 Leiden 聚類,將相關子系統分組,無需 LLM 標註。 |
| 跨檔案連結 | 透過 Tree-sitter 在多種語言中解析 calls、imports、inherits、mixes_in。 |
| 理由節點 | # NOTE: / # WHY: 註解和 ADR/RFC 引用成為與程式碼連結的一等節點。 |
| 多媒體 | 文件、PDF、影像、影片/音訊可加入同一圖譜(需適當可選擴充)。 |
| 本地優先解析 – 無嵌入、無向量儲存;僅非程式碼資產需要可選 LLM 呼叫。 | |
查詢語言 – 自然語言問題(graphify query)、路徑追蹤(graphify path A B)或節點解釋(graphify explain)。 |
安裝詳情
| 步驟 | 命令 | 說明 |
|---|---|---|
| 套件 | uv tool install graphifyy(或 pipx install graphifyy) |
PyPI 名稱為 graphifyy(雙 y)。 |
| 技能註冊 | graphify install [--platform <assistant>] [--project] |
寫入各助手讀取的微型技能檔案。使用 --project 可將技能限制在目前專案內。 |
| 可選擴充 | uv tool install "graphifyy[pdf]"、... [neo4j]、... [all] 等 |
加入 PDF 提取、Neo4j 推送、影片轉錄、語言特定解析器等。 |
| 前置條件 | Python 3.10+,uv(推薦)或 pipx。 |
macOS: brew install python@3.12 uv;Windows: winget install astral-sh.uv;Linux: 透過 apt 或 curl 腳本安裝。 |
內部運作原理
- AST 提取 – Tree-sitter 解析每個原始碼檔案,產生決定性的抽象語法樹。
- 邊建立 – 顯式關係(匯入、呼叫、繼承)成為
EXTRACTED邊。Graphify 進一步解析額外連結(如類別使用的函數),並標記為INFERRED。 - 社群檢測 – (可選)Leiden 算法將節點分組為子系統。
- 非程式碼語意分析 – 若啟用 PDF、影片或辦公室擴充,所選 LLM 處理這些檔案並加入與周圍程式碼連結的概念節點。
- 匯出 – 完整圖譜儲存為 JSON;基於 D3 的 HTML 查看器進行互動式渲染。
基準測試(倉儲中報告)
- LOCOMO(300 個查詢)上的 Recall@10:0.497,遠高於 mem0(0.048)和 supermemory(0.149)。
- LOCOMO 上的 QA 準確率:45.3%(supermemory 49.7%,mem0 27.3%)。
- LongMemEval-S(50 個查詢)QA 準確率:76%(與密集 RAG 方法並列)。
- 圖譜建構的 LLM 信用:0 – 核心圖譜建構從不呼叫 LLM。
生態系與整合
- 支援的助手 – Claude Code、Cursor、GitHub Copilot CLI、VS Code Copilot Chat、CodeBuddy、Kilo、Aider、OpenClaw、Factory Droid、Trae、Gemini CLI、Hermes、Kimi、Amp、Google Antigravity,以及任何讀取通用
~/.agents/skills/位置的框架。 - 語意分析後端 – OpenAI、Anthropic、Gemini、Azure OpenAI、Ollama、Bedrock 等(透過
--backend和相應擴充選擇)。 - 圖譜輸出目標 – 將圖譜推送到 Neo4j 或 FalkorDB,或匯出為 SVG。
- 鈎子 –
graphify hook install加入 Git post-commit 鈎子,記錄解釋器路徑,確保技能在 CI 或 GUI Git 客戶端中正常運作。
你可能不需要它的情況
- 如果你只需要簡單的關鍵字搜尋(
grep)或傳統的向量儲存 RAG 流程,Graphify 的圖譜中心方法可能過度複雜。 - PDF/影像/影片的語意分析需要外部 LLM API 金鑰;沒有它,你只能獲得僅含程式碼的圖譜。
TL;DR
Graphify 讓你將任何專案轉換為決定性、本地生成的知識圖譜,你的 AI 程式碼助手可以查詢它,而非掃描原始檔案。它快速、程式碼部分可離線運作,並與大多數現代 AI 輔助開發工具整合。
相關
- 專案
- 專案
- 專案
- 專案