首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >开源项目SAN:用Graphify图形化知识图谱,加速开发效率

开源项目SAN:用Graphify图形化知识图谱,加速开发效率

作者头像
用户12724357
发布于 2026-09-15 19:00:19
发布于 2026-09-15 19:00:19
1540
举报

最近在做一个开源SAN 项目 —— 一个终端原生的 AI Agent,用 Go 写的A single ~12 MB binary with zero runtime dependencies。项目有 490 个 Go 文件,分布在 30 多个 package 中。我目前的开发方式是 vibe coding:用 Claude Code 在终端里写代码,不用 IDE。

这就带来一个问题:没有 IDE,怎么导航代码?

IDE vs 终端:代码导航的差距IDE 开发者点击 → 跳转定义 ✓右键 → Find References ✓Ctrl+Click → 依赖链 ✓一次点击搞定 ✓终端开发者grep → Read → grep → ...5-6 轮循环 😫每次消耗 context tokens 😫需要更好的方案!

问题本质:Context Window 是稀缺资源

AI 编程助手的上下文窗口有限。在终端里,每一次 grep + Read 都在消耗 token。要理解 "ProviderSelector 和 HookEngine 是怎么连接的",你可能需要:

grep -r "ProviderSelector" internal/    # 第 1 轮 

cat internal/llm/registry.go            # 第 2 轮 

grep -r "HookEngine" internal/          # 第 3 轮 

cat internal/hook/engine.go             # 第 4 轮 

grep -r "ProviderSelector" internal/hook/  # 第 5 轮 

# ...还在找...

5-6 轮操作,几百个 token,就为了回答一个依赖关系的问题。

IDE 用户一次点击就搞定了。我们终端用户呢?

Graphify:终端的代码导航层

Graphify[1] 是一个开源工具,它把整个代码库映射成一个可查询的知识图谱。一条命令替代多轮 grep/Read:

# 谁依赖 ProviderSelector? 

/graphify affected "ProviderSelector"  

# NewAgent 到 Session 的依赖链? 

/graphify path "NewAgent" "Session"  

# HookEngine 的邻接关系? 

/graphify explain "HookEngine"

实际效果:SAN 项目的知识图谱

我们在 SAN 项目上跑了一遍 Graphify,构建出的图谱:

指标

数值

节点数

7,123

边数

13,775

社区数

487(全部自动命名)

准确度

85% AST 提取 · 15% 推断 · 0% 模糊

导入循环

无 ✓

最有趣的发现 —— 核心节点(God Nodes):

1.contains() — 211 条边,连接 40 多个社区,是全项目的超级枢纽

2.PluginSelector — 72 条边

3.ProviderSelector — 60 条边

4.NewEngine() — 58 条边

5.NewData() — 55 条边

这些节点是修改代码时最需要注意的地方 —— 改动它们可能影响半个项目。

三个真实场景

场景 1:开发新功能

要加一个新的 LLM Provider,先了解现有的模式, 在Claude Code中运行:

/graphify query "how are LLM providers registered" 

/graphify path "NewProvider" "Registry"

图谱会返回 Provider 注册的完整路径,以及所有相关的节点和边。不用 grep 五六个文件。

场景 2:修复 Bug

发现了一个权限相关的 Bug,需要评估影响范围:

/graphify affected "PermissionBridge

图谱通过反向遍历,立即告诉你谁在调用这个组件 —— 比逐个文件 grep 快得多。

场景 3:重构

想拆分 contains() 这个 211 条边的超级枢纽,先看它的邻居:

/graphify explain "contains()"

图谱返回所有连接的节点和社区,帮你判断拆分是否安全。

从这里可以看出有,这绝对是个开发辅助利器.

它不替代文档,它替代 grep

SAN 项目有很完善的文档体系 —— docs/packages/ 下每个 package 都有设计文档,package-map.md 清晰地标注了层级和依赖边界。Graphify 不替代这些。

代码语言:javascript
复制
docs/packages/*.md

Graphify 替代的不是文档,而是那 5-6 轮 grep/Read 循环。

快速上手

# 1. 安装(需要 Python 3.10+) 

uv tool install graphifyy  

# 2. 注册到 Claude Code graphify install  

# 3. 构建图谱 /graphify .  

# 4. 开始查询 /graphify query "你的问题"

构建完成后,会生成三个核心文件:

· graph.html — 浏览器打开,交互式探索图谱,点击节点、按社区过滤, 如下这个类似的星云图

我们只看一个Plugin Selector UI组件的方法调用

· graph.json — 查询命令的数据源

· GRAPH_REPORT.md — 自动生成的分析报告,包含核心节点、社区地图、意外连接

图谱更新:代码改动后,增量更新只需 graphify update .,仅做 AST 解析,不消耗 LLM token。

关键洞察:终端原生 ≠ 二等公民

很多人觉得"没有 IDE 就是缺了什么"。但想想看 —— Claude Code 本身就是在终端里开发的,它不需要IDE。

SAN项目也没有.vscode/ 或 .idea/ 文件。

Vibe coding的范式下,终端不是IDE的替代品,而是第一等公民。我已经有半年没有使用过任何的IDE进行开发了。Graphify 就是这个范式下的代码导航工具 —— 专门为终端 + AI 助手的工作流设计。

终端原生开发的标配不是IDE的降级版,而是为这个范式量身打造的工具。

参考链接

[1] https://github.com/safishamsi/graphify

[2] https://github.com/genai-io/san

欢迎交流与转载,注明出处即可。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-06-12,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 问题本质:Context Window 是稀缺资源
  • Graphify:终端的代码导航层
  • 实际效果:SAN 项目的知识图谱
  • 三个真实场景
    • 场景 1:开发新功能
    • 场景 2:修复 Bug
    • 场景 3:重构
  • 它不替代文档,它替代 grep
  • 快速上手
  • 关键洞察:终端原生 ≠ 二等公民
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档