前言¶
在 DSH 插件生态中,工作流如果只在引擎内部执行,开发者往往看不到节点、边、分支和失败点。asakumizy/dsh-graph-monitor 解决的是这个问题:它把 LangGraph 风格的 GRAPH 工作流定义成可编辑、可运行的对象,并在执行过程中实时点亮节点与边。
下面介绍它的定位、核心能力、启用方式和典型用法。
这是什么¶
dsh-graph-monitor 是一个 DSH(DeepSeek Harness)插件,由 asakumizy 维护,许可证为 MIT。
它的主要目标是:
- 定义并运行 GRAPH 工作流;
- 在工作流执行时实时展示节点与边状态;
- 让开发者能在对话、页签和设置编辑器中查看、编辑和运行工作流。
资料中出现的名称形式包括仓库名 asakumizy/dsh-graph-monitor 和 package.json 中的 name 值 graph-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 页签后,可以:
- 选择 workflow;
- 填写输入;
- 运行;
- 点击节点查看状态、耗时、输入、输出和错误;
- 查看运行历史和最终输出。
4. 在设置中编辑 workflow¶
进入:
设置 → Graph Monitor
然后可以:
- 新建或编辑 workflow JSON;
- 编辑节点、边、条件路由和
fn处理器; - 校验;
- 保存。
保存路径为:
~/.dsh/graph-monitor/workflows/*.json
适用场景与注意¶
适合以下使用场景:
- 需要观察 DSH 中 GRAPH 工作流执行过程;
- 需要查看节点输入、输出、耗时和错误;
- 需要编辑 workflow JSON 并保留运行历史;
- 需要在对话中通过
/workflow或graph_monitor_run触发工作流; - 需要比较
simulated与real两种执行后端的差异。
需要注意:
- 资料未提供可复制的单条官方安装命令;
- 安装完成后必须重启 DSH Desktop;
- 旧会话工具面在会话创建时固化,需新建会话才生效;
real模式会绑定 DSH 真实能力,能力缺失时自动回退模拟;- 内联 JavaScript 谓词经 DSH
codeRuntime执行,资料明确“绝不eval”; - 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
结尾¶
asakumizy/dsh-graph-monitor 的价值在于把 DSH 中的 GRAPH 工作流从“只能运行”变成“可定义、可运行、可观察、可编辑”。它适合在 DSH 插件开发中用于工作流调试、状态观察和编排试验。
GitHub:
https://github.com/asakumizy/dsh-graph-monitor