Graphify:把代码库变成可查询的知识图谱——从一条命令到背后设计
Graphify:把代码库变成可查询的知识图谱,从一条命令到背后设计

AI Coding 工具有个尴尬的事实。它们把代码库当扁平文件系统。你每次提问,它不是 grep,就是逐文件从头读。10 万行代码的项目,模型得翻几十个文件,才能拼出答案。翻一次,几千 tokens。翻十次,context window 快满了。翻完发现漏了个关键关联,再翻一轮。
有个项目想解决这个问题。它叫 Graphify。YC S26 项目,创始人 Safi Shamsi。2026 年 4 月上线。到 8 月,已经 101,000 颗 star、9,800 个 fork。155 个 release。
装好之后,一条命令就能把整个项目变成一张知识图谱。AI 不再 grep 文件。改查图。
从安装到第一张图:30 秒

uv tool install graphifyy graphify install
然后在 AI 助手里输入:
/graphify .
跑完,graphify-out/ 下面多出三个文件:
|
文件 |
用途 |
|---|---|
graph.html |
交互式力导向图,浏览器打开,节点可点击、可筛选、可搜索 |
GRAPH_REPORT.md |
文本摘要:核心节点、意外关联、建议问题 |
graph.json |
完整图谱数据,后续查询全靠它,不用重新读源码 |
之后想查什么,直接问图:
graphify query "auth 和数据库之间怎么连接的?" graphify path "UserService" "DatabasePool" graphify explain "RateLimiter"
graphify path 的交互最直观。问「FastAPI 和 ModelField 之间怎么走」。它一步一步点亮知识图谱上的跳转路径。3 跳走完。每跳标出是 EXTRACTED(源码里直接找到的),还是 INFERRED(推理出来的)。
三遍扫描:AST 白干,LLM 只干语义活

Graphify 的设计思路:不浪费 LLM 调用。代码分析能用确定性算法解决,绝不动模型。
第一遍:AST 提取(本地,零 LLM)
tree-sitter 解析大概 40 种语言。类、函数、import、继承、调用链,全从语法树里抠出来。这一步完全不联网。代码不离开本机。0 token 消耗。
第二遍:语义提取(LLM,只对文档/图片/视频)
PDF、Word、Markdown、图片、视频/音频,走这一步。视频用 faster-whisper 本地转录,不调 API。只有文档和图片的语义理解要模型。用的是你 AI 助手当前会话的模型,不用额外 API key。
能单独装扩展能力:
uv tool install "graphifyy[pdf]" # PDF 提取 uv tool install "graphifyy[video]" # 视频/音频转录 uv tool install "graphifyy[office]" # .docx / .xlsx uv tool install "graphifyy[sql]" # SQL schema 提取
第三遍:图谱组装
两遍提取的结果,合入一张 NetworkX 图。Leiden 社区检测自动分簇。有意思的是,分出的模块边界,经常和目录结构对不上。等于给代码库找到一套「实际架构」。不是「目录架构」。
PageRank 和 betweenness centrality 找出「上帝节点」。整个系统里连接度最高的概念,一切数据流都经过它们。还有「意外关联」。不同模块之间八竿子打不着的两个东西,图告诉你,它们其实有桥。
设计哲学:不要向量库,要真图

Graphify 做了个和主流相反的选择:不用向量数据库,不用 embedding。
现在大多数代码库 RAG 方案,是 embed 所有文件。查的时候做语义相似度匹配。Graphify 觉得,这条路对代码库不划算。代码里的关系是显式的:import 语句、函数调用、类继承。这些不用拿余弦相似度来猜。把关系全部预计算,存成图。查的时候直接遍历。比每次现场读源文件,省 71.5 倍 token。
每条边都带置信度标签:
- EXTRACTED
(置信度 1.0):源码里显式存在,AST 掏出来的
- INFERRED
(0.4–0.9):模型推理出来的关联
- AMBIGUOUS
(0.1–0.3):不确定,需要人看一眼
这个设计,让 AI agent 能区分「我找到了」和「我猜的」。用作者的话说:「An honest graph — every claim about your code annotated with how we know it.」
对比数据也很直观。在 LOCOMO 基准(300 个代码理解问题)上,Graphify 的 recall@10 是 0.497。mem0 只有 0.048。supermemory 0.149。差距 10 倍。LongMemEval-S 的问答准确率 76%。跟密集 RAG 打平。但 token 消耗只是它的零头。
Skill 怎么组成的

Graphify 不是黑盒。拆开看,它是一组松耦合模块的管道:
detect() → extract() → build_graph() → cluster() → analyze() → report() → export()
每一步都是纯函数。没有共享状态。一个环节挂了,不影响其他。
模块拆解:
|
模块 |
做什么 |
技术栈 |
|---|---|---|
detect |
扫描目录,识别文件类型,合并 .gitignore + .graphifyignore |
Python pathlib |
extract
(左轨) |
AST 解析代码,提取实体和关系 |
tree-sitter,~40 种语法 |
extract
(右轨) |
语义理解文档/图片/视频 |
LLM 子 agent 并行,faster-whisper |
build_graph |
合并两边结果,去重,建 NetworkX 图 |
NetworkX |
cluster |
Leiden 社区检测,给子系统贴标签 |
igraph + Leiden 算法 |
analyze |
PageRank、betweenness centrality、意外关联排名 |
NetworkX |
report |
生成 GRAPH_REPORT.md + graph.html |
Jinja2 + D3.js |
export |
输出 graph.json,后续查询全用这个 |
JSON |
AI 助手集成层:
Graphify 不是只生成一张图。它通过 hook,让 AI 助手把「读文件之前先查图」变成默认行为:
- Claude Code / Gemini CLI
:PreToolUse hook,在 grep/Read 调用前拦截,先跑
graphify query - Codex / OpenCode / Cursor
:写入 AGENTS.md 或 .cursor/rules,始终在线
- CodeBuddy / Kilo Code
:原生插件 + hook
- MCP 服务器
:
python -m graphify.serve graph.json暴露query_graph、shortest_path、get_neighbors等结构化工具,任何支持 MCP 的客户端都能调用
Hook 分两档。默认是软提示(nudge)。建议查图,但不强制。strict 模式,直接拦截第一次原始文件读取,强制走图。之后恢复软提示。一个会话最多拦一次。
越用越深:PR 仪表盘、合并冲突预测、企业版

基础功能之外,Graphify 还有几个进阶用法:
PR 仪表盘。graphify prs 列出所有 PR 的 CI 状态、审查进度、影响范围。graphify prs --triage 用 AI 给审查队列排优先级。graphify prs --conflicts 最实用。它找共享同一图谱社区的 PR,标记合并冲突风险。两个 PR 改同一个模块的不同文件,git 不报冲突。但逻辑上打架。图能看见。
合并图谱。graphify merge-graphs a.json b.json,把两个项目的图拼一起。对 monorepo,或者跨仓库依赖分析有用。
企业版。 Graphify Labs 在开源版之上提供:形式化验证(prove-or-counterexample 检查代码变更)、本地/私有云部署(代码不出基础设施)、审计日志(tamper-evident)、SSO/RBAC。给需要合规的团队。
自动更新。graphify hook install 装一个 git post-commit hook。每次提交,自动增量重建图谱。只跑 AST,不花 API 钱。团队里一个人跑 /graphify .,把 graphify-out/ 提交进仓库。其他人 pull 下来,直接用。
从 grep 到查图

Graphify 在解决一个很具体的问题:AI 写代码时,对代码库的理解成本。不是让它更聪明。是让它不用每次都从头读。
技术上,它用确定性算法(tree-sitter AST)包办代码分析的苦力活。把 LLM 留给它真正擅长的:理解文档、图片、视频里的语义。经济上,图谱建好之后,每次查询省 71.5 倍 token。对大项目,边际成本趋近于零。
但它的设计选择更有意思。不用向量库,用真图。每一条边标注置信度。模块间纯函数管道,不共享状态。这些选择加起来,做出一个「知道自己在对什么、在猜什么」的系统。AI 幻觉还没根治。能区分确定和猜测,比全都拍胸脯靠谱。
如果你的项目超过 1 万行代码,多人协作,文档分散在各个角落。值得花 30 秒装一个试试。
更多推荐
所有评论(0)