深度·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 理解代码的内在联系。对于需要处理大型、复杂代码库的开发者来说,这是一个值得关注工具。