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 在多種語言中解析 callsimportsinheritsmixes_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 腳本安裝。

內部運作原理

  1. AST 提取 – Tree-sitter 解析每個原始碼檔案,產生決定性的抽象語法樹。
  2. 邊建立 – 顯式關係(匯入、呼叫、繼承)成為 EXTRACTED 邊。Graphify 進一步解析額外連結(如類別使用的函數),並標記為 INFERRED
  3. 社群檢測 – (可選)Leiden 算法將節點分組為子系統。
  4. 非程式碼語意分析 – 若啟用 PDF、影片或辦公室擴充,所選 LLM 處理這些檔案並加入與周圍程式碼連結的概念節點。
  5. 匯出 – 完整圖譜儲存為 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 輔助開發工具整合。

相關

  • 專案
  • 專案
  • 專案
  • 專案