Preface¶
In the DSH plugin ecosystem, if workflows only execute inside the engine, developers often cannot see nodes, edges, branches, and failure points. asakumizy/dsh-graph-monitor solves this problem: it converts LangGraph-style GRAPH workflow definitions into editable, runnable objects and lights up nodes and edges in real-time during execution.
Below is an introduction to its positioning, core capabilities, enabling methods, and typical usage.
What is it¶
dsh-graph-monitor is a DSH (DeepSeek Harness) plugin maintained by asakumizy, licensed under MIT.
Its main goals are:
- Define and run GRAPH workflows;
- Real-time display of node and edge status during workflow execution;
- Allow developers to view, edit, and run workflows in the chat, tabs, and settings editor.
Names appearing in the documentation include the repository name asakumizy/dsh-graph-monitor and the name value graph-monitor in package.json.
Core Capabilities¶
GRAPH Visualization¶
The plugin provides GRAPH visualization capabilities:
- Hierarchical topology graph:
START → Node → END; - SVG rendering;
- The displayed topology is consistent with the actual execution topology of the engine.
This helps confirm the workflow structure before running and observe the execution path during runtime.
Real-time Node and Edge Status¶
During execution, the plugin uses colors and animations to distinguish states:
- Current node: purple pulsing;
- Completed node: green;
- Failed node: red;
- Traversed edge: amber highlight.
These states help developers quickly determine where the process has gone and which node failed.
Custom Workflow¶
The plugin supports editing workflow JSON via the settings editor, including:
- Nodes;
- Edges;
- Conditional routing;
fnprocessors.
After editing, you can validate and save it to:
~/.dsh/graph-monitor/workflows/*.json
The saved workflow can be used for subsequent runs and viewing.
View Execution Details by Clicking a Node¶
After clicking a node, you can view:
- Status;
- Duration;
- Input;
- Output;
- Error.
This is more direct for debugging failed nodes than just looking at the final output.
Dialogue Integration¶
The plugin supports dialogue integration:
/workflow
/workflow <workflow-id> <input...>
Where:
/workflow: Lists existing workflows;/workflow <workflow-id> <input...>: Runs a specified workflow and displays a card in real-time.
The plugin also provides the graph_monitor_run tool, which can trigger workflow runs in a dialogue.
Run History¶
The plugin supports reviewing run history and viewing final output. It is suitable for comparing results of multiple runs.
Execution Backend¶
The plugin supports two nodeExecutor execution backends:
simulated
real
simulated is the default backend, using fixed delays and template outputs.
real mode binds to DSH’s actual capabilities; if required capabilities are missing, it automatically falls back to simulated mode.
Control Flow Primitives¶
The documentation lists the following control flow primitives:
gate
switch
subgraph
loop
retry
timeout
These primitives are used to define workflow control structures such as conditional branches, subgraphs, loops, retries, and timeouts.
Model-driven Orchestration¶
The documentation explains that workflows can generate graph editing instructions via emitOps. Supported operations include:
addNode
addEdge
rewire
setEntry
skip
This indicates that orchestration is not just fixed paths, but can also involve the model in modifying graph structures through structured instructions.
Inline Predicate Execution Note¶
The documentation explicitly states that inline JavaScript predicates are executed by DSH’s codeRuntime, and explicitly states “never eval”.
Installation and Enabling¶
The documentation does not provide a single official plugin installation command. Below is the enabling process described in two ways based on the documentation.
Dependencies¶
The plugin depends on:
Node.js >= 18 (ESM)
And declares the following 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
Method 1: Manual Deployment of Desktop Profile¶
First, confirm that the plugin has been deployed to the plugins directory of the desktop profile. The target directory in the documentation is:
~/.dsh/profiles/desktop/node_modules/graph-monitor
Then, register the plugin in the desktop profile’s cordis.patch.yml. The documentation example uses an insert list to append entries:
- id: graph-monitor
name: 'graph-monitor'
config:
nodeExecutor: real
Where nodeExecutor is optional:
simulated
real
simulated is the default backend, suitable for observing process animations; real mode binds to DSH’s actual capabilities and automatically falls back to simulation when capabilities are missing.
Method 2: Bundle Reference¶
Another way is to add graph-monitor to the bundle list in the profile’s package.json. The documentation example is:
"dsh": { "profile": { "bundles": ["graph-monitor"] } }
This method depends on graph-monitor already existing in the shared layer.
Restart and Create New Session¶
After installation, DSH Desktop must be restarted.
The toolbars of old sessions are fixed when the session is created, so new toolbars only take effect after creating a new session.
Typical Usage¶
1. List Workflows¶
Type in the chat input box:
/workflow
This lists existing available workflows.
2. Run a Specified Workflow¶
Type in the chat input box:
/workflow text-pipeline hello world
This runs the text-pipeline workflow and displays node and edge status in real-time card form.
3. Run in Graph Monitor Tab¶
After switching to the Graph Monitor tab on the right side of any session, you can:
- Select workflow;
- Fill in input;
- Run;
- Click on a node to view status, duration, input, output, and errors;
- View run history and final output.
4. Edit Workflow in Settings¶
Go to:
Settings → Graph Monitor
Then you can:
- Create or edit workflow JSON;
- Edit nodes, edges, conditional routing, and
fnprocessors; - Validate;
- Save.
The save path is:
~/.dsh/graph-monitor/workflows/*.json
Applicable Scenarios and Notes¶
Suitable for the following use cases:
- Need to observe the execution process of GRAPH workflows in DSH;
- Need to view node input, output, duration, and errors;
- Need to edit workflow JSON and preserve run history;
- Need to trigger workflows in chat via
/workfloworgraph_monitor_run; - Need to compare the differences between
simulatedandrealexecution backends.
Please note:
- The documentation does not provide a copyable single official installation command;
- After installation, DSH Desktop must be restarted;
- Old session toolbars are fixed at session creation, so new toolbars only take effect after creating a new session;
realmode binds to DSH’s actual capabilities and automatically falls back to simulation when capabilities are missing;- Inline JavaScript predicates are executed by DSH’s
codeRuntime, and the documentation explicitly states “nevereval”; - The plugin runs with the permissions of the current DSH process, so you should check the source code and license before installing.
Conclusion¶
The value of asakumizy/dsh-graph-monitor lies in turning DSH’s GRAPH workflows from “only runnable” to “definable, runnable, observable, and editable”. It is suitable for workflow debugging, state observation, and orchestration experimentation in DSH plugin development.
GitHub:
https://github.com/asakumizy/dsh-graph-monitor