graphify
将任意代码仓库转换为可查询知识图谱的AI编程辅助神器
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
将任意代码仓库转换为可查询知识图谱的AI编程辅助神器
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你让 AI 编程助手读一个 50 万行的代码库,它每次都要从头扫描文件才能回答问题——就像一位记忆力只有 5 分钟的超级工程师。Graphify 正是为了解决这个痛点而诞生的。
Graphify 将任意代码文件夹——无论是 Python、JavaScript、SQL、Shell 脚本、PDF 文档、图片还是视频——自动构建为一张可查询的知识图谱。Claude Code、Codex、OpenCode、Cursor 等主流 AI 编程工具接入后,从此告别重复的文件读取,效率提升可达 27 倍(据用户实测,token 消耗降低)。
Graphify 获得了 Y Combinator S26 孵化支持,是当前 GitHub 上增长最快的 AI 编程辅助工具之一,在全球仓库排名中位列前 500,拥有超过 5 万颗星。
Graphify:把混乱的代码仓库变成一张结构化的知识地图
Graphify 的诞生深受 AI 领域传奇人物 Andrej Karpathy 的启发。Karpathy 曾提出一种「原始文件夹」工作流——直接让 LLM 读取整个代码目录,而非通过 IDE 的抽象语法树。这一理念揭示了一个核心问题:当前 AI 编程工具缺乏对代码全局结构的理解。
Graphify 的作者 safishamsi 从 Karpathy 的方法论出发,构建了一套完整的端到端管道。2025 年中旬项目上线后迅速走红,GitHub 星标从 0 增长到 5 万仅用了不到一年时间,成为 AI 辅助编程领域的现象级开源项目。
项目的成功也引发了学术界对「知识图谱增强检索(GraphRAG)」的重新关注。Graphify 证明:在代码理解场景中,基于图结构的语义索引比传统向量检索更高效,尤其是处理跨文件的函数调用、模块依赖等关系时。
如果把传统 RAG 工具比作「在图书馆里建索引卡片」,那么 Graphify 更像是「把整个图书馆的书籍撕碎后,按语义关系重新编织成一张大网」。
这张「网」有三个核心能力:
Graphify 的处理管道分为六个阶段:检测 → 提取 → 建图 → 聚类 → 分析 → 导出。每个阶段都是独立的 Python 模块,通过 NetworkX 图和 Python 字典传递数据,无共享状态,便于理解和扩展。
文件检测阶段会递归扫描目标目录,基于文件扩展名、内容特征和语言指纹过滤出需要处理的文件。支持的编程语言超过 30 种,包括 Python、JavaScript/TypeScript、Go、Rust、Java、C/C++、Ruby、Swift、Kotlin、Scala、PHP、Lua、Zig、PowerShell、Elixir、Fortran、Verilog 等。
提取阶段针对不同文件类型采用不同策略:
Graphify 内置语义缓存机制(基于 datasketch 的 MinHash)。当文件内容未发生实质性变化时,直接复用之前的 LLM 提取结果,大幅节省 token 消耗和 API 调用时间。
提取结果汇总后,构建 NetworkX 图。根据代码结构(如调用关系、import 关系)和语义相似度(基于 RapidFuzz 模糊匹配)添加边,最后用 Leiden 社区检测算法划分模块群落。
分析阶段识别图中的「枢纽节点」(被大量其他节点引用的核心函数)、「惊喜节点」(命名与实际功能不符的代码)和「问题节点」(缺少文档的公共 API、循环依赖等)。最终生成一份结构化的 GRAPH_REPORT.md 报告。
Graphify 支持导出为:
Graphify 提供两种使用方式:
独立 CLI 工具(graphify 命令):通过 uv tool install graphifyy 或 pipx install graphifyy 安装后,直接在终端运行,适合脱离 IDE 独立使用。
Claude Code Skill(/graphify 斜杠命令):在 Claude Code 中直接输入 /graphify,触发引导式交互,适合嵌入日常工作流。这是项目的主打场景,README 和文档均以此为核心叙事。
两种模式共享同一套 Python 底层库(graphifyy),代码完全一致。
Graphify 对普通用户非常友好。安装仅需一行命令:
uv tool install graphifyy
# 或
pipx install graphifyy
依赖极少(Python >= 3.10,核心依赖只有 networkx、datasketch、rapidfuzz 和 tree-sitter 生态),不需要 GPU,无需数据库,可完全离线运行。
但需要注意的是:完整的多模态能力(PDF/图片/视频理解)需要调用外部 LLM API(如 Claude API 或 Ollama),需要自行准备 API Key 或本地模型服务。
Graphify 并非银弹,存在以下局限:
Graphify 的成功折射出一个更大的趋势:AI 编程工具正在从「单点辅助」向「全局理解」演进。 从 GitHub Copilot 的代码补全,到 Cursor 的 Agent 模式,再到 Graphify 的知识图谱增强,AI 编程工具正变得越来越「懂」代码。
Graphify 选择了「知识图谱」这一技术路线而非纯向量检索,这是一个有意义的分野。图结构天然适合表达代码中的关系型信息(如调用链、继承树、依赖图),在复杂项目中比平面向量具有更强的可解释性和可操作性。
作者 safishamsi 正在积极维护,v8 分支引入了多图谱兼容、MCP 服务、增量更新等高级特性。项目的 GitHub issues 中也反映出社区对 Web 可视化、增量建图、更多语言支持等功能有强烈需求。
如果你经常在大型代码库中工作,或希望 AI 编程助手能更「懂」你的项目,Graphify 值得一试。

图1:Graphify 在 Claude Code 中的使用界面——输入 /graphify 即可启动

图2:Graphify 将代码库构建为可交互的知识图谱,边表示调用/依赖关系,节点颜色表示社区分组