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 在多种语言中解析 callsimportsinheritsmixes_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 脚本安装。

内部工作原理

  1. AST 提取 – Tree-sitter 解析每个源文件,生成确定性的抽象语法树。
  2. 边创建 – 显式关系(导入、调用、继承)成为 EXTRACTED 边。Graphify 进一步解析额外连接(如类使用的函数),并标记为 INFERRED
  3. 社区检测 – (可选)Leiden 算法将节点分组为子系统。
  4. 非代码语义分析 – 若启用 PDF、视频或办公扩展,所选 LLM 处理这些文件并添加与周围代码链接的概念节点。
  5. 导出 – 完整图谱保存为 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 辅助开发工具集成。

相关

  • 项目
  • 项目
  • 项目
  • 项目