前言¶
在 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工具。 - 在内存中构建代码库知识图谱,覆盖文件、目录、导出符号以及它们之间的关系。
- 支持以下查询类型:
structureexportsimports_ofexporters_ofdependentsunused_imports- 解析 TypeScript/JavaScript 中的符号,以及 Python 的模块级绑定;Python 支持覆盖模块级
def、class和name = value绑定。 - 使用节点类型
dir、file、symbol,以及边类型CONTAINS、EXPORTS、IMPORTS、IMPORTS_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