graphify
让 AI 编程助手通过知识图谱理解整个代码库,零 Token 成本解析 AST,71 倍检索召回率超
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让 AI 编程助手通过知识图谱理解整个代码库,零 Token 成本解析 AST,71 倍检索召回率超
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
77,869 Stars | 7,698 Forks | Y Combinator S26 | MIT License | Python
想象一个场景:你花了两周时间熟悉一个百万行代码的遗留系统,终于理清了模块之间的关系,结果换了个 session,Claude Code 又得从零开始——它会重新读文件、重复提问、给出前后矛盾的方案。这类问题困扰着每一个在大型项目中使用 AI 编程助手的开发者。Graphify 正是为解决这一痛点而生的。
Claude Code、Cursor、Kilo Code、Codex 等 AI 编程助手的工作方式,本质上是将代码库内容注入 LLM 上下文来理解项目。每次开启新对话,AI 必须重新阅读文件、分析依赖关系,这意味着:
Graphify 的作者 Safisham Si 曾在 Y Combinator S26 期间孵化了这个项目,其核心洞察是:与其每次都让 AI 重新读文件,不如提前构建项目的结构化知识表示,让 AI 一启动就能看到完整的代码关系图。
Graphify 的处理流程分为三个阶段,每个阶段各司其职:
第一阶段:确定性 AST 解析(零 Token 消耗)
利用 tree-sitter 对代码文件进行静态分析,提取函数签名、类定义、导入语句、调用关系和文档字符串。这一阶段完全在本地运行,不需要任何 LLM API 调用。支持 25+ 编程语言,包括 Python、JavaScript、TypeScript、Go、Rust、Java、C/C++、Ruby、C#、Kotlin、Scala、PHP、Swift、Lua、Zig、PowerShell、Elixir、Objective-C、Julia、Verilog、Fortran、Bash、JSON 等。
第二阶段:LLM 语义抽取(一次性 Token 消耗)
对文档、Markdown、PDF、图片和视频文件,Graphify 并行调用 Claude API,从非结构化内容中提取概念、关系和设计动机。这一阶段只在构建图谱时执行一次,后续查询无需重复消耗。
第三阶段:图构建与社区发现
将两个阶段的结果合并到一个 NetworkX 图中,使用 Leiden 社区发现算法基于图拓扑结构自动聚类。关键点在于:聚类完全基于图的拓扑特性,不依赖 embeddings,无需向量数据库。每条关系边被打上置信度标签——EXTRACTED(直接证据,如 import 语句)、INFERRED(合理推断,附置信度分数)或 AMBIGUOUS(有歧义,需人工复核)。
运行 /graphify . 后,在 graphify-out/ 目录下生成三个文件:
graph.html:基于 Pyvis 的可交互图谱可视化,支持节点点击、过滤、社区筛选和搜索GRAPH_REPORT.md:人类可读的审计报告,包含 God Nodes(核心节点)、意外连接和推荐查询问题graph.json:完整的持久化图谱,可随时查询而无需重新读取原始文件另外,通过 graphify export callflow-html 可以生成 Mermaid 架构图和调用流图。
Graphify 提供了公开的基准测试数据,在与 mem0、supermemory、BM25、Dense RAG 等系统在相同条件下(同一模型 Kimi K2.6、相同 token 预算、盲审法官验证了一致性)对比:
这些数据来自项目官方 BENCHMARKS.md,法官评分经过 Cohen's kappa 0.81(实质性一致)验证。
Graphify 的架构采用模块化流水线设计,核心模块包括:
detect.py:文件收集与过滤,识别待处理文件extract.py:使用 tree-sitter 解析代码 AST,提取节点和边(约 755KB,核心解析引擎)build.py:将提取结果合并为 NetworkX 图,执行边合并与剪枝cluster.py:Leiden 社区发现算法进行图聚类analyze.py:识别 God Nodes、意外连接和待验证假设report.py:渲染 GRAPH_REPORT.md 人类可读报告export.py:导出为 Obsidian vault、JSON、HTML、SVG 等格式serve.py:MCP stdio 服务器,暴露图查询工具给 Claudellm.py:语义抽取模块,处理非代码文件的 LLM 调用(约 110KB)整体是一个 Agent Harness Framework,以 Python 库 + Claude Code Skill 的形式分发。代码结构清晰、模块职责单一,便于扩展新语言提取器。
Graphify 特别重视安全设计,主要缓解措施包括:
graphify-out/ 目录内<untrusted_source> 块中,防止通过文件内容注入恶意指令Graphify 支持多种部署形态:
方式一:pip 安装(推荐)
pip install graphifyy && graphify install
然后在 Claude Code 中运行 /graphify . 即可。
方式二:Docker 部署
提供官方 Dockerfile,可一键构建镜像并以 HTTP 模式运行 MCP 服务,便于团队共享单一图谱服务器:
# 构建镜像
git clone https://github.com/Graphify-Labs/graphify && cd graphify
docker build -t graphify .
# 启动 MCP HTTP 服务(挂载 graph.json)
docker run -p 8080:8080 -v "$(pwd)/graphify-out:/data" graphify /data/graph.json --transport http --host 0.0.0.0 --port 8080
方式三:作为 MCP Server 集成到各平台
支持 Claude Code、CodeBuddy、Codex、OpenCode、Kilo Code、Cursor、GitHub Copilot CLI、VS Code Copilot Chat、Aider、Amp、OpenClaw、Factory Droid、Trae、Antigravity 等 20+ 平台。
/graphify . 不会自动追踪代码变更,需配合 graphify watch 或重新运行命令Graphify 代表了 AI 编程工具领域的一个重要方向:从「把代码塞给 LLM」转向「让 LLM 学会查询结构化知识」。77,869 颗星和 7,698 个 Fork 表明,它不仅解决了个人开发者的痛点,更在团队协作和长期项目维护场景中找到了自己的生态位。Y Combinator 的背书进一步验证了其商业潜力。
核心创新在于:用确定性的图结构替代不确定的向量相似度,用零成本 AST 解析替代昂贵的全量 LLM 调用,用拓扑聚类替代embedding 相似度。这三条设计决策共同构成了 Graphify 的技术护城河。