Graphify: 用大模型建立代码知识图谱

基于 Karpathy LLM Wiki 思路的开源工具,将任意代码库、文档、论文、图片转化为可查询的知识图谱

什么是 Graphify

Graphify(safishamsi/graphify)是一个 AI 编码助手 Skill,基于 Karpathy 的 LLM Wiki 思路开发。它能将任意文件夹中的代码、文档、论文、图片转化为可查询的知识图谱,帮助 AI 理解代码库的结构和关系。

GitHub:https://github.com/safishamsi/graphify

“Type /graphify — it reads your files, builds a knowledge graph, and gives you back structure you didn’t know was there.”

核心特点

支持多种文件类型

  • 代码:19 种编程语言(Python, JS, TS, Go, Rust, Java, C, C++, Ruby, C#, Kotlin, Scala, PHP, Swift, Lua, Zig, PowerShell, Elixir, Objective-C)
  • 文档:PDF、Markdown
  • 图片:截图、架构图、白板照片(Claude Vision 提取)
  • 其他语言:19 种语言代码均支持 tree-sitter AST 解析

支持多种 AI 工具

  • Claude Code
  • Codex
  • OpenCode
  • OpenClaw
  • Factory Droid

智能预热机制

Graphify 不是每次提问都重跑分析,而是:

  1. 构建一次知识图谱,写入 graphify-out/GRAPH_REPORT.md
  2. CLAUDE.md 中注册规则,让 AI 每次回答架构问题前先读图谱
  3. Claude Code 用户还会在每次 Glob/Grep 调用前触发 PreToolUse hook,自动检查图谱

安装方法

方式一:直接通过 npm 运行

1
npx graphify

方式二:克隆到本地

1
2
git clone https://github.com/safishamsi/graphify.git
cd graphify

OpenClaw 中使用

对于 OpenClaw,Graphify 使用 sequential extraction(顺序提取)模式,不需要额外的 hook 配置,直接调用 Skill 即可。

使用流程

第一步:在目标项目目录运行

1
2
npx graphify
# 或在 OpenClaw 中直接说:用 Graphify 分析这个项目

Graphify 会:

  1. 递归扫描目录下所有支持的文件
  2. 对代码文件使用 tree-sitter 提取 AST 结构和语义关系
  3. 对文档/图片使用 Claude Vision 提取概念和关系
  4. 生成 graphify-out/ 目录,包含知识图谱数据

第二步:查询知识图谱

构建完成后,可以用自然语言提问:

  • “这个项目的主要模块有哪些?”
  • “函数 A 被哪些地方调用?”
  • “这个类的继承关系是什么?”
  • “哪些文件负责数据库操作?”

OpenClaw 中查询示例

1
2
3
用 Graphify 帮我理解这个代码库:
- 项目的主要架构是什么?
- 核心模块之间的依赖关系?

工作原理

Graphify 的核心思想来自 Karpathy 的 LLM Wiki 模式:不依赖 RAG 的向量检索,而是让 LLM 直接构建结构化的知识表示

1
原始文件 → LLM 解析 → 知识图谱(节点+边+关系)→ 自然语言查询

节点(Node)

代表代码中的实体:函数、类、模块、变量、文件

边(Edge)

代表关系:调用关系、继承关系、导入关系、引用关系

元数据

每个节点和边都包含置信度分数、来源信息、最后确认时间

与传统 RAG 的区别

维度 传统 RAG Graphify 知识图谱
检索方式 向量相似度(关键词匹配) 语义关系(图结构)
理解深度 片段级 概念级
跨文件关联
查询"设计模式" 可回答
需要向量数据库

应用场景

1. 新项目接手

接手陌生代码库时,用 Graphify 快速了解架构和模块关系

2. 代码审查

审查 PR 时,图谱能告诉你改动影响的完整链路

3. 技术债务梳理

找出重复代码、未使用的导出、循环依赖等问题

4. 文档自动生成

基于代码结构自动生成架构文档

5. 论文笔记整理

将学术论文截图/ PDF 转化为知识网络

参考资源


本文首发于 2026-04-08,基于 Graphify v3 版本

Gear(夕照)的博客。记录开发、生活,以及一些不足为道的思考……