返回广场

Graphify:3.2万星开源工具,一键把代码变成可查询的知识图谱

痛点:代码越写越多,关系越来越乱 如果你是一个有几年开发经验的人,一定遇到过这种场景: 接手一个新项目,打开文件夹,几十个模块、上百个文件,调用关系、依赖关系、业务逻辑全混在一起。想改一个功能,不知道牵一发会动全身,改完一个地方,另一个地方就崩了。 文档?有的项目连README都没有,有

痛点:代码越写越多,关系越来越乱

如果你是一个有几年开发经验的人,一定遇到过这种场景:

接手一个新项目,打开文件夹,几十个模块、上百个文件,调用关系、依赖关系、业务逻辑全混在一起。想改一个功能,不知道牵一发会动全身,改完一个地方,另一个地方就崩了。

文档?有的项目连README都没有,有README的也就是一句"npm run dev"。等你问同事,同事也在翻代码找答案。

这不是你的问题,是绝大多数中小型团队的常态。代码在膨胀,知识在流失。

今天要介绍的这个工具,就是专门解决这个问题的——Graphify,3.2万Star的开源神器,能一键把任意文件夹转化成一个可查询的知识图谱。

Graphify是什么

Graphify是一个面向AI编程助手的"技能插件"(Skill),它能把任意文件夹中的代码、文档、论文甚至图片,全部转化为一个可查询、可视化的知识图谱

它最大的特点不是"画出一张好看的图",而是让你能用自然语言直接问问题,比如:

  • "这个功能改动了哪些模块?"
  • "这两个函数之间有什么关联?"
  • "实现某个接口的所有类是哪些?"

一句话总结:你给它一个文件夹,它给你一副"项目全景地图"。

核心功能

1. 双通道智能提取

Graphify不只是一个静态分析工具。它有两条提取通道:

通道方式适用内容开销
AST分析tree-sitter解析代码结构代码文件零LLM开销
语义提取LLM理解文档含义注释、文档、论文、图片按token计费

这意味着,代码的结构关系(类继承、函数调用)通过静态分析直接提取,不花钱。只有文档、图片这种需要"理解含义"的内容才走LLM,大大降低了分析成本。

2. 三级关系可信度

Graphify提取的关系不是简单的"A调用B",而是分三个等级:

  • EXTRACTED(1.0):代码里实打实的显式关系,比如import、调用
  • INFERRED(0.6-0.9):算法推断的语义关联,比如两个函数用了相同的模式
  • AMBIGUOUS(不确定):系统觉得有可能是关系,但不确定,标出来让你决定

这种分级设计非常实用:你不会被虚假的"关联"误导,但也不会遗漏"看起来不相关但逻辑上有联系"的代码。

3. 查询模式

建好图谱后,Graphify支持多种查询模式:

模式作用示例查询
BFS(广度优先)找"一层层的邻居""用户注册模块直接影响了哪些API?"
DFS(深度追踪)追一条调用链到底"这个bug是从哪条调用链传下来的?"
最短路径找两个组件的最简关系"前端登录框和后端鉴权中间经过了几层?"
节点解释让AI解释某个模块的作用"这个service层到底是干什么用的?"

4. 自动增量更新

代码修改了,图谱怎么办?Graphify用SHA256缓存,只处理变更的文件。代码层级的变更不需要重新走LLM,零开销更新。

你还可以设置Git Hooks,每次commit/checkout后自动重建图谱,永远保持最新。

5. 多平台输出

Graphify的输出不只是静态图片:

格式用途
graph.html浏览器交互可视化,可缩放可点击
graph.json数据持久化,可对接其他系统
--obsidian直接生成Obsidian笔记
--svg矢量图,可嵌入文档
--neo4j导入Neo4j数据库
--mcp对接MCP协议

安装步骤

Graphify支持多种安装方式。推荐新手用pip安装,最快上手。

方法一:pip安装(推荐)

pip install graphifyy
graphify --help

装完就能用。注意包名是 graphifyy(两个y),不要写错。

方法二:安装为Claude Code技能

如果你用Claude Code编程,可以把它安装为内置技能:

graphify install --platform claw

安装后,Claude Code会自动读取你项目的图谱,在对话中能直接引用项目结构。

方法三:安装为OpenCode/Codex技能

graphify install --platform opencode
# 或
graphify install --platform codex

方法四:Docker安装

docker pull graphify/graphify:latest
docker run -v $(pwd):/project graphify/graphify analyze /project

使用方法

第一步:分析一个项目

找一个你想分析的代码文件夹,执行:

cd /path/to/your/project
graphify analyze

默认会生成 graph.htmlGRAPH_REPORT.mdgraph.json

第二步:打开图谱浏览

open graph.html  # Mac
# 或
code graph.html  # VS Code预览

你会看到一个交互式图谱——节点是代码模块,边是它们之间的关系。可以缩放、拖拽、点击查看详情。

第三步:查询问题

# BFS查询:用户注册模块的影响范围
graphify query "what depends on UserAuth?" --mode bfs

# 最短路径:两个模块的关系
graphify query "path from API layer to Database layer"

# 解释节点
graphify query "explain PaymentService"

第四步:自动同步(进阶)

在项目根目录添加Git Hooks,每次提交自动更新图谱:

cd .git/hooks
cat > post-commit << 'EOF'
#!/bin/bash
graphify analyze --update
EOF
chmod +x post-commit

或者直接用文件监听:

graphify --watch  # 文件变化后3秒自动重建

实际场景举例

场景以前怎么做用Graphify怎么做
接手新项目花3天翻代码、问人、画图跑一条命令,10分钟看懂全局
代码审查逐文件看,容易漏关联问题直接看图谱里的影响范围
重构评估凭经验猜风险查询"改了A会影响谁",一目了然
知识沉淀写文档,过三个月就过时图谱自动更新,永远最新
新人培训老员工花两周带人翻代码看图谱+问自然语言,3天上手

跟同类工具对比

工具核心能力成本适合场景
Graphify代码结构+语义融合,可查询分析一次,查询几乎零成本中大型代码库日常维护
Sourcegraph企业级代码搜索按用户付费,贵大型团队/企业
Sourcetrail代码可视化已停止维护历史项目
Glean结构化代码索引企业级定价大规模代码库
手画架构图灵活费时费力,易过时小型项目/文档补充

小结

Graphify最大的价值,不是"画一张漂亮的架构图",而是把"翻代码找关系"这个低效活,变成"问问题秒出答案"

对于中国的开发者来说,它特别实用:

  • 不用翻墙买API:本地分析代码结构是免费的,只有语义提取需要LLM
  • 不用写复杂配置:pip install + 一条命令就能跑
  • 不用学习新语法:直接用英语或中文自然语言问问题

如果你是Claude Code、OpenCode、Codex的用户,把它装成技能后,AI助手会自动理解你的项目结构,编程效率直接翻倍。

项目地址https://github.com/safishamsi/graphify 安装命令pip install graphifyy 一句话记住它:给它一个文件夹,给你一张项目全景地图。

写评论

读者评论

0

暂无评论,来分享你的看法吧

相关推荐

结合当前内容、你的浏览习惯和搜索偏好推荐。