Agent Skills
返回列表
代码知识图谱查询

代码知识图谱查询

开发编程 更新于 2026.08.29

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

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

技能介绍

要解决什么问题

阅读陌生代码库时,最常见的困境是:眼前只有一个函数,却不知道谁在调用它、它又依赖了谁。想回答「谁调用了 login」,靠 grep 只能找到文本匹配,无法区分同名函数、动态调用和跨模块依赖;想评估「修改 formatDate 会影响哪些地方」,人工梳理调用链既耗时又容易遗漏。代码知识图谱把这些关系预先算好,问题就从「读代码推导」变成「查图验证」。

核心能力

本技能提供一个 Python 脚本 scripts/query_graph.py,连接 Neo4j 实例后执行预构建的 Cypher 查询,结果以结构化 JSON 输出到 stdout,便于 agent 解析:

  • 调用关系:callers 找上游调用方,callees 找下游被调用方,call-chain 按 --depth 双向追踪调用链
  • 模块依赖:deps 双向查询,既看模块依赖了谁,也看谁依赖了它
  • 类继承:hierarchy 展示父类与子类的完整继承关系
  • 影响分析:impact 汇总修改某函数后的上游调用者与下游依赖方
  • 图谱探索:schema 列出节点标签与关系类型,search 按名称全文搜索实体
  • 自定义查询:custom 直接执行任意 Cypher,应对模板覆盖不到的场景

典型用法是在改代码前先跑一轮查询:

  • 回答「BaseController 的类继承层次是什么?」→ hierarchy --name "BaseController"
  • 回答「哪些模块依赖 src/auth.ts?」→ deps --name "src/auth.ts"

使用步骤

  1. 先看 Schema:图谱结构未知时,先执行 query_graph.py schema 确认节点标签和关系类型
  2. 匹配查询类型:按问题模式从 callers、callees、call-chain、deps、hierarchy、impact、search 中选择
  3. 执行并解读:解析 JSON 输出,结合源代码给出结论

适配与边界

不同代码图谱的命名约定可能不同。脚本模板支持 CALLS|INVOKES、EXTENDS|IMPLEMENTS、IMPORTS|DEPENDS_ON|REQUIRES 等常见模式;若实际图谱不一致,可参考 references/schema.md 的 Schema 文档,先用 custom 模式做即席查询验证,确认无误后编辑 QUERY_TEMPLATES 字典做永久适配。本技能只提供查询能力,不负责构建图谱——前提是已有可用的 Neo4j 实例和导入好的代码知识。

使用场景

  • 接手陌生代码库时,需追踪 login 的上游调用者与下游依赖,快速画出完整调用链
  • 重构 src/auth.ts 前,要查清哪些模块依赖它,评估改动波及范围
  • 修改 formatDate 函数时,需确认所有调用方,避免遗漏导致回归
  • 理解 BaseController 的继承层次,确认哪些子类会受父类改动影响

适合人员

  • 后端工程师:在大型单体仓库中定位函数调用关系,减少 grep 排查时间
  • 架构师:重构或升级接口前,评估模块依赖与变更影响范围
  • AI 应用开发者:为 agent 集成结构化的代码上下文查询能力
  • 代码审查者:核查改动波及面,确认受影响调用方已同步更新