Graphify — 知识图谱生成器
把任意代码、文档、论文、图片、视频文件夹变成可查询的知识图谱,让 AI 能精准回答关于项目的任何问题。
数据流有一定披露:声明只读取 GEMINI/GOOGLE 密钥,敏感文件跳过,视频转写本地提示。但 SKILL.md 指示代理自动从 PyPI 安装第三方包 'graphifyy'(含 --break-system-packages 兜底),供应链信任未验证;自动克隆任意 GitHub 仓库到 ~/.graphify;删除/覆盖 graphify-out 之外无回滚说明。扣分:自动安装外部包与任意克隆缺用户确认,权限超出最小化,回滚不完整。
指令结构完整、缓存与分块逻辑自洽、失败路径(0 文件、转写失败、缓存命中)有部分处理,但完全无测试证据,关键路径(AST 提取、语义子代理、Neo4j push)静态不可验证,SKILL.md 文件在节点 ID 规范处截断,后续步骤缺失,可能导致执行中断。扣分:无测试、文件截断、错误反馈深度不足。
场景明确(代码库/文档知识图谱查询),参数与输出格式列举详细;但 description 触发条件过宽('user asks any question about a codebase' 且仅凭 graphify-out/ 存在即接管),有误触发风险;核心功能依赖 GitHub、PyPI、Gemini/Whisper,未声明中文支持,中国大陆可达性差。扣分:触发边界过宽、非适用范围未声明、目标环境可达性风险。
MIT 许可覆盖仓库,SKILL.md 分层合理(Usage/用途/步骤),README 有维护者与贡献路径;但该 skill 无版本号、无 changelog、无已知限制章节,发布者未经注册表验证,SKILL.md 截断暗示维护不完整。扣分:版本治理缺失、已知限制未披露。
声称的产出(HTML 图谱、GraphRAG JSON、GRAPH_REPORT.md)有价值且高于手工做图,但静态审阅无法验证任何输出可直接使用;'--html 是 no-op' 一类条目提示文档与行为可能有漂移。扣分:无代表性输出证据,比较收益仅凭声明。
仅有一份技能说明文件,无针对该 skill 的测试、CI 覆盖(仓库 CI 针对前端/部署令牌,不覆盖 graphify),无第三方执行证据。扣分:关键声明无独立可复现材料。
- 该技能会自动从 PyPI 安装第三方包 'graphifyy'(含 --break-system-packages),属供应链信任风险,建议首次运行前人工审计该包。
- description 触发条件过宽:任何代码库问题且存在 graphify-out/ 时即接管,可能误触发;建议仅在显式 /graphify 调用时使用。
- 核心依赖 GitHub、PyPI 与 Gemini API,中国大陆网络可达性差且未声明中文支持。
- SKILL.md 在节点 ID 规范处被截断,运行时可能因指令缺失而中断。
- 技能无版本号与 changelog,更新行为不可预期。
这个 Skill 能做什么,适合哪些场景?
Graphify 是一个 Claude Code 技能,通过 /graphify 命令将一个文件夹(或 GitHub 仓库)的内容提取为实体-关系知识图谱。它先做文件探测和可选的音视频转写,再用确定性 AST 解析代码、用 LLM 子代理(或 Gemini API)做语义抽取,然后进行社区检测并生成三种输出:交互式 HTML、GraphRAG 就绪的 JSON 和一份通俗的 GRAPH_REPORT.md。图谱持久化在 graphify-out/ 目录中,后续提问可直接查询而无需重建。它对每条边标注 EXTRACTED/INFERRED/AMBIGUOUS 的诚实审计标记,并支持合并多个仓库的跨仓库图谱。
1) 探测指定路径下的代码、文档、PDF、图片和音视频文件,超大语料时提示收窄范围;2) 用 Whisper 转写音视频为文本;3) 对代码文件运行 AST 结构化抽取(免费、确定性),同时对文档和图片并行派出 LLM 子代理做语义抽取,并缓存结果;4) 合并抽取结果、建图、做社区检测、识别 god nodes 和跨文档意外关联;5) 生成 GRAPH_REPORT.md、graph.、交互式 HTML,并按需导出 Obsidian vault、SVG、GraphML、Neo4j Cypher、agent 可爬取的 wiki;6) 提供 /graphify query 命令,用 BFS/DFS 遍历图谱回答自然语言问题,还可启动 MCP 服务器供其他 agent 实时查询。
- 接手陌生代码库的开发者:克隆仓库后运行 /graphify,之后直接用自然语言问'X 是怎么工作的''谁调用了 Y',无需重读全部源码
- 研究团队:把一批论文和笔记放进一个文件夹,让社区检测自动发现跨文档的概念关联
- 多服务架构团队:对 monorepo 各子目录分别抽取,再用 merge-graphs 合成一个跨服务总图谱
- 内容创作者/播客主:转写视频音频后与文档一起建图,生成可导入 Obsidian 的知识库
- Neo4j 用户:把导出的 Cypher 推送到已有 Neo4j 实例,融入现有图分析流程
这个 Skill 有哪些优点和局限?
- 输入类型极广:代码、文档、PDF、图片、音视频都能进图
- AST 结构抽取完全免费且确定性,语义抽取结果有缓存,重复运行成本低
- EXTRACTED/INFERRED/AMBIGUOUS 审计体系让图谱可信度透明
- 输出生态丰富:HTML、GraphRAG JSON、Obsidian、Neo4j、SVG、GraphML、wiki、MCP 服务器
- 支持增量更新、跨仓库合并、--watch 模式跟随代码变化自动重建
- 语义抽取的核心编排依赖 Claude Code 的并行子代理机制,移植到其他平台需要改造
- 未设置 Gemini key 时依赖宿主 LLM 会话本身,token 成本随语料规模增长
- SKILL.md 被截断展示,完整内容和独立测试情况无法核实
- 该技能位于一个职业平台(Career Pilot)仓库内,归属略显混杂,更新节奏未必独立
- 超过 50 万词或 500 文件的语料会被要求收窄范围,超大库需分目录处理
如何安装这个 Skill?
技能文件位于 career-pilot 仓库的 .claude/skills/graphify/SKILL.md,把该 skills 目录放入你的 Claude Code 技能目录(通常是项目的 .claude/skills/)。首次运行时技能会自动安装 Python 包:有 uv 则 uv tool install --upgrade graphifyy,否则 pip install graphifyy。可选:设置 GEMINI_API_KEY 或 GOOGLE_API_KEY 启用 Gemini 语义抽取(pip install 'graphifyy[gemini]')。仓库 README 主要描述 Career Pilot 网页应用本身,技能的独立安装说明以 SKILL.md 为准。
如何使用这个 Skill?
在 Claude Code 中触发 /graphify。常用命令:/graphify <路径> 全量建图;/graphify https://github.com/<owner>/<repo> 克隆仓库后建图;/graphify <路径> --update 增量更新;/graphify <路径> --mode deep 深度抽取;/graphify <路径> --neo4j-push bolt://localhost:7687 直接推送 Neo4j;/graphify <路径> --mcp 启动 MCP 服务器;/graphify query "问题" 查询已有图谱;/graphify explain "节点名" 获取通俗解释;/graphify --help 打印完整用法。图谱建好后,任何关于代码库的自然语言问题会自动走快速路径直接查询 graphify-out/graph.。
这个 Skill 与同类方案有什么区别?
SKILL.md 提到输出为 GraphRAG 就绪的 JSON,并与 Neo4j、Gephi(GraphML)、Obsidian 等现有图工具集成,但它本身对标的是'任何文件夹一键转知识图谱'的一体化流程,未在源材料中点名直接竞品。