Graphify
開源知識圖譜技能

Graphify — 面向 AI 編碼助理的知識圖譜

Graphify 是開源技能,透過把程式碼、文件、論文及圖示轉成可查詢知識圖譜,幫助 AI 編碼助理理解多模態程式碼庫。

Click to Use Graphify MCP Free

什麼是 Graphify?

Graphify 是為 AI 編碼助理(例如 Claude Code、OpenAI Codex、OpenCode)而設的多模態知識圖譜建構器。它結合 Tree-sitter 靜態分析與 LLM 語義抽取,將整個儲存庫(原始碼、文件、研究論文、圖示)轉為可互動圖譜,同時解釋程式「做什麼」與「為什麼這樣設計」。項目由 Safi Shamsi 維護,採用 MIT 授權,並建立在 NetworkX、Tree-sitter 等成熟函式庫之上。

3.7k+GitHub Stars
MIT授權
71.5×Token 壓縮比
Python 3.10+執行環境

核心能力

Graphify 把靜態分析、語義抽取與圖聚類整合為可被 AI 編碼助理直接呼叫的技能。

多模態抽取

可解析程式碼(.py、.js、.go、.java 等)、Markdown、PDF 與圖片。Tree-sitter 抽取 AST、呼叫圖與註解;LLM 從文字抽取概念;視覺模型讀取圖示。

知識圖譜建構

把所有節點與邊合併進 NetworkX 圖,並以 Leiden 演算法做語義社群偵測,無需向量嵌入。

核心節點與異常連結

找出系統中度數最高的「god nodes」,並標記跨檔案、跨領域的意外關聯,協助深入排查。

互動式輸出

輸出互動式 graph.html、可查詢 graph.json,以及可讀的 GRAPH_REPORT.md 稽核報告。

助理整合

內建 /graphify、/graphify query、/graphify path、/graphify explain,可用於 Claude Code、Codex、OpenCode 等。

安全預設

嚴格輸入驗證:僅允許 http/https、限制大小與逾時、路徑收斂檢查、節點標籤 HTML 轉義,防 SSRF/注入/XSS。

架構與流程

Graphify 採用多階段流程。每個階段都是獨立模組,貢獻者可按需要擴展。

detect — 收集檔案 extract — AST + LLM 節點/邊 build — 建立 NetworkX 圖 cluster — Leiden 社群劃分 analyze — 核心節點與異常連結 report — 產生 GRAPH_REPORT.md export — HTML / JSON / Obsidian

配套模組包括 URL 抓取的 ingest.py、語義快取 cache.py、輸入驗證 security.py、即時更新 watch.py 以及 MCP 服務 serve.py。

本機安裝與執行

使用 Python 3.12 和 uv 從儲存庫安裝 Graphify AI。套件名稱為 private-context-mcp,CLI 指令為 private-context。

# 需要 Python 3.12 和 uv;請在 Graphify AI 儲存庫根目錄執行
uv sync --extra dev --extra cloud --no-editable \
  --reinstall-package private-context-mcp

# 驗證本機安裝
uv run --no-sync private-context doctor

# 啟動本機 stdio MCP 服務
uv run --no-sync private-context serve --transport stdio

這些指令使用 Graphify AI 鎖定的相依套件和本機執行環境;如不需本機安裝,可直接使用 app.graaph.org 託管控制台。

實作示例

倉庫附帶可重現語料,展示 Graphify 在小型函式庫及大型程式碼+論文混合語料上的表現。

httpx(小型)

6 個 Python 檔模擬 HTTP 傳輸層。結果:144 個節點、330 條邊、6 個社群。核心節點:Client、AsyncClient、Response、Request。異常連結:DigestAuth → Response。

Karpathy 混合語料

3 個 GPT 框架倉庫 + 5 篇 attention 論文 + 4 張圖示(約 52 檔、9.2 萬字)。結果:285 節點、340 邊、53 社群。平均查詢約 1.7k token,對比傳統約 123k,壓縮約 71.5×。

比較

Graphify 與程式碼智慧領域相鄰開源專案的定位比較。

專案聚焦優勢相對 Graphify 的限制
Sourcegraph跨倉庫程式碼搜尋企業級導覽能力並非知識圖譜;設計語義支援有限
Code2Vec函式級向量表示向量檢索與分類沒有圖結構,也不支援多模態輸入
Neo4j通用圖資料庫強大的 Cypher 查詢不會自動從程式碼生成知識圖譜

安全、授權與可信性

Graphify 採用 MIT 授權。核心依賴 NetworkX(BSD)與 Tree-sitter(MIT)皆為寬鬆開源授權。專案不做遙測。唯一外部網絡呼叫是語義抽取步驟,使用你自己的模型 API Key;只傳送文件語義描述,不傳原始碼。URL 僅允許 http/https,下載有大小與逾時限制,輸出路徑有包含檢查,節點標籤做 HTML 轉義,以防 SSRF、Cypher 注入與 XSS。

常見問題

Graphify 會把我的程式碼傳給第三方模型嗎?

不會。Graphify 只把文件與圖示的語義描述傳送到你已設定的模型,不會傳送原始碼檔案。

支援哪些 AI 編碼助理?

開箱支援 Claude Code、OpenAI Codex 和 OpenCode(透過 skill-*.md 清單)。任何可執行 shell 指令的助理都可呼叫 graphify。

Graphify 可處理多大型的程式碼庫?

Tree-sitter 解析與 NetworkX 建圖基本會隨規模線性擴展。在約 50 萬字語料上,BFS 子圖查詢通常約 2k token,而傳統方式約 67 萬 token。

Graphify 可免費商用嗎?

可以。Graphify 採 MIT 授權,個人及商業用途皆可免費使用。