8.0
热点
AI SCORE
开源项目2026-10-22 18:08
Graphify 用语法树为 Agent 构建代码关系图
dev.to · AI#代码导航#知识图谱#Agent
Editor brief · 编辑速览
Graphify 使用 tree-sitter 解析代码,将结构关系保存为可查询的图,并通过社区发现算法划分大型代码库。它强调无需向量数据库或云服务,支持沿显式关系进行多跳查询。
文章思维导图
Knowledge map
AI brief
原文暂未完整获取,基于公开信息的快读
Graphify 想给代码 Agent 补上一张可查询的关系图:用 tree-sitter 解析代码,把函数调用、导入和继承等关系存成显式的边,再按社区发现算法拆分大型代码库。给出的节选称,它在本地运行,无需向量数据库或云服务,重点解决代码结构导航。
目前能确认什么
按节选描述,Graphify 的流程是解析文件、提取实体与关系、存储图、划分子图,再供 Agent 查询。它还通过 MCP 暴露查询能力,让 Agent 获取依赖关系及代码位置。
这与向量检索解决的问题不同。向量检索擅长寻找语义相近的代码;关系图则适合沿已建立的边连续追踪,例如从一个函数查到它调用的函数,再继续追踪下游依赖。社区发现按连接密度聚类,有助于分批加载相关代码,但聚类结果不必然等于业务模块。
节选中的查询代码明确标为假设示例,不能直接当作可运行 API。
我的判断
结构关系可追溯,不等于依赖关系一定完整。
tree-sitter 能解析语法,但跨文件符号解析还需要处理导入、别名和类型等信息。前端项目里的动态导入、运行时注入,也可能让静态关系图遗漏实际调用。因此,节选中「不会遗漏传递调用」的表述,不能仅凭解析过程确定就成立。
对程序员更具体的价值,是给重构和影响范围分析提供可检查的路径:每条依赖能否定位到源码,比只返回几段相似代码更方便核对。
目前仍需确认跨文件关系的解析准确性、代码修改后的图更新机制,以及真实 MCP 查询接口。节选也没有充分说明解析失败如何反馈缺失关系。在这些问题明确前,我会把它作为导航线索,不把查不到依赖视为没有依赖。