Graphify:把代码库变成可查询的知识图谱,但先想清楚它不做什么
将任何代码库及其文档、SQL 架构、配置和 PDF 转换为可查询的知识图。适用于 Claude Code、Cursor、Codex 和 Gemini CLI 的 /graphify 技能:本地确定性 AST 解析,每条边均已解释,无向量存储。
秒懂
- 它是什么?
- Graphify 是一个针对 Claude Code、Cursor 等 AI 编程助手的 skill,用 tree-sitter 在本地解析代码生成知识图谱,支持 explain、path、query 三种查询。它不依赖向量库,但语义层需要外部模型,且图谱质量取决于解析器的覆盖范围。
- 适合谁用?
- Graphify 适合那些在 AI 编程助手中频繁需要跨文件定位依赖关系的开发者,尤其是处理大型代码库且对数据隐私敏感的用户,因为代码解析完全本地完成。不适合需要精确语义理解或处理大量非代码资产(如 PDF、视频)的场景,因为语义层必须调用外部模型,且 INFERRED 边缘的可靠性取决于解析器的覆盖范围。
- 能商用吗?
- 可以。Apache-2.0 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
- 还在维护吗?
- 在维护。仓库在最近一天内有新的提交。
- 用什么语言写的?
- 主要是 Python(依据 GitHub 的语言统计)。
以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。
开源项目深度解析
它解决什么问题:替代 grep 的图谱查询
在大型代码库里,grep 只能找到字符串,找不到概念之间的关系。Graphify 的目标是让开发者直接问问题,比如“APIRouter 依赖什么”,然后得到一张图,而不是一列文件。它面向的是使用 Claude Code、Cursor、Codex、Gemini CLI 等 AI 编程助手的开发者,这些人已经习惯用自然语言与代码交互,但现有工具缺乏结构化的关系视图。Graphify 将代码、文档、SQL schema、PDF 统一映射到一个知识图谱,声称可以“查询而不是 grep”。这个定位很具体,不是通用知识管理工具,而是编程辅助的增强层。
核心机制:tree-sitter AST 与双标签边缘
代码解析完全依赖 tree-sitter,这是确定性过程,不涉及 LLM,数据不出本地机器。解析器支持约 40 种语言,提取 calls、imports、inherits、mixes_in 等跨文件关系。每个边缘都带一个标签:EXTRACTED 表示源码中显式存在,INFERRED 表示由 graphify 解析得出。这个设计让用户能区分“读到的”和“推出来的”,对信任度有实际意义。图谱存储在 graph.json 中,查询时直接遍历,不需要向量索引。文档、PDF、图片和视频则走另一条路,需要调用助手模型或配置的 API key 做语义分析,这部分不是本地的。
三种查询方式:explain、path、query
graphify 提供三个 CLI 子命令。explain 接受一个概念名,返回节点信息、所属社区、度数以及连接列表。比如对 APIRouter,输出会显示源码位置 routing.py L2210、社区编号 2、度数 47,以及每个连接的标签。path 接受两个概念,返回最短路径,例如 FastAPI 到 ModelField 是 3 跳。query 接受自然语言问题,返回一个相关的子图。这些命令都基于 graph.json,所以构建一次后可以反复查询,不必重新读文件。README 中的示例输出显示了真实运行结果,但注意那是 FastAPI 代码库,不是通用保证。
安装与运行:30 秒起步,但注意包名
安装命令是 uv tool install graphifyy 或 pipx install graphifyy。注意 PyPI 包名是 graphifyy(两个 y),不是 graphify,拼错会装到别的包。然后运行 graphify install 注册 skill 到你的 AI 助手。在助手内输入 /graphify . 即可生成三个文件:graph.html(可交互图谱)、GRAPH_REPORT.md(关键概念和推荐问题)、graph.json(完整图谱)。整个流程不需要配置 API key,除非你要处理文档或媒体文件的语义层。README 声称 30 秒完成,但实际取决于代码库大小和 tree-sitter 解析速度,大型仓库可能不止。
限制与失败模式:INFERRED 边缘的信任问题
最大的限制是 INFERRED 边缘的可靠性。tree-sitter 解析是确定的,但跨文件引用解析可能出错,尤其是动态语言或宏生成代码。README 没有说明 INFERRED 的准确率,只给了 LOCOMO 基准测试的召回率 0.497,这个数字并不高,意味着近一半的相关关系可能没被找到。另外,语义层(文档、PDF、图片)必须调用外部模型,如果你没有配置 API key,这些资产就不会被映射。对于纯代码项目,这没问题,但如果你指望把 PDF 文档也纳入图谱,就需要额外的网络调用和费用。还有一个隐藏问题:graph.html 是静态文件,适合浏览,但无法实时更新,代码变更后必须重新运行 /graphify。
替代方案:向量索引与语义搜索
Graphify 明确宣称“不是向量索引”,这是它与主流方案的分水岭。替代品如 mem0 或 supermemory 使用嵌入和向量存储,通过语义相似度检索信息,Graphify 则用图遍历。区别在于:向量索引擅长模糊匹配,比如“找出所有处理用户认证的代码”,但无法解释两个函数之间的具体依赖路径。Graphify 的 path 命令可以给出精确的跳转链,这是向量方法做不到的。但反过来,向量方法对自然语言问题的容忍度更高,因为嵌入本身是语义的,而 Graphify 的 query 依赖图谱结构,如果图谱不完整,答案就会残缺。README 的基准显示,在 LOCOMO 上 Graphify 的 QA 准确率 45.3%,低于 supermemory 的 49.7%,说明在纯问答任务上它并不占优。选择取决于你的需求:要精确关系,选 Graphify;要宽泛语义检索,选向量方案。
维护与升级成本:版本迭代快,但许可证宽松
项目默认分支是 v8,最近发布频率较高,2026 年 8 月 28 日发布了 v0.9.51,此前还有 v0.9.50 和 v0.9.49,间隔不到一周。这意味着 API 可能变动,升级时需要关注 changelog。依赖方面,tree-sitter 是成熟库,但语言解析器的更新可能影响图谱结构。许可证是 MIT,允许商用和修改,没有 copyleft 义务。不过 README 提到 graphify.com 平台正在开发中,未来可能将核心功能商业化,本地 CLI 是否保持免费未知。如果你依赖这个工具,需要关注项目方向。
编辑结论
Graphify 适合那些在 AI 编程助手中频繁需要跨文件定位依赖关系的开发者,尤其是处理大型代码库且对数据隐私敏感的用户,因为代码解析完全本地完成。不适合需要精确语义理解或处理大量非代码资产(如 PDF、视频)的场景,因为语义层必须调用外部模型,且 INFERRED 边缘的可靠性取决于解析器的覆盖范围。采用前应验证三件事:确认你的语言是否在 tree-sitter 支持的约 40 种语言内,检查 graph.json 中 INFERRED 边缘的比例是否可接受,以及确认你使用的 AI 助手是否支持 skill 注册机制。Graphify 的 MIT 许可证允许自由使用和修改,但注意 PyPI 包名是 graphifyy(两个 y),安装时不要拼错。
社区笔记