在开发基于 DeepSeek Harness (DSH) 的智能体应用时,插件间的依赖关系往往隐藏在运行时调用中。当服务调用链路变得复杂,或者出现未预期的循环依赖时,排查问题会变得非常困难。下面介绍一个能够实时检查这些依赖关系的工具。
这是什么¶
sleetdrop/dsh-plugin-topology 是 DeepSeek Harness 的插件依赖关系检查器。它将实时的 Cordis 插件 fiber 树快照为一个插件/服务二部图,计算图论指标,并以多种格式渲染。该插件维护者独立于 DeepSeek 官方,但遵循 MIT 许可证。
安装¶
使用官方安装命令将插件添加到指定 profile:
dsh plugin --profile <name> add @sleetdrop/dsh-plugin-topology
核心功能¶
该插件包含三个主要部分:
- 快照与指标:快照实时的 Cordis 插件 fiber 树,并计算图论指标,包括入度/出度、度中心性、介数中心性、特征向量中心性以及 PageRank。
- 导出能力:支持将依赖关系导出为 JSON(兼容 NetworkX)、Graphviz DOT 或 SVG 格式。
- 浏览器面板:提供可视化的浏览器面板,渲染可缩放图,包含指标、图例和未解决依赖表。
使用方法¶
打开浏览器面板¶
浏览器面板通过 sidebar.footer.action 触发,无需选中特定会话即可查看运行时全局拓扑。面板默认最大化显示。
导出与序列化¶
在模型侧,使用 graph.render 工具将当前运行实例的插件依赖关系序列化为文档:
* json:生成 NetworkX 兼容的节点链接图,节点携带图论指标,图对象携带全局指标(密度、强连通分量等)。
* dot / svg:生成 Graphviz 源码或渲染后的 SVG,用于分享或使用外部工具分析。
交互操作¶
- 查看详情:鼠标悬停在节点上,可查看 fiber 状态、模块源代码和绘制的入/出度。
- 方向高亮:使用
deg+或deg-胶囊切换按钮,可以高亮特定方向的依赖边和目标节点,其余部分会淡化。该功能在依赖度为 0 时禁用。
注意事项¶
- 版本独立:该插件拥有独立的语义版本(当前为 0.5.0),不镜像 DeepSeek Harness 的版本。当前版本目标为 DSH 0.2.0-rc.2。
- 内部依赖:插件需要访问 Cordis 内部结构(如
root.registry、root.reflect.store),这些不在稳定公共 API 中。使用前需确保 Harness 版本满足 peerDependencies 要求。 - 同名实例:在显示图中,同名插件实例会合并为一个节点,但节点标签会显示实例创建序号(如
timer [1,9,23])。在 JSON 和 DOT 导出中,实例保持唯一。 - 浏览器面板要求:浏览器面板需要 web profile 支持,且
--patch覆盖仅作用于节点侧。
总结¶
dsh-plugin-topology 提供了从宏观拓扑到微观 fiber 状态的完整视图,适合在调试复杂依赖关系时使用。
- GitHub: https://github.com/sleetdrop/dsh-plugin-topology
- 目录: https://www.skillhub.cn/plugins/sleetdrop/dsh-plugin-topology