dsh-workflow-studio:用 /workflow 调起工作流,并在实时看板上观察子智能体

前言

DeepSeek Harness(DSH)里,工作流引擎本身并不缺:@deepseek-ai/dsh-workflow-ptc 提供 ctx.workflowEngine,workflow 工具可以让模型写 JavaScript,把任务扇出给大量子智能体,并发上限、取消、派生与结果校验都有。缺口主要在「人怎么用、怎么复用、怎么看清在发生什么」:触发往往只能经由模型现写脚本;会话内的 dsh-client-ui-workflow-run 卡片多是阶段与成员的状态列表,难以看到每个子智能体在写什么,也缺少 agent 之间的结构关系;进度随会话滚动,打字时不容易对照当前跑到哪一步。

下面介绍社区插件 dsh-workflow-studio(维护者 VCPr0j3k7,分类:工作流)。它在不替换官方引擎、事件与会话卡片的前提下,补上 /workflow 入口、可保存的工作流库,以及输入框上方常驻条与侧栏工作台三种视图,方便观察结构与进度。

这是什么

dsh-workflow-studio 是面向 DSH 桌面壳(desktop profile)的 bundle 插件(package.json 中声明 dsh.bundle.patch)。一句话定位:用 /workflow 发起工作流(自然语言或已保存名称),在图形界面里展示每个子智能体在做什么以及它们之间的结构关系;点 pill 跳转到官方子智能体会话,不在插件内镜像转录。

仓库:github.com/VCPr0j3k7/dsh-workflow-studio
目录页:skillhub.cn/plugins/VCPr0j3k7/dsh-workflow-studio
当前 package 版本为 0.1.0,许可证 MIT(以仓库 package.json 为准)。SkillHub 为社区插件目录,与 DeepSeek / 幻方无官方从属关系。

核心功能

两种 /workflow 发起方式

  1. /workflow <随便一句话> —— 这句话原样交给模型;模型在思考里定拓扑、写脚本,再调用 workflow 工具在后台启动。命令本身不执行工作流。
  2. /workflow <已保存的名称> —— 直接运行 <DSH_HOME>/workflows/ 下对应脚本,适合固定、可重复的流程。

两种写法共用一个命令:若第一个词匹配已保存工作流名,则走库;否则走自然语言编排。

工作流库与脚本形态

工作流文件位于 <DSH_HOME>/workflows/*.js,采用 YAML frontmatter + JavaScript 正文,可复用、可版本化。文件名只允许小写字母、数字、点、下划线、短横线。

脚本可使用官方引擎注入的 agent、pipeline、parallel、phase、log、args;本插件额外提供结构钩子 wfRun、wfNode、wfEdge、wfGroup(经 log() 上报,去掉也不影响脚本执行)。wfRun 最常用:声明节点并立刻跑子智能体。

界面:常驻条与工作台

  • 输入框上方常驻条:本会话有工作流时出现;运行中默认展开,结束后默认折叠。展示阶段列与子智能体 pill;点击 pill 打开该子智能体的官方会话窗口(与顶部子智能体菜单同一落点)。
  • 侧栏工作台:结构图(阶段 + pill + 列间「在它之后运行」连线)、时间线(泳道 + 真实时间,用于核对是否真并行)、叙述(phase() / log() 输出),以及工作流库相关视图。

插件刻意不改写用户消息内容;编排说明由插件注册的系统提示承担。子智能体正文不在此插件内二次渲染,避免与官方会话视图重复维护。

安装与启用

标准安装(README 原文):

git clone https://github.com/VCPr0j3k7/dsh-workflow-studio
dsh plugin --profile desktop add file:<克隆下来的目录>

安装后须重启 DSH。宿主侧在启动时加载,不重启不生效。

若 dsh plugin add 因 profile 内其他 file: 依赖等问题失败,README 给出手工等价步骤:在 profile 的 node_modules 下链到插件目录、在 package.json 的 dependencies 与 dsh.profile.bundles 登记 dsh-workflow-studio;不要在 profile 里重复插入 cordis.patch.yml 的 insert 行。可用仓库内工具校验:

node tools/verify-profile.mjs

卸载:

dsh plugin --profile desktop rm dsh-workflow-studio

手工安装时反向删除链接与登记项;<DSH_HOME>/workflows/ 中的工作流文件不会被卸载删除。

启用条件

插件依赖 DSH 工作流引擎与客户端 UI 槽位(dsh.client.inject 含 @deepseek-ai/dsh-client-ui-slots)。package.json 要求 Node ^22.19.0 || >=24。具体「何时可用」以 README「启用条件」一节与当前 DSH 版本为准。

典型用法:保存并运行一份工作流

在 <DSH_HOME>/workflows/audit-docs.js 写入 frontmatter 与脚本(示例来自 README,可按需改 args.files):

---
name: audit-docs
description: 审计 docs/ 下每个文件的准确性
whenToUse: 当需要批量核对文档时
phases:
  - title: 扫描
    detail: 列出待审计文件
  - title: 审计
    detail: 每个文件一个子智能体
graph:
  - id: scan
    label: 扫描目标
    phase: 扫描
  - id: audit
    label: 审计文件
    phase: 审计
    deps: [scan]
---
const files = args?.files ?? []
if (files.length === 0) return { error: '缺少 files 参数' }

phase('扫描')
const plan = await wfRun('scan', { label: '扫描目标', phase: '扫描' },
  `待审计的文件:\n${files.join('\n')}\n先给出每个文件的审计要点。`)

phase('审计')
const findings = await pipeline(files, async (file) =>
  wfRun('audit', { label: '审计文件', phase: '审计' },
    `审计 ${file}。协调者的要点:${plan}\n输出三段:结论 / 证据 / 建议。`))

return { total: files.length, findings: findings.filter(Boolean) }

在会话中执行:

/workflow audit-docs

或先用自然语言让模型编排并后台启动:

/workflow 帮我按 docs 目录批量审文档

运行后看输入框上方常驻条或打开侧栏工作台;需要看某子智能体完整输出时,点对应 pill 进入官方会话。

适用场景与注意

适合谁:已经在 DSH 里用 workflow 工具做多子智能体任务,希望有固定入口、可保存脚本,并在打字时对照阶段、结构与时间线的人;愿意自己维护 <DSH_HOME>/workflows/*.js 的开发者。

权限与安全:插件以当前 DSH 进程权限运行,与工作流脚本、子智能体调用同一信任边界。安装前请阅读源码与 MIT 许可证,确认符合你的环境策略;不要假设 SkillHub 或第三方仓库做过安全审计。

已知边界(README 摘要):装完需重启;自然语言路径依赖模型正确调用 workflow 工具;结构图上的虚线/实线区分「声明依赖」与「时序相邻」,解读方式见面板内说明。更多限制见仓库 README「已知限制」。

结尾

dsh-workflow-studio 不替代 @deepseek-ai/dsh-workflow-ptc 与官方会话内工作流卡片,而是在同一引擎之上补上 /workflow 入口、工作流库、常驻进度条与侧栏结构/时间线视图,并把「看子智能体细节」交回官方会话导航。

羽毛球分组比赛记分
小程序二维码

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

小夜