dsh-plugin-knowledge-graph:为 DSH 提供 read_graph 代码知识图谱工具

前言

在 DeepSeek Harness(DSH)里做智能体辅助开发时,常见需求不是立刻改代码,而是先弄清仓库结构:某个目录下有哪些文件、某个文件导出了哪些符号、哪些文件依赖了它、哪些 import 没有被使用。如果每次都靠手工搜索或逐个读文件,上下文组织成本会比较高。

dsh-plugin-knowledge-graph 的做法是:先根据工作区根目录构建一个内存中的代码库知识图谱,再向 DSH 暴露一个 read_graph 工具,让智能体通过查询获取文件结构、符号导出、导入依赖等信息。

这是什么

dsh-plugin-knowledge-graph 是一个 DeepSeek Harness(DSH)插件,GitHub 仓库位于 Luke-Yong/dsh-plugin-knowledge-graph。它注册一个名为 read_graph 的工具,背后是一个代码库知识图谱。

该插件从 Luke-Yong/H 的知识图谱工具派生,并适配到 DSH 的“一切皆插件”模型。许可证为 MIT。项目自述处于 infancy 阶段,执行行为、查询面和兼容性可能在后续迭代中变化。

核心功能

这个插件主要提供以下能力:

  • 暴露 read_graph 工具。
  • 在内存中构建代码库知识图谱,覆盖文件、目录、导出符号以及它们之间的关系。
  • 支持以下查询类型:
  • structure
  • exports
  • imports_of
  • exporters_of
  • dependents
  • unused_imports
  • 解析 TypeScript/JavaScript 中的符号,以及 Python 的模块级绑定;Python 支持覆盖模块级 defclassname = value 绑定。
  • 使用节点类型 dirfilesymbol,以及边类型 CONTAINSEXPORTSIMPORTSIMPORTS_SYMBOL

安装与启用

先确认运行环境满足要求:需要 Node >=22.19,peer dependencies 为 @deepseek-ai/cordis@deepseek-ai/dsh-tools

通过 DSH CLI 把插件安装到指定 profile:

dsh plugin --profile web add github:Luke-Yong/dsh-plugin-knowledge-graph

如果需要固定到某个 commit 以便复现,可以这样安装:

dsh plugin --profile web add github:Luke-Yong/dsh-plugin-knowledge-graph#<commit-sha>

典型用法

插件注册的工具是 read_graph。它的参数如下:

  • query:必填,字符串,格式为 <query_type> <target>
  • root:可选,绝对路径,用于指定要构建图谱的工作区根目录。默认值是 process.cwd()

这里需要注意:默认的 root 可能是一个包含多个独立项目的父目录。为了避免 structure 等查询扩展到兄弟项目树,建议调用时显式传入当前要分析的单个工作区根目录。

常见查询示例如下:

structure
exports src/index.ts
exporters_of buildKnowledgeGraph
imports_of src/query.ts
dependents src/knowledgeGraph.ts
unused_imports app.py

这些查询分别用于获取目录结构、查看文件导出、查找某个符号的导出位置、查看文件导入关系、查找依赖某个文件的文件,以及列出文件中未使用的 import。

适用场景与注意

这个插件适合在 DSH 智能体流程中需要结构化代码问答的开发者使用,尤其是面向 TypeScript/JavaScript 或 Python 工作区,希望智能体查询目录结构、符号导出、导入依赖和未使用 import 的场景。

使用时有三点需要注意:

1、项目处于早期阶段,查询接口、执行行为和兼容性都可能变化。

2、插件会读取工作区文件并构建图谱。DSH 插件通常以当前 dsh 进程权限运行,因此安装前应检查源码,并确认 MIT 许可证符合你的使用要求。

3、示例中的路径、符号名和查询字符串应替换为你自己工作区中的实际内容。

链接

GitHub:https://github.com/Luke-Yong/dsh-plugin-knowledge-graph

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

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

小夜