CodeGraph:DeepSeek Harness 的代码知识图谱插件

前言

在基于 DSH 的智能体开发中,理解代码库结构、函数调用关系或模块依赖是常见瓶颈。CodeGraph 插件通过将代码解析为可查询的索引,解决这一问题。

插件定位

CodeGraph 是一个代码知识图谱插件,索引符号、调用点和导入项到 SQLite 中,并通过 CLI 或 stdio MCP 工具服务器回答调用/依赖问题。

核心功能

  • 调用图谱:支持查看调用者与被调用者。
  • 依赖图谱:支持查看模块依赖与被依赖。
  • 全文搜索:支持符号名称、文档字符串、签名的本地全文搜索。
  • 影响分析:支持传递闭包分析,查看修改某符号会受影响的对象。
  • 增量索引:支持基于内容哈希的比较,仅重新解析变更文件。
  • 可视化导出:支持导出 Graphviz DOT 或 JSON 格式。
  • 查询缓存:工具服务器对只读查询提供 30 秒 TTL 缓存。
  • 解析引擎:内置两个解析引擎,tree-sitter(精确)和 regex 扫描器(零依赖)。

安装与启用

在 DSH 中安装插件:

dsh plugin --profile demo add github:JohnXu22786/codegraph

典型用法

插件提供 CLI 和 MCP 工具服务器两种调用方式。

  1. 构建索引
    codegraph index
  1. 调用关系查询
    codegraph callers services.orders.create_order  # 查询谁调用了该函数
    codegraph callees app.run                       # 查询该函数调用了谁
  1. 依赖关系查询
    codegraph deps services.billing                 # 查询模块依赖
    codegraph dependents services.billing           # 查询谁依赖该模块
  1. 全文搜索
    codegraph search 'coupon'                      # 搜索符号名、文档字符串等
  1. 影响分析
    codegraph impact services.billing.price         # 查询传递调用链
  1. 查看状态与导出
    codegraph status                               # 查看索引统计
    codegraph export dot -o graph.dot              # 导出可视化图谱
  1. 启动工具服务器
    codegraph serve                                # 启动 stdio 工具服务器

注意事项

  • 环境要求:需要 Python ≥ 3.10。
  • 语言支持:支持 Python、JavaScript、TypeScript、Go、Java、Rust。
  • 实现方式:采用自包含实现,使用 Python 标准库 + SQLite,无强制第三方依赖。
  • 跨文件解析:跨文件解析依赖启发式算法,优先按同文件精确匹配、导入路径、包名、全局唯一名排序。
  • DSH 集成:通过 DSH 内置的 MCP 客户端加载。
  • Node 桥接:安装后,Node 桥接器会将工具暴露为 codegraph_callers、codegraph_callees 等工具名。
  • 错误处理:只读工具在没有索引时会返回错误。

结语

CodeGraph 提供了一种结构化方式来分析代码库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜