开源项目第182期:Graphify — 把整个代码库变成可查询知识图谱,让 AI 编程助手真正「懂」你的项目
引言“AI 编程助手为什么老是理解不了你的代码库因为它每次都在 grep而不是真正理解项目结构。”这是「每日一个开源项目」系列的第 182 篇。今天的项目是Graphify—— Y Combinator 支持的开源工具把整个项目代码、文档、PDF、图片、视频构建成一张可查询的知识图谱作为 AI 编程助手的上下文层。在 Claude Code 或 Cursor 里让 AI 解释某段代码的依赖关系它可能准确也可能从几十个文件里随机挑一些漏掉关键的跨文件联系。根本原因是 AI 助手靠文件 grep 和向量相似度来理解代码库这两种方式都没有真正捕捉代码的结构关系。Graphify 用知识图谱替代这两种方式每个函数、类、文档节点都有明确的关系边AI 沿着图的路径遍历而不是猜。2.5 个月就积累了 73,000 Stars2.2M 次下载101k Stars。Apache-2.0 MIT。你会学到什么Graphify 和 RAG 的本质差异图遍历 vs 向量相似度搜索tree-sitter AST 本地解析代码分析零 API 调用不离开本机边来源标注Edge ProvenanceEXTRACTED / INFERRED / AMBIGUOUSGod Nodes自动识别高影响节点可视化变更的爆炸半径增量更新3 个文件变更只需 0.8 秒不重建整张图在 Claude Code 里的一键安装和使用方式前提知识使用过 Claude Code、Cursor 或类似 AI 编程工具了解知识图谱的基本概念节点、边、关系会有帮助熟悉 Python 环境操作问题背景AI 助手的项目盲视一个有 500 个文件的代码库你问 Claude Code“auth 模块是怎么连接到数据库的”它的处理流程大概是在上下文里搜索auth相关的文件把搜到的几个文件内容加进上下文基于这些片段生成回答问题在于步骤 1搜索是基于关键词或向量相似度不是基于代码的实际结构关系。它可能找到三个都包含auth字符串的文件但遗漏了真正关键的中间层发现auth.py和db.py但看不出两者之间经过了哪几层调用下次问同一个问题结果可能不一样这不是模型能力的问题是上下文构建方式的问题。Graphify 的解法在你问问题之前先把整个代码库解析成一张图每个函数、类、模块、文档都是节点调用关系、引用关系、继承关系都是有方向的边。AI 助手查询这张图来构建上下文而不是 grep。核心架构本地 AST 可选 LLMGraphify 把项目分为两类内容用不同方式处理代码文件 → tree-sitter AST 本地解析 → 零 API 调用不离开本机 → 提取函数/类/模块节点 calls/imports/inherits 关系边 文档 / PDF / 图片 / 视频 → 配置的 LLM 后端处理Anthropic/OpenAI/Gemini/Ollama 等 → 提取语义节点和关系 ↓ 统一的知识图谱 输出文件 ├── graph.html ← 浏览器可视化 ├── GRAPH_REPORT.md ← 人类可读的报告和建议问题 └── graph.json ← 完整可查询的图数据tree-sitter确定性代码解析tree-sitter 是业界标准的增量 AST 解析库被 Neovim、GitHub 等工具广泛使用。Graphify 用它解析代码而不是让 LLM 来理解代码结构。好处确定性同样的代码每次解析结果相同零 API 成本代码解析完全本地不调用任何 LLM速度AST 解析比 LLM 推理快几个数量级隐私代码不离开本机支持36 种编程语言Python、TypeScript/JavaScript、Go、Rust、Java、C/C、Ruby、C#、Kotlin、Swift、Scala、PHP、Lua、Zig、SQL 等。边来源标注Edge Provenance这是 Graphify 区别于其他知识图谱工具的核心设计之一。图里的每一条边都带有来源标签标签含义EXTRACTED从代码结构直接提取确定性的INFERRED从 LLM 推理得出有一定不确定性AMBIGUOUS来源不确定需要人工验证为什么重要当 AI 助手沿着图路径回答问题时它知道哪些关系是代码里写死的事实哪些是模型推断的。这直接影响回答的可信度判断。用户问login 函数如何触发数据库写入 AI 沿图遍历找到路径 login() --[EXTRACTED: calls]-- validate_user() validate_user() --[EXTRACTED: calls]-- db.query() db.query() --[INFERRED: writes_to]-- users_table 回答里可以明确说前两跳是代码确认的最后一跳是推断的。God Nodes识别高风险节点Graphify 用图论里的**介数中心性betweenness centrality**计算自动识别God Nodes——那些连接最多社区、被最多路径经过的节点。在一个真实代码库里God Node 通常是被 20 个模块都 import 的工具函数连接前端和后端的 API 层文件包含所有数据库连接逻辑的单一 service 类这些节点有个特点一旦出现 bug影响范围最大。Graphify 的可视化里God Node 以醒目的方式标出让你在做重构或者看 AI 生成的代码改动时立刻知道这个改动的爆炸半径有多大。社区检测发现隐藏的子系统边界Graphify 用Leiden 算法对图做社区检测自动把代码库拆分成功能性的子系统不依赖文件夹结构。实际意义代码库可能有一个utils/文件夹但里面混了属于不同子系统的代码Leiden 算法从实际的调用关系和引用关系出发识别出哪些文件真正是一起工作的结果展示在graph.html里用颜色区分不同社区这在大型代码库的架构理解和重构规划里特别有价值。增量更新不重建整张图传统 RAG 的痛点之一代码变了就要重新嵌入整个索引几百个文件的项目可能要等几分钟甚至更长。Graphify 的增量更新只 patch 实际变更的文件其余节点完全不动。官方数据50 万节点的图3 个文件变更patch 耗时0.8 秒。查询接口用自然语言遍历图# 自然语言查询graphify querylogin form 是怎么连接到 users 表的# → 返回从 UI 经过 API 层到数据库的完整路径每条边带来源标签# 两个节点之间的最短路径graphify path auth.login db.users# 让 AI 基于图解释一个函数graphify explain src/auth/handler.py:validate_token支持的数据源Graphify 不只是代码图整个项目的所有文档和媒体文件都可以纳入代码本地 AST零 LLM36 语言Python、TS/JS、Go、Rust、Java、C/C、Ruby、Kotlin、Swift 等文档Markdown、HTML、RST、YAML、TXT.docx、.xlsx可选扩展PDF可选扩展媒体图片PNG、JPG、WebP、GIF视觉提取视频/音频MP4、MOV、MP3、WAV本地 faster-whisper 转录特殊格式MCP 配置文件包清单文件pyproject.toml、go.mod、pom.xmlGoogle WorkspaceDocs、Sheets、Slides通过gwsCLIYouTube URL安装和快速上手安装# 安装 CLI推荐 uvuv toolinstallgraphifyy# 注意PyPI 包名是 graphifyy双 y# 注册到 AI 助手graphifyinstall在 Claude Code 里使用# 安装完成后在 Claude Code 里/graphify.# 构建当前目录的图# 之后可以直接用自然语言问项目相关问题# AI 会基于图路径而不是 grep 来回答输出文件graphify-out/ ├── graph.html ← 浏览器打开交互式可视化 ├── GRAPH_REPORT.md ← 图的亮点、意外连接、建议问题 └── graph.json ← 完整图数据可供程序查询MCP Server 模式# 作为 MCP server 启动graphify mcp--transportstdio# 标准输入输出graphify mcp--transporthttp# HTTP 模式配置好后任何支持 MCP 的 AI 工具都能通过工具调用直接遍历你的代码图。可选后端# 推送到 Neo4j企业级图数据库graphify push--backendneo4j--uribolt://localhost:7687# FalkorDBgraphify push--backendfalkordbBenchmark 数据官方 BENCHMARKS.md 里有与主流 memory/RAG 系统的对比基准指标Graphifymem0supermemoryLOCOMO (n300)recall100.4970.0480.149LOCOMO (n300)QA 准确率45.3%27.3%49.7%LongMemEval-S (n50)QA 准确率76%——图构建LLM 消耗0代码部分按 token 计费按 token 计费注LongMemEval-S 上 Graphify 与 dense RAG 持平76%但代码部分的图构建完全免费本地 AST 解析。支持的 AI 助手安装后一个命令注册支持Claude Code、Cursor、Codex、Gemini CLI、GitHub Copilot、Aider、Kilo Code、OpenCode、Factory Droid、Trae、Amp、Kiro、Devin CLI以及其他任何支持 Skills 的工具。项目地址与资源GitHub: Graphify-Labs/graphify官网: graphify.comPyPI:graphifyypip install graphifyy背景: Y Combinator 支持总结Graphify 的核心洞察AI 编程助手的上下文质量比模型能力更能决定回答质量。同一个 Claude Sonnet给它一堆通过 grep 找到的文件片段和给它一条沿着真实代码关系遍历的图路径回答的深度和准确性差异显著。Graphify 做的是后者用 tree-sitter 精确提取代码结构用 Leiden 算法识别子系统用介数中心性找出风险节点把这一切构建成一张可查、可追溯、带来源标注的知识图谱。边来源标注EXTRACTED vs INFERRED这个设计细节值得记住。在一个大型代码库里你需要知道这条关系是代码里写死的还是 AI 猜的这直接影响你对答案的信任程度和后续的决策。2.5 个月 73,000 Stars说明这个痛点是真实的。探索 PrimeSkills —— 精选 AI Agent 与技能的市场每一个都经过真实企业工作流验证去掉浮夸留下真正有用的。欢迎访问我的个人主页发现更多有价值的见解和有趣的产品。

相关新闻