Graphify-Labs/graphify
Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store.
Graphify – 将代码库转换为可搜索的知识图谱
是什么 – Graphify 是一个基于 Python 的 CLI,可解析项目(源代码、文档、PDF、图像、视频/音频)并构建其发现概念的 知识图谱。图谱以 graph.json 存储,并以交互式 graph.html 可视化。随后,您可以使用 LLM 驱动的编码助手(Claude、Copilot、Cursor、Gemini 等)通过查询该图谱而非 grep 文件来回答问题、追踪连接或解释符号。
核心理念
- 无 LLM 的代码解析 – 使用 Tree-sitter AST 支持约 40 种语言,因此不会创建嵌入或向量存储,且数据不会离开您的机器。
- 显式 vs 推断边 – 每个链接都标记为
EXTRACTED(直接从源码读取)或INFERRED(由 Graphify 的解析器推导),让您清楚了解哪些是原始代码,哪些是推断内容。 - 超越代码 – 可添加文档、PDF、图像和视频/音频;其语义分析由您配置的 LLM(OpenAI、Anthropic、Gemini、Ollama 等)执行。
- 本地优先 – 仅可选的语义分析会调用外部模型;重头工作(AST 提取、社区检测、图谱构建)完全在您的计算机上运行。
- 丰富查询 –
graphify query "<问题>"、graphify explain "<符号>"和graphify path A B可让您检索子图、获取节点的简洁解释,或查看两个概念之间的最短连接路径。
快速开始(约 30 秒)
# 安装 CLI(推荐使用隔离工具)
uv tool install graphifyy # 或:pipx install graphifyy
# 将技能注册到您的编码助手
graphify install
现在打开任何支持的助手并输入:
/graphify .
graphify-out/ 中将出现三个文件:
graph.html– 可在浏览器中打开的交互式可视化图谱。GRAPH_REPORT.md– 高级摘要、关键概念和建议问题。graph.json– 用于自定义查询的完整机器可读图谱。
主要功能
| 功能 | 你将获得 |
|---|---|
| 上帝节点 | 连接最多的概念 – 代码库的“枢纽”。 |
| 社区 | 自动 Leiden 聚类,将相关子系统分组,无需 LLM 标注。 |
| 跨文件链接 | 通过 Tree-sitter 在多种语言中解析 calls、imports、inherits、mixes_in。 |
| 理由节点 | # NOTE: / # WHY: 注释和 ADR/RFC 引用成为与代码链接的一等节点。 |
| 多媒体 | 文档、PDF、图像、视频/音频可加入同一图谱(需适当可选扩展)。 |
| 本地优先解析 | 无嵌入、无向量存储;仅非代码资产需要可选 LLM 调用。 |
| 查询语言 | 自然语言问题(graphify query)、路径追踪(graphify path A B)或节点解释(graphify explain)。 |
安装详情
| 步骤 | 命令 | 说明 |
|---|---|---|
| 包 | uv tool install graphifyy(或 pipx install graphifyy) |
PyPI 名为 graphifyy(双 y)。 |
| 技能注册 | graphify install [--platform <assistant>] [--project] |
写入每个助手读取的微型技能文件。使用 --project 可将技能限制在当前项目内。 |
| 可选扩展 | uv tool install "graphifyy[pdf]"、... [neo4j]、... [all] 等 |
添加 PDF 提取、Neo4j 推送、视频转录、语言特定解析器等。 |
| 前置条件 | Python 3.10+,uv(推荐)或 pipx。 |
macOS: brew install python@3.12 uv;Windows: winget install astral-sh.uv;Linux: 通过 apt 或 curl 脚本安装。 |
内部工作原理
- AST 提取 – Tree-sitter 解析每个源文件,生成确定性的抽象语法树。
- 边创建 – 显式关系(导入、调用、继承)成为
EXTRACTED边。Graphify 进一步解析额外连接(如类使用的函数),并标记为INFERRED。 - 社区检测 – (可选)Leiden 算法将节点分组为子系统。
- 非代码语义分析 – 若启用 PDF、视频或办公扩展,所选 LLM 处理这些文件并添加与周围代码链接的概念节点。
- 导出 – 完整图谱保存为 JSON;基于 D3 的 HTML 查看器进行交互式渲染。
基准测试(仓库中报告)
- LOCOMO(300 个查询)上的 Recall@10:0.497,远高于 mem0(0.048)和 supermemory(0.149)。
- LOCOMO 上的 QA 准确率:45.3%(supermemory 49.7%,mem0 27.3%)。
- LongMemEval-S(50 个查询)QA 准确率:76%(与密集 RAG 方法并列)。
- 图谱构建的 LLM 信用:0 – 核心图谱构建从不调用 LLM。
生态系统与集成
- 支持的助手 – Claude Code、Cursor、GitHub Copilot CLI、VS Code Copilot Chat、CodeBuddy、Kilo、Aider、OpenClaw、Factory Droid、Trae、Gemini CLI、Hermes、Kimi、Amp、Google Antigravity,以及任何读取通用
~/.agents/skills/位置的框架。 - 语义分析后端 – OpenAI、Anthropic、Gemini、Azure OpenAI、Ollama、Bedrock 等(通过
--backend和相应扩展选择)。 - 图谱输出目标 – 将图谱推送到 Neo4j 或 FalkorDB,或导出为 SVG。
- 钩子 –
graphify hook install添加 Git post-commit 钩子,记录解释器路径,确保技能在 CI 或 GUI Git 客户端中正常工作。
你可能不需要它的情况
- 如果你只需要简单的关键词搜索(
grep)或传统的向量存储 RAG 流水线,Graphify 的图谱中心方法可能过于复杂。 - PDF/图像/视频的语义分析需要外部 LLM API 密钥;没有它,你只能获得仅含代码的图谱。
TL;DR
Graphify 让你将任何项目转换为确定性、本地生成的知识图谱,你的 AI 编码助手可以查询它,而不是扫描原始文件。它快速、代码部分可离线运行,并与大多数现代 AI 辅助开发工具集成。
相关
- 项目
- 项目
- 项目
- 项目