工具推荐
1783996682更新
0
你有没有过这种时候:接手一个不熟悉的大项目,想知道某个功能到底怎么串起来的,只能靠 grep 在几十个文件里翻来翻去。或者让 AI 助手帮你读代码,它把一堆文件逐个读进来,token 哗哗烧,答案还未必靠谱。
更麻烦的是,想弄清一个功能的来龙去脉,从文件 A 跳到文件 B,半天也理不清全貌。
graphify 是什么:把项目变成能「问」的图
有一个工具,可以解决上面的问题,它叫做 graphify。这个工具可以把整个项目映射成一张知识图谱,然后你可以用自然语言去「问」它,不用再自己翻文件。

更妙的是,它不靠向量检索、不靠 embedding,而是在图里沿着节点和边去追溯路径,把「一个功能怎么串起来」这件事,讲得清清楚楚。
02
SETUP
一条命令,织出全图
在支持 AI 编程助手的工具里(Claude Code、Cursor、Codex、Gemini CLI、GitHub Copilot 等等),你只需要敲一句:
...bash
/graphify .
它就会扫描当前目录,把项目里的内容都抽出来,织成一张图。跑完之后,你会在项目里多出一个 graphify-out/ 目录,里面有三种产物:
1
graph.html:一张可以在浏览器里打开、能点、能筛选、能搜索的交互式图谱
2
GRAPH_REPORT.md:一份重点摘要,告诉你最核心的概念、意外关联,以及它「特别擅长回答」的问题
3
graph.json:完整的图谱数据,以后你可以反复去查,不用重新读一遍文件
没有 embedding,没有向量数据库。你问一个问题,它在图里沿着节点和边去追溯路径、解释一个概念,而不是去算余弦相似度、召回一堆可能相关的文本块。
03
怎么「问」它:explain 与 path
比如,想知道某个概念是什么,用 explain。这是它在 FastAPI 上跑出来的真实输出:
...text
$ graphify explain "APIRouter"
Node: APIRouter
Source: routing.py L2210
Community: 2
Degree: 47
Connections (47):
--> RequestValidationError [uses] [INFERRED]
--> Dependant [uses] [INFERRED]
--> .get() [method] [EXTRACTED]
<-- __init__.py [imports] [EXTRACTED]
...
它不光告诉你东西在哪一文件、第几行,还把每条连线标了来源:EXTRACTED 是源码里明写的,INFERRED 是它推断的,还有 AMBIGUOUS 表示它自己也不确定、留给你复核。推断出来的关系还会带一个 0 到 1 的把握分,越接近 1 越靠谱。
两个东西怎么连起来的?用 path:
...text
$ graphify path "FastAPI" "ModelField"
Shortest path (3 hops):
FastAPI --uses--> DefaultPlaceholder <--references-- get_request_handler() --references--> ModelField
一跳一跳亮出来,这种追溯是向量检索给不了的,对排查问题也特别有用。
04
代码如何被读懂:tree-sitter 三遍扫描
代码是怎么抽出来的?这是我觉着最舒服的一点。它用 tree-sitter 做 AST 解析,是规则化的,不调用大模型。官方说约 40 种语言,连 SQL 都确定性抽出,表、视图、外键、JOIN 关系都是直接抽出来的。只有文档、PDF、图片、音视频才走模型处理,所以纯代码项目建图基本不花 API 钱。
把上面的能力拆开看,graphify 处理你的文件其实分了三遍:
1
第一遍,代码结构(免费,不调 API):tree-sitter 解析代码,抽出类、函数、导入、调用图、注释。如果语料里只有代码,这一遍跑完就基本齐了,后面的语义处理会直接跳过。
2
第二遍,音视频(本地,不调 API):用 faster-whisper 在本地转录。为了让转录更贴近你的领域,它会用当前代码图里连接最多的那些概念去引导转录。转录结果有缓存,重跑会跳过已处理的部分。
3
第三遍,文档、论文、图片(走模型,耗 token):这一步会用 Claude 子代理并行处理 markdown、PDF、图片、转录稿,每个子代理读一批文件,输出节点、边和分组关系的 JSON 片段,最后合并成一张图。
另外还有两个工程上的小细节挺贴心:所有被抽取的文件都按内容做 SHA256 指纹缓存,重跑时没改过的文件直接跳过。代码抽取用多进程并行,官方说在 84 个代码文件的语料上,并行比串行快了约 1.66 倍。
05
核心能力:节点、社区与「为什么」
除了上面这些,graphify 还有几个挺有用的东西:
God nodes(核心节点)
项目里连接最多的那些概念。一眼就能看出整个系统「都流过哪些枢纽」。
Communities(社区)
用 Leiden 算法按边的密度把图聚成子系统。你能看到项目大概分成了哪几块、每块是干嘛的,而且这个聚类基于图结构本身,不依赖 embeddings。
跨文件的真实调用关系
calls / imports / inherits / mixes_in 这类关系能跨文件、跨语言解析出来。
「为什么」也成了一等公民
你写在代码里的 # NOTE:、# WHY:、# HACK: 这类注释,以及文档里的设计说明、ADR/RFC 引用,都会被抽成独立的节点,并和你对应的代码连起来。
06
硬数据:比 RAG 快 10 倍,便宜 11 倍
graphify 在公开基准上和自己比、也和别的系统比过,我把他们贴出来的关键数字如实放这儿(测试用的同一套 harness、同一个模型、同一份预算,评测由一个盲评裁判对照第二个独立裁判校验,一致性 90.6%):
0.497
LOCOMO recall@10(约 mem0 的 10 倍)
45.3%
同数据集 QA 准确率(比 mem0 高 18 点)
76%
LongMemEval-S 准确率(与 dense RAG 打平)
$1.40
记忆 ingest 成本(便宜约 11 倍)
在代码智能那一项,他们拿约 100 万行的真实 Python 仓库(ERPNext)测过:给一个固定的编程智能体配一个 graphify 工具,在评分问题集上的关键事实覆盖率从 grep+read 基线的 70.8% 提到了 82.0%,而且避免了「把整个仓库塞进每轮上下文」那种吃 token 的写法(那种写法大概要多花 20 倍 token,覆盖率反而更低)。
07
装进你的工具链:安装、团队与 MCP
graphify 现在支持 20 多种 AI 编程助手和 Agent 框架,比较主流的包括 Claude Code、Cursor、Codex、Gemini CLI、GitHub Copilot、Aider、OpenClaw、Kilo Code、Trae 等等。安装也分两层:先装包,再把它注册给你的助手。
...bash
uv tool install graphifyy # 装 CLI(注意包名是双 y 的 graphifyy)
graphify install # 把 skill 注册给你的 AI 助手
然后再在助手里面敲 /graphify . 就完事了。
对一个团队来说,它还有个省心的地方:graphify-out/ 是设计成可以提交到 git 的,这样团队里每个人 clone 下来就直接有一张现成的图。再跑一句 graphify hook install,之后每次 git commit 它会自动重建图谱(只做 AST,不花 API),还会设一个合并驱动,两个人并行提交时图会自动合并,不会出现冲突标记。当文档或论文变了,用 /graphify --update 只刷新那些节点就行。
你还可以把图直接暴露成一个 MCP server,让助手以工具调用的方式反复访问,甚至用 HTTP 方式让一整个团队都指向同一个地址。
08
30 秒,跑通你的第一个图谱
如果你想自己试,最快 30 秒:
...bash
uv tool install graphifyy
graphify install
然后打开你的 AI 编程助手,敲:
...bash
/graphify .
它就会给你的项目织出那张图,你再去 graphify-out/graph.html 里点着玩,或者用 explain / path / query 去问它。
项目地址:https://github.com/Graphify-Labs/graphify
豫公网安备41010702003375号