dsh-graph-monitor

DSH PLUGIN开发与运行时

仓库 asakumizy/dsh-graph-monitor

开发与运行时 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

dsh-graph-monitor 为 DeepSeek Harness 提供 GRAPH 工作流可视化与实时监控,支持节点动画、自定义流程、对话运行与历史回看。

一句话选型结论

按资料字段整理

dsh-graph-monitor 是开发与运行时类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类开发与运行时 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 1 复刻 0 · 未关闭 issue 0
最近更新 2026-08-19 创建于 2026-08-18
README 14.8 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:asakumizy/dsh-graph-monitor
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.0-rc.2 等 10 个;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.0-rc.2 等 10 个版本版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-graph-monitor:DeepSeek Harness 的 GRAPH 工作流可视化插件

  • GRAPH 拓扑可视化
  • 实时节点动画
  • 自定义工作流
  • 对话运行与工具
  • 运行历史回看

适用场景

文件读写

上游标签

dshdsh-plugindsh-plugin-marketdsh-plugins

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询
— · 其它检查项
  • L4_0_SANDBOX 沙盒安装判定 方式:沙盒安装执行

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.0-rc.2 等 10 个),按版本装不容易报错。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在开发与运行时场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-graph-monitor当前 L5 · 运行验证通过 低风险 1 0.2.0-rc.2 等 10 个 有
deepseek-harness L3 · 安装规范通过 低风险 24.6 万 未标注 无
rea L4 · 沙盒安装通过 低风险 2.6 万 0.1.1-rc.2 有
dsh-TUI L4 · 沙盒安装通过 中风险 4,292 0.1.7-rc.2 等 5 个 有
mirage L3 · 安装规范通过 低风险 3,681 未标注 无
dashi-taskboard L4 · 沙盒安装通过 低风险 3,311 0.1.1-rc.2 有

仓库档案

开发与运行时
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方asakumizy仓库 dsh-graph-monitor · 默认分支 main
分类开发与运行时developer
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue1 / 0 / 0收录时的数值,非实时
创建 / 更新2026-08-18 · 2026-08-19最后推送 2026-08-19
本站收录2026-08-18首次进入本站目录的时间

README 全文

14.8 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-graph-monitor

一个 DSH (DeepSeek Harness) 插件:使用 LangGraph 风格的 GRAPH 工作流(节点 + 边 + 条件路由 + 并行分支 + 结构化 State),执行时每个环节实时点亮。拓扑动画风格参考 Waku-agent 的 dashboard(http://localhost:7777/#graph)。

  • GRAPH 可视化:分层拓扑图(START → 节点 → END,每个深度一列),SVG 渲染,与引擎实际执行的拓扑完全一致(防漂移:图 就是 workflow)。
  • 实时动画(Waku 风格 hot/live 闪烁):当前节点紫色脉动、完成节点绿色、失败节点红色、行进边琥珀色高亮。
  • 自定义 workflows:设置 → Graph Monitor,JSON 编辑器(节点 / 边 / 条件路由 / fn 处理器),校验后保存并持久化到 ~/.dsh/graph-monitor/workflows/*.json,保存/删除后列表实时刷新。
  • 点击节点看详情:状态 / 耗时 / 输入 / 输出 / 错误。
  • 对话集成:
  • /workflow(不带参数)列出现有工作流;
  • /workflow <输入…> 直接在对话中运行并实时可视化 node/edge;
  • 模型工具 graph_monitor_run —— 用自然语言(如「跑一下售后工作流」)触发运行。
  • 运行历史:每次运行可回看,含最终输出。
  • 健壮轮询:单调游标 + 截断安全事件日志(超过 2000 条后增量推送依然正确)。

> 说明:节点执行支持两种后端 —— nodeExecutor: simulated(默认,固定延迟 + 模板输出,不真正调用模型/工具)与 nodeExecutor: real(fn / tool / agent / llm 节点绑定 DSH 真实能力,能力缺失自动回退模拟)。详见下方「执行后端」。


目录结构

dsh-graph-monitor/
├── lib/index.js          # 宿主半面:GRAPH 引擎 + HTTP API(/graph-monitor/*)
├── lib/chat.js           # 对话集成:/workflow 命令 + graph_monitor_run 工具 + 系统提示
├── lib/client.js         # 客户端半面:监视器页签 + 聊天内嵌卡片 + 设置编辑器
├── test/engine.test.mjs  # 引擎单测(可独立运行,stub Cordis ctx)
├── package.json
├── cordis.patch.yml      # bundle 补丁(nodeDelayMs / llmDelayMs / keepRuns)
├── LICENSE               # MIT
└── README.md

依赖

  • DeepSeek Harness 运行时:@deepseek-ai/* 服务(sessions / webServer / tools / commands / systemPrompt 等),以 peerDependencies 声明。
  • Node.js ≥ 18(ESM)。

安装

插件运行在 DSH 的 loopback web server 上,客户端通过普通 fetch() 访问同源 API。二选一:

方式一:desktop profile 手动布放

$dst = "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\graph-monitor"
New-Item -ItemType Directory -Path "$dst\lib" -Force | Out-Null
Copy-Item "package.json" "$dst\"
Copy-Item "README.md" "$dst\"
Copy-Item "cordis.patch.yml" "$dst\"
Copy-Item "lib\index.js" "$dst\lib\"
Copy-Item "lib\chat.js" "$dst\lib\"
Copy-Item "lib\client.js" "$dst\lib\"

然后在 ~\.dsh\profiles\desktop\cordis.patch.yml 的 insert: 列表追加:

- id: graph-monitor
name: 'graph-monitor'
config:
nodeDelayMs: 750
llmDelayMs: 950
keepRuns: 20
nodeExecutor: real   # "simulated"(默认固定延迟)| "real"(绑定 DSH 真实能力,缺失回退模拟)

方式二:bundle 引用

在 profile 的 package.json 里把 graph-monitor 加入 dsh.profile.bundles(依赖其已存在于共享层 ~\.dsh\profiles\node_modules):

"dsh": { "profile": { "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "graph-monitor"] } }

安装完成后必须重启 DSH Desktop,旧会话的工具面在会话创建时固化,需新建会话才生效。


使用手册

1. 对话命令 /workflow

在聊天输入框直接输入:

输入 效果
/workflow 列出所有可用工作流(id + 名称 + 描述 + 节点/边数)
/workflow <输入…> 运行指定工作流,结果以实时卡片形式显示在聊天流中
自然语言 模型根据系统提示自动调用 graph_monitor_run 工具

示例:

/workflow
/workflow text-pipeline hello world

2. Graph Monitor 页签

任意会话右侧切到 Graph Monitor 页签:

  1. 下拉框选择 workflow;
  2. 输入框填写运行输入,点「运行」;
  3. 节点逐个点亮(运行中紫、完成绿、失败红,行进边琥珀高亮);
  4. 点击任意节点查看执行详情;
  5. 拖动平移画布,Ctrl + 滚轮 缩放;
  6. 「运行历史」回看任意一次运行。

3. 设置编辑器

设置 → Graph Monitor:

  1. 「新建 workflow」或「编辑」;
  2. 编辑 JSON(节点 / 边 / 条件路由 / fn 处理器);
  3. 「校验」确认合法;
  4. 「保存」后立即生效并持久化到 ~/.dsh/graph-monitor/workflows/。

GRAPH 词汇表

节点类型(kind)

kind 说明
llm LLM 推理步骤(模拟延迟)
agent Agent 循环(规划 + 执行)
tool 工具调用(real 模式下 tool 名 + arguments 调用真实工具)
fn 命名处理器函数(目录白名单,绝不 eval);real 模式可改用内联 JS code
echo 透传
sleep 暂停(用于动画节奏)
parallel 并行扇出到多个下游分支
merge 汇合并行分支后继续
gate 条件放行/拦截:谓词为真透传到 pass,否则走 fail(无 fail 则 run 以 blocked 结束)
switch 多选一分支:按 cases 顺序第一个命中走对应 to,default 兜底(恰好一条)
subgraph 组合子工作流:把已固化套路封装成可复用新原语(graph 嵌套执行)
loop 迭代子图:while 谓词为真时反复执行,maxIterations 硬上限
retry 失败重试子图:内嵌输出以 ERROR 开头即重试,至多 maxAttempts 次
timeout 时间预算子图:ms 预算内完成透传,超时输出 ERROR: timeout...

fn 处理器目录

基础文本:uppercase · lowercase · reverse · wordCount · charCount · trim · slugify · titleCase

客服话术(售前/售后 canned answers):productAnswer · returnAnswer · warrantyAnswer · repairAnswer · orderAnswer · logisticsAnswer · handoff

天气(高德 Web 服务 API):weatherCity(解析城市)· amapWeather(实时 + 预报;需配置 AMAP_KEY 环境变量或 ~/.dsh/graph-monitor/amap-key.txt)

在 real 模式下,fn 节点还可改用内联 JS code 字段(优先于 handler 目录)。

条件路由(router)

router 判定
always / otherwise 恒真 / 默认兜底
nonEmpty 输出非空
containsYes / containsNo 输出含 yes/是/true · no/否/false
isShort / isLong 输出 ≤ 40 字符 · > 40 字符
mentionsCode 输出提及 code/代码
human / presales / aftersales 客服意图:人工 / 售前咨询 / 售后问题
returnRequest / warranty / repair / order / logistics 客服细分:退货退款 / 质保保修 / 维修故障 / 下单支付 / 物流
isError 输出以 ERROR 开头(用于失败分支)

内联谓词(source: "code")

除命名目录 router 外,gate / switch / loop 的谓词(condition / when / while)还支持内联 JavaScript。内联代码经 DSH codeRuntime 执行(绝不 eval),运行时可用 graph.input() 取上游输入、graph.stateGet(key) 读结构化 State,返回值转为布尔;异常 / 空 / 无 codeRuntime 一律按「拦截 / 不命中」处理,不升级为运行失败。

{ "kind": "gate", "condition": { "source": "code", "code": "return (await graph.input()).includes('approved')" } }

workflow JSON 形状

{
"id": "my-workflow",
"name": "My workflow",
"description": "描述",
"entry": "start-node",
"nodes": [{ "id": "start-node", "kind": "llm", "label": "开始", "description": "第一步" }],
"edges": [
{ "src": "START", "dst": "start-node", "label": "start" },
{ "src": "start-node", "dst": "END", "label": "done" }
]
}

条件边示例:{ "src": "a", "dst": "b", "conditional": true, "router": "containsYes", "label": "简单" }


内置 workflows

workflow id 说明
research-triage 分类请求:简单走小模型快路径,复杂走完整 agent 循环 + 工具
text-pipeline 确定性数据管道:normalize → transform → measure → 长短分流
customer-agent 客服:理解 →(已知→直接回答 | 未知→搜索工具→升级)→ 关闭
parallel-demo 并行分支:fanout → sentiment/entities 并行 → merge → summarize(演示 parallel/merge 与 reads/writesTo 结构化 State)

(可通过设置编辑器自行扩展现有或新建 workflow。)


控制流原语(可进化工作流引擎)

插件已从「固定 DAG 可视化」演进为可进化工作流引擎:除线性 llm / agent / tool / fn 节点外,新增六类控制流原语,用 graph 字段嵌套子工作流(子图节点会各自点亮、各自产生事件):

原语 关键字段 语义
gate condition / pass / fail 谓词真 → 透传到 pass;假 → 走 fail,无 fail 则 run 以 status:"blocked" 结束(非失败、非继续)
switch cases[].when/to / default 按 cases 顺序取第一个命中的 to,default 必填保证「恰好一条」
subgraph graph 组合子图,把已固化套路封装成可复用新原语
loop while / maxIterations / graph 每轮以子图最终 state 为输入迭代,while 为假退出
retry maxAttempts / graph 子图输出以 ERROR 开头即重跑,成功即透传
timeout ms / graph 预算内完成透传,超时输出 ERROR: timeout after {ms}ms
{
"id": "lp1",
"kind": "loop",
"label": "直到收敛",
"while": { "source": "code", "code": "return (await graph.input()) !== 'done'" },
"maxIterations": 10,
"graph": {
"entry": "step",
"nodes": [{ "id": "step", "kind": "fn", "code": "return 'done';" }],
"edges": [{ "src": "START", "dst": "step" }, { "src": "step", "dst": "END" }]
}
}

模型驱动的编排(mutation ops)

llm / agent 节点可设 emitOps: true,让模型直接决定编排——通过结构化输出产出图编辑指令 ops 数组,引擎先整体校验、后原子应用,并以 graph/mutate 事件反馈结果(含失败原因):

{ "ops": [
{ "op": "addNode",  "node": { "id": "x", "kind": "fn", "code": "return 'hi';" } },
{ "op": "addEdge",  "edge": { "src": "a", "dst": "x" } },
{ "op": "rewire",   "edge": { "src": "a", "dst": "x" } },
{ "op": "setEntry", "nodeId": "x" },
{ "op": "skip",     "nodeId": "y" }
] }

> 完整契约(每个原语的输入 / 输出 / 事件 / 边界情形,以及 ops 载荷 schema 与校验不变量)见 docs/primitive-contract.md。


执行后端(nodeExecutor)

nodeExecutor 配置键控制节点执行后端:

值 行为
simulated(默认) 固定延迟 + 模板输出,纯可视化演示,不调用任何真实能力
real fn / tool / agent / llm 节点绑定 DSH 真实能力;能力缺失或执行出错时自动回退到模拟,不会中断运行

real 模式下的节点映射:

  • fn —— 可写内联 JS code 字段,通过 codeRuntime.run 执行;运行时可用 input() 取上游输入、stateGet(key) / stateSet(key, value) 读写结构化 State。无 code 时回退到目录 handler。
  • tool —— 写 tool(工具名)+ arguments(对象),调用 tools.execute()。
  • agent —— 运行 execContext 携带父 Agent 时经 subagents.start() 委派给子代理。
  • llm —— 经 llm.stream() 调用模型流式推理。

> 提示:fn/tool 的真实路径无需运行 execContext,从设置页「运行」即可触发;llm/agent 的真实路径依赖 execContext(通常经对话 /workflow 指令或 graph_monitor_run 工具触发)。


配置项

配置键 默认值 说明
nodeDelayMs 750 普通节点模拟执行延迟(动画节奏)
llmDelayMs 950 llm / agent / tool 节点模拟延迟
keepRuns 20 保留的已完成运行记录数(LRU 淘汰)
nodeExecutor simulated 执行后端:simulated(模拟)| real(绑定 DSH 真实能力,缺失回退模拟)

HTTP API

插件在 DSH 的 loopback web server 上注册以下接口(与 web app / 桌面壳同源):

方法 路径 说明
GET /graph-monitor/workflows workflow 列表 + 编辑器目录
PUT /graph-monitor/workflows 校验并持久化 workflow
POST /graph-monitor/validate 只校验不保存
POST /graph-monitor/workflows/:id/run 启动运行({input, sessionId})
GET /graph-monitor/state?cursor=N 增量实时事件日志(游标轮询)
GET /graph-monitor/runs/:runId 完整运行记录(含每个节点详情)
DELETE /graph-monitor/workflows/:id 删除自定义 workflow

测试

引擎单测用 stub Cordis ctx,不依赖真实 DSH 服务,但需要 @deepseek-ai/* 依赖可解析(通常在 DSH 的共享层 ~/.dsh/profiles/node_modules 内运行):

# 在 DSH 共享层 node_modules 内运行(以便解析 @deepseek-ai 依赖)
node "$env:USERPROFILE\.dsh\profiles\node_modules\graph-monitor\test\engine.test.mjs"

覆盖:内置 workflow 种子、HTTP 列表 / 运行 / 状态游标、自定义 workflow 保存/校验/删除、fn 处理器、持久化、会话事件。


已知限制

  • nodeExecutor: real 依赖 DSH 真实能力(codeRuntime / tools / subagents / llm),对应能力缺失或执行出错时该节点回退到模拟。
  • llm / agent 的真实路径依赖运行 execContext(经对话 /workflow 指令或 graph_monitor_run 工具触发);从设置页「运行」的无 execContext 运行只会走 fn(code)/tool 的真实路径,llm/agent 回退模拟。
  • fn 的内联 code 仅在 real 模式执行;simulated 模式走 handler 目录(code 被忽略)。
  • 插件改动需重启 DSH Desktop;旧会话的工具面在会话创建时固化。
  • 运行记录与事件日志在内存中(LRU 上限 keepRuns / 2000 条事件),重启即清空。

License

MIT

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-graph-monitor 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:asakumizy/dsh-graph-monitor` 即可。

dsh-graph-monitor 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-graph-monitor 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-graph-monitor 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-graph-monitor 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.1.7-rc.2、0.1.7-alpha.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2、0.1.3-alpha.1。版本较多,只列出前 8 个。

dsh-graph-monitor 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-graph-monitor 有哪些功能?

GRAPH 拓扑可视化、实时节点动画、自定义工作流、对话运行与工具、运行历史回看。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

开发与运行时
按星标排序,可作替代方案

rea

rea

L4 · 沙盒安装通过 2.6 万 星

dsh-TUI

dsh-TUI

Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

L4 · 沙盒安装通过 4,292 星

mirage

mirage

把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Sla

L3 · 安装规范通过 3,681 星

dashi-taskboard

dashi-taskboard

把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述

L4 · 沙盒安装通过 3,311 星

asakumizy 的其它插件

3 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。