Graphify 深度解析:如何用知识图谱为 AI 编程助手实现 71.5 倍 Token 压缩
约 7 分钟2061 字2 次阅读

Graphify 深度解析:如何用知识图谱为 AI 编程助手实现 71.5 倍 Token 压缩
如果每次问 AI 问题都要让它重新"读一遍"整个代码库,就好比每次想知道冰箱里有没有鸡蛋,就把冰箱里所有东西全搬出来看一遍。Graphify 正是为了解决这个问题而诞生的。
一、背景:Karpathy 的 Raw 文件夹地狱
2026年4月,Andrej Karpathy 在 X 上分享了他的个人 LLM 知识库玩法——用一个 /raw 文件夹存放所有文档、代码、论文、图片,每次查询都让 LLM 全文扫描。效果很好,但代价是 token 消耗巨大、延迟高得离谱。Karpathy 本人都承认:"每次都得从头读一遍,Token 消耗巨大。"
这个"理念"催生了大量 LLM Wiki 项目,但大多数只是简单地把 Markdown 文件堆在一起,没有解决核心问题——重复扫描带来的高昂成本。
二、Graphify 是什么
Graphify(safishamsi/graphify,3200+ ⭐)是第一个将 Karpathy 的 LLM Wiki 理念工程化落地的开源项目。它将任意文件夹一键转化为持久化知识图谱,支持 19 种编程语言,可作为 Claude Code、Codex、OpenClaw 等 AI 编程助手的 Skill 使用。
核心价值主张: 一次"编译",永久高效查询。每次查询 Token 消耗降低 71.5 倍(项目方基准测试数据)。
三、核心技术架构:七级流水线
Graphify 的核心是一条七级处理流水线,每级独立,通过纯 dict 和 NetworkX 图通讯——无共享状态,无副作用:
检测 → 提取 → 构建 → 聚类 → 分析 → 报告 → 导出
双轨提取引擎(最关键的设计)
| 左轨: AST 静态解析 | 右轨: LLM 语义提取 |
|---|---|
| 适用: 代码文件 | 适用: 文档、论文、图片 |
| 工具: tree-sitter | 工具: Claude 并行子代理 |
| Token 消耗: 零 | Token 消耗: 一次性构建成本 |
| 速度: 毫秒级 | 速度: 并行批处理 |
左轨对代码文件进行确定性语法树分析——类、函数、import、调用图、docstring,全程无需 LLM,零 API 费用,毫秒级完成。右轨对文档、论文、图片启动并行子代理,利用 Claude 视觉能力提取概念、实体、引用关系和设计决策的"为什么"。
为什么不用向量数据库
Graphify 刻意不使用 embedding 和向量数据库。聚类完全基于图拓扑结构——Leiden 算法通过边密度发现社区。图结构本身就是相似性信号,不需要单独的 embedding 步骤。
技术栈:
- 图引擎: NetworkX(纯 Python,无外部依赖)
- 社区检测: Leiden 算法(graspologic 库)
- 代码解析: tree-sitter(确定性 AST,19 种语言)
- 可视化: vis.js(交互式 HTML 图谱)
四、三阶段处理流程
第一阶段: AST 静态分析(零 Token 消耗)
基于 tree-sitter 解析 19-25 种编程语言,提取类、函数、导入、调用图、文档字符串、设计原理注释(# NOTE:、# WHY:、# HACK:)。
第二阶段: 多模态语义提取(一次性 LLM 调用)
- PDF/论文: 引用挖掘 + 概念提取
- 图像/截图: Claude Vision 视觉理解
- 视频/音频: 本地 faster-whisper 转录(音频永不离开本机)
第三阶段: 图谱聚合与社区发现
- NetworkX 构建异构图结构
- Leiden 算法基于图拓扑进行社区检测
- 每条边标注关系类型
五、信任审计链:Graphify 最有价值的设计
每条关系边都附带三级置信度标签:
| 标签 | 含义 | 置信度 |
|---|---|---|
| EXTRACTED | 直接来自代码解析 | 永远 1.0 |
| INFERRED | 合理推论 | 0.4-0.9 |
| AMBIGUOUS | 不确定的关系 | 0.1-0.3 |
Graphify 还提取 rationale_for(设计原理) 节点——不只是记录代码做了什么,还记录为什么这样做。
六、亮眼特性
超边(Hyperedges)
支持 3+ 个节点参与同一个概念,例如所有实现认证流程的函数。
Always-On 模式
运行 graphify claude install 后,PreToolUse 钩子会在每次 Grep/Glob 操作前先读取图谱报告。
MCP 服务器模式
--mcp 把图谱暴露为 MCP stdio 服务器,提供 query_graph、get_neighbors、shortest_path 等工具。
七、71.5× Token 压缩的逻辑
第一次运行: 消耗 Token 进行提取和图谱构建(一次性成本) 后续每次查询: 读取紧凑的 graph.json 而非原始文件 增量更新: SHA256 缓存,变更文件才重新处理
付一次"编译"成本,获得无限次高效查询。
八、隐私与安全
- 代码文件通过 tree-sitter 在本地处理——不会离开你的机器
- 无遥测、无使用追踪
- URL 验证、路径沙箱、内容大小限制、HTML 转义——完整安全防护层
九、适合谁用
- AI 编程助手重度用户(Claude Code、Cursor、OpenClaw)
- 大型代码库维护者
- 需要管理论文、笔记、多媒体资料的研究者
如果你正在用 AI 编程助手写代码或做研究,花 5 分钟试试 /graphify。你会发现它帮你看到了代码库中自己都不知道存在的连接。
参考资料: Graphify GitHub | Karpathy LLM Wiki