dsh-graph-monitor:定義並即時可視化 DSH 中的 GRAPH 工作流

前言

在 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 頁籤後,可以:

  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 並保留運行歷史;
  • 需要在對話中通過 /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
羽毛球分组比赛记分
小程序二维码

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

小夜