Agent Skills
返回列表
代码知识图谱创建

代码知识图谱创建

知识管理 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_b30f8db8/code-knowledge-graph-create

技能介绍

要解决的问题

项目里的依赖关系通常散落在多个文件里:哪个模块导入了谁、哪个类继承了哪个基类、哪个函数在调用别处的实现。靠 grep 或人工梳理,不仅慢,而且很难回答“改了这个接口,谁会受影响”这类跨文件问题。

这个技能把这件事固化成一条流水线:静态解析源码 → 生成 Cypher → 上传到 Neo4j。不需要运行项目,也不需要把整段代码塞进上下文,图谱作为可复用的数据库资产沉淀下来。

技能如何工作

核心是两个随技能打包的脚本,外加一个编排入口:

  • generate_kg.py:基于 tree-sitter 解析项目里所有 Python 源文件,抽取 Module、Class、Function、Import 四类节点,以及 IMPORTS、INHERITS、CALLS、INSTANTIATES 等关系,输出 kg.cypher。
  • import_to_neo4j.py:把生成的 kg.cypher 上传到远程 Neo4j,连接配置自动从项目根目录(或任意上级目录)的 .neo4j-config.json 读取。
  • build_kg.py:编排脚本,自动发现项目根目录与配置文件,一条命令完成“创建 + 上传”,并提供 --dry-run、--clear、--skip-generate、--skip-import 等选项。

解析阶段会自动排除 .venv、__pycache__、.git、data、images 等目录,并跳过脚本自身。也可以不用编排脚本,直接分步调用根目录脚本,或通过 --uri / --user / --password / --database 显式覆盖配置——优先级为:命令行参数 > 环境变量 > .neo4j-config.json > 内置默认值。上传还支持 --mode shell(走 cypher-shell CLI)和 --dry-run(只统计语句数)。

适用边界与注意点

  • 只解析 Python:tree-sitter 侧只集成了 tree-sitter-python,其他语言源码会被忽略。
  • 关系不幂等:节点用 MERGE,可以重复导入;关系用 CREATE,重复执行会在已存在节点之间产生重复边。代码发生较大变更、需要重建图谱时,建议先清空远程库再导入,例如加 --clear。
  • 配置必须可达:上传阶段需要能连上远程 Neo4j,凭据放在 .neo4j-config.json 里;该文件在项目根目录或上级目录均可被自动发现。
  • 静态解析的局限:动态导入、运行期反射、条件分支里延迟发生的调用关系不会被捕获,图谱反映的是源码层面静态可见的结构。
  • verify_kg.py 未打包进技能,它硬编码了特定项目的预期类与函数,只适用于对应项目。

生成图谱后,可以交给配套的 code-knowledge-graph 技能做查询与分析:本技能负责“建图 + 入库”,那个技能负责“查图 + 用图”。

使用场景

  • 接手一个 Python 项目,想用图谱看清模块之间的导入与调用关系,便于梳理整体结构。
  • 代码库结构发生变化,需要重新生成知识图谱并清空旧数据后再导入 Neo4j。
  • 准备把代码关系导入远程 Neo4j,已有 .neo4j-config.json,希望脚本自动读取连接配置。
  • 只想检查图谱 Cypher 语句数,不真正上传,先用 dry-run 统计再决定是否导入。

适合人员

  • 维护大型 Python 项目的后端工程师,需要在重构前快速定位受影响的模块与调用方。
  • 构建开发者工具的工程师,想把代码结构关系沉淀成 Neo4j 中的可查询图谱资产。
  • 做代码审计与安全排查的工程师,需要从源码层面核对导入、继承和实例化关系。
  • 处理遗留项目的开发者,希望在不运行代码的情况下摸清依赖全貌再制定迁移计划。