Graphify
开源知识图谱技能

Graphify — 面向 AI 编码助手的知识图谱

Graphify 是一项开源技能,通过把代码、文档、论文和图示构建为可查询知识图谱,帮助 AI 编码助手理解多模态代码库。

Click to Use Graphify MCP Free

什么是 Graphify?

Graphify 是为 AI 编码助手(如 Claude Code、OpenAI Codex、OpenCode)打造的多模态知识图谱构建器。它结合 Tree-sitter 静态分析与 LLM 语义抽取,将整个仓库(源代码、文档、研究论文、图示)转换为可交互图谱,同时解释代码“做什么”和“为什么这样设计”。项目由 Safi Shamsi 维护,采用 MIT 许可证,并建立在 NetworkX 与 Tree-sitter 等成熟库之上。

3.7k+GitHub Stars
MIT许可证
71.5×Token 压缩比
Python 3.10+运行环境

核心能力

Graphify 将静态分析、语义抽取和图聚类统一为一个可被 AI 编码助手直接调用的技能。

多模态抽取

解析代码(.py、.js、.go、.java 等)、Markdown、PDF 与图片。Tree-sitter 提取 AST、调用图和注释;LLM 从文本抽取概念;视觉模型读取图示。

知识图谱构建

将所有节点与边合并到 NetworkX 图中,并使用 Leiden 算法进行语义社区检测,无需向量嵌入。

核心节点与异常连接

识别系统中度数最高的“god nodes”,并标记跨文件、跨领域的意外关联,帮助深挖问题。

交互式输出

导出交互式 `graph.html`、可查询 `graph.json` 和可读的 `GRAPH_REPORT.md` 审计报告。

助手集成

内置 `/graphify`、`/graphify query`、`/graphify path`、`/graphify explain`,可用于 Claude Code、Codex、OpenCode 等。

安全默认

严格输入校验:仅允许 http/https,限制体积与超时,路径约束,节点标签 HTML 转义,防 SSRF/注入/XSS。

架构与流水线

Graphify 采用多阶段流水线。每个阶段都是独立模块,贡献者可以按需扩展。

detect — 收集文件 extract — AST + LLM 节点/边 build — NetworkX 图构建 cluster — Leiden 社区划分 analyze — 核心节点与异常连接 report — 生成 GRAPH_REPORT.md export — HTML / JSON / Obsidian

配套模块包括用于 URL 抓取的 `ingest.py`、语义缓存 `cache.py`、输入校验 `security.py`、实时更新 `watch.py` 和 MCP 服务 `serve.py`。

本地安装与运行

使用 Python 3.12 和 uv 从仓库安装 Graphify AI。包名为 private-context-mcp,CLI 命令为 private-context。

# 需要 Python 3.12 和 uv;请在 Graphify AI 仓库根目录执行
uv sync --extra dev --extra cloud --no-editable \
  --reinstall-package private-context-mcp

# 验证本地安装
uv run --no-sync private-context doctor

# 启动本地 stdio MCP 服务
uv run --no-sync private-context serve --transport stdio

这些命令使用 Graphify AI 锁定的依赖和本地运行时;如无需本地安装,可直接使用 app.graaph.org 托管控制台。

实践示例

仓库内置可复现语料,展示 Graphify 在小型库与大型代码+论文混合语料上的表现。

httpx(小规模)

6 个 Python 文件模拟 HTTP 传输层。结果:144 个节点、330 条边、6 个社区。核心节点:Client、AsyncClient、Response、Request。异常连接:DigestAuth → Response。

Karpathy 混合语料

3 个 GPT 框架仓库 + 5 篇 attention 论文 + 4 张图示(约 52 个文件、9.2 万词)。结果:285 个节点、340 条边、53 个社区。平均查询约 1.7k token,对比朴素方式约 123k,压缩约 71.5×。

对比

Graphify 与代码智能领域相邻开源项目的关系。

项目聚焦点优势相对 Graphify 的局限
Sourcegraph跨仓库代码搜索企业级导航能力不是知识图谱;设计语义能力有限
Code2Vec函数级向量表示向量检索与分类无图结构,且不支持多模态输入
Neo4j通用图数据库强大的 Cypher 查询不会自动从代码生成知识图谱

安全、许可与可信性

Graphify 采用 MIT 许可证。核心依赖 NetworkX(BSD)和 Tree-sitter(MIT)均为宽松开源协议。项目不做遥测。唯一外部网络调用是语义抽取步骤,使用你自己的模型 API Key;仅发送文档语义描述,不发送原始源码。URL 被限制为 http/https,下载有大小和超时限制,输出路径有包含校验,节点标签做 HTML 转义,以防 SSRF、Cypher 注入与 XSS。

常见问题

Graphify 会把我的代码发给第三方模型吗?

不会。Graphify 只发送文档与图示的语义描述给你已配置的模型,不会发送原始源码文件。

支持哪些 AI 编码助手?

已开箱支持 Claude Code、OpenAI Codex 与 OpenCode(通过 `skill-*.md` 清单)。任何可执行 shell 命令的助手都可调用 `graphify`。

Graphify 能处理多大规模的代码库?

Tree-sitter 解析与 NetworkX 构建基本随代码规模线性增长。在约 50 万词语料上,BFS 子图查询通常约 2k token,而朴素方式约 67 万 token。

Graphify 可用于商业场景吗?

可以。Graphify 采用 MIT 许可证,个人与商业用途均可免费使用。