深度·Ross·2026.04.09
Graphify:AI编码助手的知识图谱革命
Graphify通过Tree-sitter AST解析和LLM语义提取,将任意代码库转化为可查询知识图谱,实现71倍token压缩,支持19种语言。
Graphify 深度研究:AI 编码助手的知识图谱革命
项目概述
Graphify 是由 Safi Shamsi 开发的一款专为 AI 编码助手(Claude Code、OpenAI Codex、OpenCode)设计的多模态知识图谱构建工具。
- GitHub: 3.7k+ Stars
- License: MIT
- 技术栈: NetworkX + Tree-sitter + vis.js + Leiden 社区检测
核心价值:将任意代码库(源码 + 文档 + 论文 + 图片)转化为可查询的知识图谱,让 AI 理解「代码做什么」和「为什么这样设计」。
核心技术架构
1. Tree-sitter AST 提取
Graphify 第一轮遍历使用 Tree-sitter 对所有代码文件进行静态分析:
- 确定性:AST 提取的所有内容标记为
EXTRACTED(置信度 1.0) - 本地处理:代码文件不发送任何数据到外部
- 支持 19 种语言:
- 脚本语言:Python, JavaScript, TypeScript, Ruby, PHP, Lua, PowerShell
- 系统语言:Go, Rust, C, C++, Zig, Swift, Objective-C
- JVM/.NET:Java, Kotlin, Scala, C#
- BEAM:Elixir
2. LLM 语义提取
第二轮由 Claude/GPT 处理文档、论文、图片:
- 文档(.md, .txt, .rst):提取概念、关系、设计动机
- 论文(.pdf):引用挖掘 + 概念提取
- 图片(.png, .jpg, .webp, .gif):Claude Vision 分析截图和图表
这些边标记为 INFERRED(置信度评分)或 AMBIGUOUS(需人工复核)。
3. 社区检测
使用 Leiden 算法基于图拓扑结构进行聚类,无需 embeddings 或向量数据库。语义相似边已存在于图中,直接影响社区发现。
核心功能
# 基础使用
graphify ./raw # 对当前目录构建图谱
graphify ./raw --mode deep # 更激进的 INFERRED 边提取
graphify ./raw --update # 只重新解析修改过的文件
# 查询
graphify query "what connects attention to the optimizer?"
graphify path "DigestAuth" "Response"
graphify explain "SwinTransformer"
# 导出
graphify ./raw --graphml # Gephi/yEd 格式
graphify ./raw --neo4j # Neo4j Cypher
graphify ./raw --wiki # Obsidian wiki
graphify ./raw --svg # SVG
# 自动同步
graphify hook install # git hooks,commit 时自动重建
graphify ./raw --watch # 监听文件变化
# AI 助手集成
graphify claw install # OpenClaw 集成性能数据
| 测试 Corpus | 文件数 | 压缩比 |
|---|---|---|
| Karpathy repos + 5 论文 + 4 图片 | 52 | 71.5x |
| Graphify 源码 + Transformer 论文 | 4 | 5.4x |
| httpx 库 | 6 | ~1x |
BFS 子图查询:约 2k tokens vs 原始 ~670k tokens(500k 字 corpus)
与传统 RAG 的区别
| 维度 | Vector RAG | Graphify |
|---|---|---|
| 语义理解 | 依赖 embedding | 结构 + 语义双通道 |
| 代码理解 | 差 | Tree-sitter AST 精确提取 |
| 可解释性 | 黑盒 | 每条边标注 EXTRACTED/INFERRED/AMBIGUOUS |
| 跨语言 | 一般 | 19 种语言原生支持 |
| 维护 | 需重新向量化 | 增量更新,2 秒内完成 |
隐私
- 代码文件:完全本地处理,Tree-sitter 解析,不发送第三方
- 文档/论文/图片:发送到用户配置的 AI 模型 API,使用用户自己的 API Key
- 无 telemetry,无追踪
安装
pip install graphifyy
graphify install
graphify claw install # OpenClaw 集成适用场景
适合
- 大型代码库(>10k 行)的 AI 辅助理解
- 跨模块依赖追踪和重构
- 文档/论文/代码混合的知识管理
- 减少 token 消耗,提升上下文效率
不适合
- 小型项目(直接读源码更快)
- 纯向量检索已满足需求的情况
总结
Graphify 代表了一种新的 AI 辅助编程范式:不依赖向量相似度,而是通过结构化的知识图谱让 AI 理解代码的内在联系。对于需要处理大型、复杂代码库的开发者来说,这是一个值得关注工具。