dsh-graph-monitor:定义并实时可视化 DSH 中的 GRAPH 工作流

前言

在 DSH 插件生态中,工作流如果只在引擎内部执行,开发者往往看不到节点、边、分支和失败点。asakumizy/dsh-graph-monitor 解决的是这个问题:它把 LangGraph 风格的 GRAPH 工作流定义成可编辑、可运行的对象,并在执行过程中实时点亮节点与边。

下面介绍它的定位、核心能力、启用方式和典型用法。

这是什么

dsh-graph-monitor 是一个 DSH(DeepSeek Harness)插件,由 asakumizy 维护,许可证为 MIT

它的主要目标是:

  • 定义并运行 GRAPH 工作流;
  • 在工作流执行时实时展示节点与边状态;
  • 让开发者能在对话、页签和设置编辑器中查看、编辑和运行工作流。

资料中出现的名称形式包括仓库名 asakumizy/dsh-graph-monitorpackage.json 中的 namegraph-monitor

核心能力

GRAPH 可视化

插件提供 GRAPH 可视化能力:

  • 分层拓扑图:START → 节点 → END
  • SVG 渲染;
  • 展示拓扑与引擎实际执行拓扑保持一致。

这有助于在运行前确认工作流结构,在运行中观察执行路径。

实时节点与边状态

执行过程中,插件用颜色和动画区分状态:

  • 当前节点:紫色脉动;
  • 完成节点:绿色;
  • 失败节点:红色;
  • 行进边:琥珀色高亮。

这些状态帮助开发者快速判断流程走到哪里、哪个节点失败。

自定义 workflow

插件支持通过设置编辑器编辑 workflow JSON,包括:

  • 节点;
  • 边;
  • 条件路由;
  • fn 处理器。

编辑后可以校验,并保存到:

~/.dsh/graph-monitor/workflows/*.json

保存后的 workflow 可用于后续运行和查看。

点击节点查看执行详情

点击节点后,可以查看:

  • 状态;
  • 耗时;
  • 输入;
  • 输出;
  • 错误。

对于调试失败节点,这一部分比只看最终输出更直接。

对话集成

插件支持对话集成:

/workflow
/workflow <workflow-id> <输入…>

其中:

  • /workflow:列出现有工作流;
  • /workflow <workflow-id> <输入…>:运行指定工作流,并实时展示卡片。

插件还提供 graph_monitor_run 工具,可在对话中触发工作流运行。

运行历史

插件支持运行历史回看,并查看最终输出。适合对比多次运行结果。

执行后端

插件支持两种 nodeExecutor 执行后端:

simulated
real

simulated 为默认后端,使用固定延迟和模板输出。

real 模式绑定 DSH 真实能力;如果所需能力缺失,会自动回退到模拟模式。

控制流原语

资料列出以下控制流原语:

gate
switch
subgraph
loop
retry
timeout

这些原语用于定义条件分支、子图、循环、重试和超时等工作流控制结构。

模型驱动编排

资料说明,工作流可以通过 emitOps 生成图编辑指令。支持的操作包括:

addNode
addEdge
rewire
setEntry
skip

这表示编排不只是固定路径,还可以由模型通过结构化指令参与图结构修改。

内联谓词执行说明

资料明确:内联 JavaScript 谓词经 DSH codeRuntime 执行,并且明确“绝不 eval”。

安装与启用

资料未提供官方单一插件安装命令。下面按资料给出的两种方式描述启用流程。

依赖

插件依赖:

Node.js >= 18 (ESM)

并且声明了以下 peerDependencies

@deepseek-ai/cordis ^4.0.1
@deepseek-ai/dsh-home-paths ^0.1.0-rc.6
@deepseek-ai/dsh-session ^0.1.0-rc.6

方式一:手动布放 desktop profile

先确认插件已布放到 desktop profile 的插件目录,资料中的目标目录为:

~/.dsh/profiles/desktop/node_modules/graph-monitor

然后在 desktop profile 的 cordis.patch.yml 中登记该插件。资料示例使用 insert 列表追加条目:

    - id: graph-monitor
      name: 'graph-monitor'
      config:
        nodeExecutor: real

其中 nodeExecutor 可选:

simulated
real

simulated 为默认后端,适合观察流程动画;real 模式会绑定 DSH 真实能力,能力缺失时自动回退模拟。

方式二:bundle 引用

另一种方式是在 profile 的 package.json 中把 graph-monitor 加入 bundle 列表。资料示例为:

"dsh": { "profile": { "bundles": ["graph-monitor"] } }

这种方式依赖共享层中已经存在 graph-monitor

重启与新建会话

安装完成后必须重启 DSH Desktop。

旧会话的工具面在会话创建时已经固化,因此需要新建会话后,新工具面才会生效。

典型用法

1. 列出工作流

在聊天输入框输入:

/workflow

这会列出现有可用工作流。

2. 运行指定工作流

在聊天输入框输入:

/workflow text-pipeline hello world

这会运行 text-pipeline 工作流,并以实时卡片形式展示节点与边状态。

3. 在 Graph Monitor 页签运行

在任意会话右侧切到 Graph Monitor 页签后,可以:

  1. 选择 workflow;
  2. 填写输入;
  3. 运行;
  4. 点击节点查看状态、耗时、输入、输出和错误;
  5. 查看运行历史和最终输出。

4. 在设置中编辑 workflow

进入:

设置 → Graph Monitor

然后可以:

  1. 新建或编辑 workflow JSON;
  2. 编辑节点、边、条件路由和 fn 处理器;
  3. 校验;
  4. 保存。

保存路径为:

~/.dsh/graph-monitor/workflows/*.json

适用场景与注意

适合以下使用场景:

  • 需要观察 DSH 中 GRAPH 工作流执行过程;
  • 需要查看节点输入、输出、耗时和错误;
  • 需要编辑 workflow JSON 并保留运行历史;
  • 需要在对话中通过 /workflowgraph_monitor_run 触发工作流;
  • 需要比较 simulatedreal 两种执行后端的差异。

需要注意:

  • 资料未提供可复制的单条官方安装命令;
  • 安装完成后必须重启 DSH Desktop;
  • 旧会话工具面在会话创建时固化,需新建会话才生效;
  • real 模式会绑定 DSH 真实能力,能力缺失时自动回退模拟;
  • 内联 JavaScript 谓词经 DSH codeRuntime 执行,资料明确“绝不 eval”;
  • 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。

结尾

asakumizy/dsh-graph-monitor 的价值在于把 DSH 中的 GRAPH 工作流从“只能运行”变成“可定义、可运行、可观察、可编辑”。它适合在 DSH 插件开发中用于工作流调试、状态观察和编排试验。

GitHub:

https://github.com/asakumizy/dsh-graph-monitor
羽毛球分组比赛记分
小程序二维码

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

小夜