Graphify – AI編程助手的開源知識圖譜技能
Graphify 是一個開源的多模態知識圖譜構建工具,專為 AI 編程助手(如 Claude Code、OpenAI Codex 和 OpenCode)設計。它結合 Tree-sitter 靜態分析與 LLM 驅動的語義提取,將整個代碼倉庫(包括源代碼、文檔、論文和圖表)轉化為交互式知識圖譜,幫助 AI 理解代碼的功能和設計意圖。
Graphify 是一個開源的多模態知識圖譜構建器,專為 AI 編程助手(如 Claude Code、OpenAI Codex 和 OpenCode)設計。它通過結合 Tree-sitter 靜態分析和 LLM 驅動的語義提取,將整個倉庫(包括源代碼、文檔、研究論文和圖表)轉化為交互式知識圖譜,不僅解釋代碼的功能,還揭示其設計原因。該項目由 Safi Shamsi 維護,採用寬鬆的 MIT 許可,並基於 NetworkX 和 Tree-sitter 等廣泛信賴的庫構建。
Graphify 的核心能力包括多模態提取、知識圖譜構建、上帝節點識別和交互式輸出。它能夠解析 Python、JavaScript、Go、Java 等多種編程語言,以及 Markdown、PDF 和圖像文件。Tree-sitter 提取抽象語法樹、調用圖和文檔字符串;LLM 從散文中提取概念;視覺模型讀取圖表。所有節點和邊被合併到 NetworkX 圖中,並通過 Leiden 算法進行語義社區檢測,無需向量嵌入。
該工具還識別系統中的“上帝節點”(高連接度的核心節點),並標記意外的跨文件或跨域連接。輸出包括交互式 graph.html、可查詢的 graph.json 和人類可讀的 GRAPH_REPORT.md 審計報告。對於 Claude Code、Codex 和 OpenCode 等助手,Graphify 提供了 /graphify、/graphify query 等命令。
Graphify 的架構是一個多階段流水線:收集文件、提取節點/邊、構建圖、社區聚類、分析、報告和導出。每個階段都是獨立模塊,便於貢獻者獨立擴展。它通過 PyPI 分發,包名為 graphifyy。安裝後,用户可以通過命令行或 AI 助手的命令使用。Graphify 不捆綁 LLM,而是使用 AI 助手已配置的模型 API 密鑰,僅發送語義內容,絕不發送原始源代碼。
在性能方面,Graphify 在小型代碼庫(如 httpx)上生成了 144 個節點、330 條邊和 6 個社區。在混合語料庫(如 Karpathy 的混合語料)上,它實現了 71.5 倍的令牌減少。與其他項目相比,Graphify 專注於知識圖譜構建,而 Sourcegraph 專注於代碼搜索,Code2Vec 是函數級嵌入,Neo4j 是通用圖數據庫。
Graphify 採用 MIT 許可,核心依賴均為寬鬆許可,無遙測。唯一的出站網絡調用是語義提取步驟,使用用户自己的 AI 模型 API 密鑰,僅傳輸文檔的語義描述,絕不傳輸原始代碼。URL 限制為 http/https,下載有大小和時間限制,輸出路徑進行路徑包含檢查,節點標籤進行 HTML 轉義,防止 SSRF、注入和 XSS。