在 DSH / Cordis Web 应用开发中,插件之间的依赖关系、注入解析结果以及 Loader 树的嵌套结构通常难以直观呈现。静态的包图无法反映运行时的实际状态,而日志往往过于分散。cordis-plugin-graph 通过在设置中新增一个标签页,将运行时的插件网络以 Cytoscape 图的形式实时渲染出来。
这是一个 DSH / Cordis Web 插件。它为运行时的 Cordis 实例提供实时、可缩放的关系图,显示注入、提供者和加载器树。由 cordisplugins 维护。
核心功能¶
视图平面
支持 Client(渲染上下文)和 Host(引擎上下文)两个平面视图。Client 视图在进程内检查,包含 dsh-client-ui-* 插件、插槽渲染器、连接、主题、区域设置和设置。Host 视图从同源路由轮询(引擎上下文),包含会话、智能体、工具、模型适配器和持久化。在无 web 服务器可达时(打包桌面、无头),会优雅降级为仅 Client 模式。
节点与生命周期
节点代表插件纤程。节点按生命周期阶段(active, pending, loading, failed, unloading, disposed)着色,Loader 行的 disabled 状态也会用颜色标识。节点大小随提供的服务数量缩放,以便直观区分。
连接关系
支持显示三种连接关系,并可单独切换:
* requires (inject):显示注入到该纤程的依赖。
* provides to:显示该纤程提供的依赖。
* nested in (Loader tree):显示 Loader 树的父级关系。
运行时活动
当显示 Host 平面时,会展示工具调用流。工具节点会在每次调用时脉冲跳动,可以直观地看到智能体任务在图中的流转过程。
交互与详情
* 点击节点可查看模块说明符、Loader 条目 ID、提供的服务和实时效果标签。
* 支持通过搜索栏查找插件名称或模块。
安装与启用¶
使用官方安装命令添加插件:
dsh plugin add cordis-plugin-graph
重启 Host 后,标签页将出现在设置 -> 插件中,位于“Plugin list”旁边。
典型用法¶
- 切换视图:在设置中切换
Client/Host/Both平面视图,观察不同上下文下的插件分布。 - 查看详情:点击任意节点,查看其提供的具体服务和 Loader 信息。
- 搜索与过滤:使用搜索框快速定位特定插件或模块。
- 监控运行时:在 Host 视图下运行智能体任务,观察工具节点的脉冲跳动,确认工具调用流。
适用场景与注意¶
- 部署环境:仅适用于
web配置文件部署(ACRYL 或 DSH Desktop)。 - 环境要求:需要 Node.js ^22.19.0 || >=24.0.0,以及 Cordis 4.0.1。
- 权限与安全:插件在当前 DSH 进程权限下运行。安装前应检查源码与许可证(MIT)。
- 降级机制:如果当前环境无法访问 web 服务器(如打包后的桌面应用或无头环境),插件会自动降级为仅 Client 模式运行。
该插件通过可视化手段解决了运行时插件结构难以排查的问题,适合在开发调试阶段使用。