一个查询只花628个token,直接读同一个文件要13659个token。差距接近20倍,这就是graphify在真实仓库上跑出来的数字。
![]()
这个项目本周在技术圈刷屏:GitHub星标突破126k,进入Y Combinator,还上了Vercel Marketplace。它的用法很直接——在Claude Code、Codex或Cursor里输入/graphify,智能体就不再逐个读文件,而是去查一张代码图谱。
"省token"这种说法容易讲、难验证。有人在一台普通Linux机器上装了它,指向一个真实仓库,不用云试用、不用API密钥,把过程完整跑了一遍。
它到底是什么
graphify是一个开源(Apache-2.0)的Python命令行工具,外加一个智能体技能。它用tree-sitter解析项目,往graphify-out/目录写三个文件:
- graph.html,浏览器里打开的交互式力导向图
- GRAPH_REPORT.md,包含"god节点"、社区和意外连接的摘要
- graph.json,智能体通过explain、path、query三个命令查询的完整图谱
代码抽取是确定性的、本地完成的。只有处理文档、PDF、图片、视频,或者给社区命名时才会调用大模型,而且需要你自己配置后端。
建图:2秒,0 token
测试环境是Debian 13加Python 3。注意PyPI包名里有两个y:graphifyy,装到的版本是0.9.92。测试仓库选了httpx——一个知名的Python HTTP客户端,约17750行Python代码,外加文档和更新日志。规模足够有意思,又小到能大致判断答案对不对。
纯代码建图不需要助手,命令行直接跑graphify update .即可。首次构建耗时2.1秒,产出2233个节点、4453条边、166个社区。改动一个文件后做增量重建,只重新解析那一个文件,耗时1.6秒。报告页脚自己写着:Token成本0输入、0输出。
输出文件不算小:graph.json有1.7MB,graph.html有1.9MB,GRAPH_REPORT.md有24KB。Markdown文档也被当作结构拉了进来,所以CHANGELOG.md和docs/api.md都成了节点。
报告里哪些是对的
"god节点"列表对新贡献者来说是一份不错的首页导读:Response以170条边居首,Request 111条,Changelog 79条,Client 69条,AsyncClient 51条,BaseClient 45条。这确实是httpx的核心结构。
边的来源也标得很清楚:88%是EXTRACTED(直接从源码读出),12%是INFERRED(推断),平均置信度0.91。每条边都带这个标签,能让人知道哪些该信。
"意外连接"这一栏用处不大。每一条都是更新日志或文档标题连到Client,事实没错,但谈不上意外。
省下的token从哪来
这才是智能体实际执行的部分。所有输出都用tiktoken的cl100k编码统计过。对Client执行explain,结果是628个token,列出了69条连接,带文件名和行号,比如指向HTTPTransport的uses关系,标注为INFERRED,位置在httpx/_client.py第731行。而直接读_client.py本身要13659个token。
path命令返回一条三跳链路,一行就够:Client经_auth.py包含DigestAuth。query命令花了1728个token,跑了一次广度优先搜索,命中536个节点但只展示82个,并打印了明确的TRUNCATED警告,提示把预算提到14720才能看全。
所以对于"X在哪、谁碰了它"这类问题,查图谱确实比倒整个文件便宜约20倍。但它替代不了读代码——一旦智能体要改函数,图谱只能把你指到正确的行,行里的内容它并不包含。
两个粗糙的地方
一是重名。执行explain "Client"会被拒绝,因为Client同时匹配httpx/_client.py里的类和docs/api.md里的一个标题。报错会提示改用path::symbol形式,这样能work,但文档和代码一起建索引,常见名字撞车会很频繁。
二是用小模型给社区打标签。没有API密钥时,166个社区直接用代表性文件或符号命名,比如test_content.py、AsyncByteStream。graphify可以借助大模型重命名,Ollama也行,但需要先装openai包——第一次运行时它会提示你。在测试机上用1.7B模型跑CPU,跑了超过11分钟没结束,只能手动终止。代码图谱本身完全不需要这一步,想要好看的标签,就得给它一个像样的模型或API密钥。
值不值得装
针对代码场景,值得。免费、本地、快,explain和path能在智能体开始翻文件之前给它一张便宜的地图。把graphify update .挂进git钩子,让智能体优先查图谱,是个合理的用法。
没有测试的部分包括:付费助手里面的/graphify技能、对PDF和图片的语义处理,以及托管版Graphify Cloud宣称的"节省80% token"。628对13659这组数字,只是一个仓库上的一次查询,不是对整个智能体会话的基准测试。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.